package statistics import ( "fmt" "os" "time" ) type Tracker struct { start time.Time steps uint64 } func Track() *Tracker { return &Tracker{} } func (t *Tracker) Start() { t.start = time.Now() t.steps = 0 } func (t *Tracker) Step() { t.steps++ } func (t *Tracker) End() { results := Results{ StepsTaken: t.steps, TimeElapsed: uint64(time.Since(t.start).Milliseconds()), } fmt.Fprint(os.Stderr, results.String()) }