github.com/paketo-buildpacks/packit@v1.3.2-0.20211206231111-86b75c657449/chronos/clock.go (about) 1 package chronos 2 3 import "time" 4 5 var DefaultClock = NewClock(time.Now) 6 7 type Clock struct { 8 now func() time.Time 9 } 10 11 func NewClock(now func() time.Time) Clock { 12 return Clock{now: now} 13 } 14 15 func (c Clock) Now() time.Time { 16 return c.now() 17 } 18 19 func (c Clock) Measure(f func() error) (time.Duration, error) { 20 then := c.Now() 21 err := f() 22 return c.Now().Sub(then), err 23 }