mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
47 lines
714 B
Go
47 lines
714 B
Go
package models
|
|
|
|
import "sort"
|
|
|
|
type Durations []*Duration
|
|
|
|
func (d Durations) Len() int {
|
|
return len(d)
|
|
}
|
|
|
|
func (d Durations) Less(i, j int) bool {
|
|
return d[i].Time.T().Before(d[j].Time.T())
|
|
}
|
|
|
|
func (d Durations) Swap(i, j int) {
|
|
d[i], d[j] = d[j], d[i]
|
|
}
|
|
|
|
func (d Durations) TotalNumHeartbeats() int {
|
|
var total int
|
|
for _, e := range d {
|
|
total += e.NumHeartbeats
|
|
}
|
|
return total
|
|
}
|
|
|
|
func (d Durations) Sorted() Durations {
|
|
sort.Sort(d)
|
|
return d
|
|
}
|
|
|
|
func (d *Durations) First() *Duration {
|
|
// assumes slice to be sorted
|
|
if d.Len() == 0 {
|
|
return nil
|
|
}
|
|
return (*d)[0]
|
|
}
|
|
|
|
func (d *Durations) Last() *Duration {
|
|
// assumes slice to be sorted
|
|
if d.Len() == 0 {
|
|
return nil
|
|
}
|
|
return (*d)[d.Len()-1]
|
|
}
|