github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/pkg/list/sort.cue (about) 1 // Copyright 2019 CUE Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package list 16 17 // A Comparer specifies whether one value is strictly less than another value. 18 Comparer: { 19 T: _ 20 x: T 21 y: T 22 less: bool // true if x < y 23 } 24 25 // Ascending defines a Comparer to sort comparable values in increasing order. 26 // 27 // Example: 28 // list.Sort(a, list.Ascending) 29 Ascending: { 30 Comparer 31 T: number | string 32 x: T 33 y: T 34 // TODO: the following will be fixed when removing old-school templating. 35 less: true && (x < y) 36 } 37 38 // Descending defines a Comparer to sort comparable values in decreasing order. 39 // 40 // Example: 41 // list.Sort(a, list.Descending) 42 Descending: { 43 Comparer 44 T: number | string 45 x: T 46 y: T 47 less: (x > y) 48 }