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