package runner | |
// RunCounter2 is completely equivalent to RunCounter, | |
// but uses struct embedding to avoid the boilerplate of redeclaring | |
// the Name method. | |
type RunCounter2 struct { | |
Runner // HL | |
count int | |
} | |
func NewRunCounter2(name string) *RunCounter2 { | |
return &RunCounter2{Runner{name}, 0} | |
} | |
func (r *RunCounter2) Run(t Task) { | |
r.count++ | |
r.Runner.Run(t) // HL | |
} | |
func (r *RunCounter2) RunAll(ts []Task) { | |
r.count += len(ts) | |
r.Runner.RunAll(ts) // HL | |
} | |
func (r *RunCounter2) Count() int { return r.count } |