You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.5 KiB
76 lines
1.5 KiB
package cdr
|
|
|
|
type SortableCalls struct {
|
|
Calls []Call
|
|
num int // shortcut for Len()
|
|
}
|
|
|
|
func NewSortableCalls(c []Call) *SortableCalls {
|
|
return &SortableCalls{
|
|
Calls: append(c[:0:0], c...),
|
|
num: len(c),
|
|
}
|
|
}
|
|
|
|
func (sc *SortableCalls) Len() int {
|
|
return sc.num
|
|
}
|
|
|
|
func (sc *SortableCalls) Less(i, j int) bool {
|
|
// We assume i, j < len(sc.Calls)
|
|
return sc.Calls[i].Time.Before(sc.Calls[j].Time)
|
|
}
|
|
|
|
func (sc *SortableCalls) Swap(i, j int) {
|
|
sc.Calls[j], sc.Calls[i] = sc.Calls[i], sc.Calls[j]
|
|
}
|
|
|
|
type SortableTexts struct {
|
|
Texts []Text
|
|
num int // shortcut for Len()
|
|
}
|
|
|
|
func NewSortableTexts(t []Text) *SortableTexts {
|
|
return &SortableTexts{
|
|
Texts: append(t[:0:0], t...),
|
|
num: len(t),
|
|
}
|
|
}
|
|
|
|
func (st *SortableTexts) Len() int {
|
|
return st.num
|
|
}
|
|
|
|
func (st *SortableTexts) Less(i, j int) bool {
|
|
// We assume i, j < len(st.Texts)
|
|
return st.Texts[i].PricedLine.Line.Time.Before(st.Texts[j].PricedLine.Line.Time)
|
|
}
|
|
|
|
func (st *SortableTexts) Swap(i, j int) {
|
|
st.Texts[j], st.Texts[i] = st.Texts[i], st.Texts[j]
|
|
}
|
|
|
|
type SortableData struct {
|
|
Data []Data
|
|
num int // shortcut for Len()
|
|
}
|
|
|
|
func NewSortableData(d []Data) *SortableData {
|
|
return &SortableData{
|
|
Data: append(d[:0:0], d...),
|
|
num: len(d),
|
|
}
|
|
}
|
|
|
|
func (sd *SortableData) Len() int {
|
|
return sd.num
|
|
}
|
|
|
|
func (sd *SortableData) Less(i, j int) bool {
|
|
// We assume i, j < len(st.Data)
|
|
return sd.Data[i].PricedLine.Line.Time.Before(sd.Data[j].PricedLine.Line.Time)
|
|
}
|
|
|
|
func (sd *SortableData) Swap(i, j int) {
|
|
sd.Data[j], sd.Data[i] = sd.Data[i], sd.Data[j]
|
|
}
|
|
|