package lazytime

import "time"

type Ticker struct {
	C <-chan time.Time

	ticker *time.Ticker
}

// Reset resets the ticker. If this is the first time calling, then a new timer
// is created.
func (t *Ticker) Reset(d time.Duration) {
	if t.ticker == nil {
		t.ticker = time.NewTicker(d)
		t.C = t.ticker.C
	} else {
		t.ticker.Reset(d)
	}
}

// Stop stops the ticker. If the ticker has never been used, then it does
// nothing.
func (t *Ticker) Stop() {
	if t.ticker == nil {
		return
	}

	t.ticker.Stop()
}