31 lines
434 B
Go
31 lines
434 B
Go
package main
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type Ticker struct {
|
|
*time.Ticker
|
|
}
|
|
|
|
func NewTicker(rate int, interval time.Duration) *Ticker {
|
|
t := &Ticker{
|
|
Ticker: time.NewTicker(interval / time.Duration(rate)),
|
|
}
|
|
|
|
return t
|
|
}
|
|
|
|
func (t *Ticker) Reset(rate int, interval time.Duration) {
|
|
t.Ticker.Reset(interval / time.Duration(rate))
|
|
}
|
|
|
|
func (t *Ticker) HasTicked() bool {
|
|
select {
|
|
case <-t.C:
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
}
|