mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
39 lines
596 B
Go
39 lines
596 B
Go
|
package models
|
||
|
|
||
|
import "sort"
|
||
|
|
||
|
type Heartbeats []*Heartbeat
|
||
|
|
||
|
func (h Heartbeats) Len() int {
|
||
|
return len(h)
|
||
|
}
|
||
|
|
||
|
func (h Heartbeats) Less(i, j int) bool {
|
||
|
return h[i].Time.T().Before(h[j].Time.T())
|
||
|
}
|
||
|
|
||
|
func (h Heartbeats) Swap(i, j int) {
|
||
|
h[i], h[j] = h[j], h[i]
|
||
|
}
|
||
|
|
||
|
func (h *Heartbeats) Sorted() *Heartbeats {
|
||
|
sort.Sort(h)
|
||
|
return h
|
||
|
}
|
||
|
|
||
|
func (h *Heartbeats) First() *Heartbeat {
|
||
|
// assumes slice to be sorted
|
||
|
if h.Len() == 0 {
|
||
|
return nil
|
||
|
}
|
||
|
return (*h)[0]
|
||
|
}
|
||
|
|
||
|
func (h *Heartbeats) Last() *Heartbeat {
|
||
|
// assumes slice to be sorted
|
||
|
if h.Len() == 0 {
|
||
|
return nil
|
||
|
}
|
||
|
return (*h)[h.Len()-1]
|
||
|
}
|