1// Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved. 2// Use of this source code is governed by a MIT license found in the LICENSE file. 3 4// Code generated from sort-slice.go.tmpl - DO NOT EDIT. 5 6package codec 7 8import "time" 9import "reflect" 10import "bytes" 11 12type stringSlice []string 13 14func (p stringSlice) Len() int { return len(p) } 15func (p stringSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 16func (p stringSlice) Less(i, j int) bool { 17 return p[uint(i)] < p[uint(j)] 18} 19 20type float64Slice []float64 21 22func (p float64Slice) Len() int { return len(p) } 23func (p float64Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 24func (p float64Slice) Less(i, j int) bool { 25 return p[uint(i)] < p[uint(j)] || isNaN64(p[uint(i)]) && !isNaN64(p[uint(j)]) 26} 27 28type uint64Slice []uint64 29 30func (p uint64Slice) Len() int { return len(p) } 31func (p uint64Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 32func (p uint64Slice) Less(i, j int) bool { 33 return p[uint(i)] < p[uint(j)] 34} 35 36type uintptrSlice []uintptr 37 38func (p uintptrSlice) Len() int { return len(p) } 39func (p uintptrSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 40func (p uintptrSlice) Less(i, j int) bool { 41 return p[uint(i)] < p[uint(j)] 42} 43 44type int64Slice []int64 45 46func (p int64Slice) Len() int { return len(p) } 47func (p int64Slice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 48func (p int64Slice) Less(i, j int) bool { 49 return p[uint(i)] < p[uint(j)] 50} 51 52type boolSlice []bool 53 54func (p boolSlice) Len() int { return len(p) } 55func (p boolSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 56func (p boolSlice) Less(i, j int) bool { 57 return !p[uint(i)] && p[uint(j)] 58} 59 60type timeSlice []time.Time 61 62func (p timeSlice) Len() int { return len(p) } 63func (p timeSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 64func (p timeSlice) Less(i, j int) bool { 65 return p[uint(i)].Before(p[uint(j)]) 66} 67 68type bytesSlice [][]byte 69 70func (p bytesSlice) Len() int { return len(p) } 71func (p bytesSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 72func (p bytesSlice) Less(i, j int) bool { 73 return bytes.Compare(p[uint(i)], p[uint(j)]) == -1 74} 75 76type stringRv struct { 77 v string 78 r reflect.Value 79} 80type stringRvSlice []stringRv 81 82func (p stringRvSlice) Len() int { return len(p) } 83func (p stringRvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 84func (p stringRvSlice) Less(i, j int) bool { 85 return p[uint(i)].v < p[uint(j)].v 86} 87 88type stringIntf struct { 89 v string 90 i interface{} 91} 92type stringIntfSlice []stringIntf 93 94func (p stringIntfSlice) Len() int { return len(p) } 95func (p stringIntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 96func (p stringIntfSlice) Less(i, j int) bool { 97 return p[uint(i)].v < p[uint(j)].v 98} 99 100type float64Rv struct { 101 v float64 102 r reflect.Value 103} 104type float64RvSlice []float64Rv 105 106func (p float64RvSlice) Len() int { return len(p) } 107func (p float64RvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 108func (p float64RvSlice) Less(i, j int) bool { 109 return p[uint(i)].v < p[uint(j)].v || isNaN64(p[uint(i)].v) && !isNaN64(p[uint(j)].v) 110} 111 112type float64Intf struct { 113 v float64 114 i interface{} 115} 116type float64IntfSlice []float64Intf 117 118func (p float64IntfSlice) Len() int { return len(p) } 119func (p float64IntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 120func (p float64IntfSlice) Less(i, j int) bool { 121 return p[uint(i)].v < p[uint(j)].v || isNaN64(p[uint(i)].v) && !isNaN64(p[uint(j)].v) 122} 123 124type uint64Rv struct { 125 v uint64 126 r reflect.Value 127} 128type uint64RvSlice []uint64Rv 129 130func (p uint64RvSlice) Len() int { return len(p) } 131func (p uint64RvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 132func (p uint64RvSlice) Less(i, j int) bool { 133 return p[uint(i)].v < p[uint(j)].v 134} 135 136type uint64Intf struct { 137 v uint64 138 i interface{} 139} 140type uint64IntfSlice []uint64Intf 141 142func (p uint64IntfSlice) Len() int { return len(p) } 143func (p uint64IntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 144func (p uint64IntfSlice) Less(i, j int) bool { 145 return p[uint(i)].v < p[uint(j)].v 146} 147 148type uintptrRv struct { 149 v uintptr 150 r reflect.Value 151} 152type uintptrRvSlice []uintptrRv 153 154func (p uintptrRvSlice) Len() int { return len(p) } 155func (p uintptrRvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 156func (p uintptrRvSlice) Less(i, j int) bool { 157 return p[uint(i)].v < p[uint(j)].v 158} 159 160type uintptrIntf struct { 161 v uintptr 162 i interface{} 163} 164type uintptrIntfSlice []uintptrIntf 165 166func (p uintptrIntfSlice) Len() int { return len(p) } 167func (p uintptrIntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 168func (p uintptrIntfSlice) Less(i, j int) bool { 169 return p[uint(i)].v < p[uint(j)].v 170} 171 172type int64Rv struct { 173 v int64 174 r reflect.Value 175} 176type int64RvSlice []int64Rv 177 178func (p int64RvSlice) Len() int { return len(p) } 179func (p int64RvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 180func (p int64RvSlice) Less(i, j int) bool { 181 return p[uint(i)].v < p[uint(j)].v 182} 183 184type int64Intf struct { 185 v int64 186 i interface{} 187} 188type int64IntfSlice []int64Intf 189 190func (p int64IntfSlice) Len() int { return len(p) } 191func (p int64IntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 192func (p int64IntfSlice) Less(i, j int) bool { 193 return p[uint(i)].v < p[uint(j)].v 194} 195 196type boolRv struct { 197 v bool 198 r reflect.Value 199} 200type boolRvSlice []boolRv 201 202func (p boolRvSlice) Len() int { return len(p) } 203func (p boolRvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 204func (p boolRvSlice) Less(i, j int) bool { 205 return !p[uint(i)].v && p[uint(j)].v 206} 207 208type boolIntf struct { 209 v bool 210 i interface{} 211} 212type boolIntfSlice []boolIntf 213 214func (p boolIntfSlice) Len() int { return len(p) } 215func (p boolIntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 216func (p boolIntfSlice) Less(i, j int) bool { 217 return !p[uint(i)].v && p[uint(j)].v 218} 219 220type timeRv struct { 221 v time.Time 222 r reflect.Value 223} 224type timeRvSlice []timeRv 225 226func (p timeRvSlice) Len() int { return len(p) } 227func (p timeRvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 228func (p timeRvSlice) Less(i, j int) bool { 229 return p[uint(i)].v.Before(p[uint(j)].v) 230} 231 232type timeIntf struct { 233 v time.Time 234 i interface{} 235} 236type timeIntfSlice []timeIntf 237 238func (p timeIntfSlice) Len() int { return len(p) } 239func (p timeIntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 240func (p timeIntfSlice) Less(i, j int) bool { 241 return p[uint(i)].v.Before(p[uint(j)].v) 242} 243 244type bytesRv struct { 245 v []byte 246 r reflect.Value 247} 248type bytesRvSlice []bytesRv 249 250func (p bytesRvSlice) Len() int { return len(p) } 251func (p bytesRvSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 252func (p bytesRvSlice) Less(i, j int) bool { 253 return bytes.Compare(p[uint(i)].v, p[uint(j)].v) == -1 254} 255 256type bytesIntf struct { 257 v []byte 258 i interface{} 259} 260type bytesIntfSlice []bytesIntf 261 262func (p bytesIntfSlice) Len() int { return len(p) } 263func (p bytesIntfSlice) Swap(i, j int) { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] } 264func (p bytesIntfSlice) Less(i, j int) bool { 265 return bytes.Compare(p[uint(i)].v, p[uint(j)].v) == -1 266} 267