package sentio

import "time"

type Clock interface {
	Now() time.Time
	After(d time.Duration) <-chan time.Time
}

type ClockUTC struct {
}

func (t ClockUTC) Now() time.Time {
	return time.Now().In(time.UTC)
}

func (t ClockUTC) After(d time.Duration) <-chan time.Time {
	return time.After(d)
}

type StubClock struct {
	Clock time.Time
}

func (t StubClock) Now() time.Time {
	return t.Clock.In(time.UTC)
}

func (t StubClock) After(d time.Duration) <-chan time.Time {
	return time.After(d)
}