34 lines
531 B
Go
34 lines
531 B
Go
package simulation
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"sort"
|
|
)
|
|
|
|
type eventStats map[string]uint
|
|
|
|
func newEventStats() eventStats {
|
|
events := make(map[string]uint)
|
|
return events
|
|
}
|
|
|
|
func (es eventStats) tally(eventDesc string) {
|
|
es[eventDesc]++
|
|
}
|
|
|
|
// Pretty-print events as a table
|
|
func (es eventStats) Print(w io.Writer) {
|
|
var keys []string
|
|
for key := range es {
|
|
keys = append(keys, key)
|
|
}
|
|
|
|
sort.Strings(keys)
|
|
fmt.Fprintf(w, "Event statistics: \n")
|
|
|
|
for _, key := range keys {
|
|
fmt.Fprintf(w, " % 60s => %d\n", key, es[key])
|
|
}
|
|
}
|