github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/pkg/list/pkg.go (about) 1 // Code generated by go generate. DO NOT EDIT. 2 3 //go:generate rm pkg.go 4 //go:generate go run ../gen/gen.go 5 6 package list 7 8 import ( 9 "github.com/joomcode/cue/internal/core/adt" 10 "github.com/joomcode/cue/pkg/internal" 11 ) 12 13 func init() { 14 internal.Register("list", pkg) 15 } 16 17 var _ = adt.TopKind // in case the adt package isn't used 18 19 var pkg = &internal.Package{ 20 Native: []*internal.Builtin{{ 21 Name: "Drop", 22 Params: []internal.Param{ 23 {Kind: adt.ListKind}, 24 {Kind: adt.IntKind}, 25 }, 26 Result: adt.ListKind, 27 Func: func(c *internal.CallCtxt) { 28 x, n := c.List(0), c.Int(1) 29 if c.Do() { 30 c.Ret, c.Err = Drop(x, n) 31 } 32 }, 33 }, { 34 Name: "FlattenN", 35 Params: []internal.Param{ 36 {Kind: adt.TopKind}, 37 {Kind: adt.IntKind}, 38 }, 39 Result: adt.ListKind, 40 Func: func(c *internal.CallCtxt) { 41 xs, depth := c.Value(0), c.Int(1) 42 if c.Do() { 43 c.Ret, c.Err = FlattenN(xs, depth) 44 } 45 }, 46 }, { 47 Name: "Repeat", 48 Params: []internal.Param{ 49 {Kind: adt.ListKind}, 50 {Kind: adt.IntKind}, 51 }, 52 Result: adt.ListKind, 53 Func: func(c *internal.CallCtxt) { 54 x, count := c.List(0), c.Int(1) 55 if c.Do() { 56 c.Ret, c.Err = Repeat(x, count) 57 } 58 }, 59 }, { 60 Name: "Concat", 61 Params: []internal.Param{ 62 {Kind: adt.ListKind}, 63 }, 64 Result: adt.ListKind, 65 Func: func(c *internal.CallCtxt) { 66 a := c.List(0) 67 if c.Do() { 68 c.Ret, c.Err = Concat(a) 69 } 70 }, 71 }, { 72 Name: "Take", 73 Params: []internal.Param{ 74 {Kind: adt.ListKind}, 75 {Kind: adt.IntKind}, 76 }, 77 Result: adt.ListKind, 78 Func: func(c *internal.CallCtxt) { 79 x, n := c.List(0), c.Int(1) 80 if c.Do() { 81 c.Ret, c.Err = Take(x, n) 82 } 83 }, 84 }, { 85 Name: "Slice", 86 Params: []internal.Param{ 87 {Kind: adt.ListKind}, 88 {Kind: adt.IntKind}, 89 {Kind: adt.IntKind}, 90 }, 91 Result: adt.ListKind, 92 Func: func(c *internal.CallCtxt) { 93 x, i, j := c.List(0), c.Int(1), c.Int(2) 94 if c.Do() { 95 c.Ret, c.Err = Slice(x, i, j) 96 } 97 }, 98 }, { 99 Name: "MinItems", 100 Params: []internal.Param{ 101 {Kind: adt.ListKind}, 102 {Kind: adt.IntKind}, 103 }, 104 Result: adt.BoolKind, 105 Func: func(c *internal.CallCtxt) { 106 a, n := c.List(0), c.Int(1) 107 if c.Do() { 108 c.Ret = MinItems(a, n) 109 } 110 }, 111 }, { 112 Name: "MaxItems", 113 Params: []internal.Param{ 114 {Kind: adt.ListKind}, 115 {Kind: adt.IntKind}, 116 }, 117 Result: adt.BoolKind, 118 Func: func(c *internal.CallCtxt) { 119 a, n := c.List(0), c.Int(1) 120 if c.Do() { 121 c.Ret = MaxItems(a, n) 122 } 123 }, 124 }, { 125 Name: "UniqueItems", 126 Params: []internal.Param{ 127 {Kind: adt.ListKind}, 128 }, 129 Result: adt.BoolKind, 130 Func: func(c *internal.CallCtxt) { 131 a := c.List(0) 132 if c.Do() { 133 c.Ret = UniqueItems(a) 134 } 135 }, 136 }, { 137 Name: "Contains", 138 Params: []internal.Param{ 139 {Kind: adt.ListKind}, 140 {Kind: adt.TopKind}, 141 }, 142 Result: adt.BoolKind, 143 Func: func(c *internal.CallCtxt) { 144 a, v := c.List(0), c.Value(1) 145 if c.Do() { 146 c.Ret = Contains(a, v) 147 } 148 }, 149 }, { 150 Name: "Avg", 151 Params: []internal.Param{ 152 {Kind: adt.ListKind}, 153 }, 154 Result: adt.NumKind, 155 Func: func(c *internal.CallCtxt) { 156 xs := c.DecimalList(0) 157 if c.Do() { 158 c.Ret, c.Err = Avg(xs) 159 } 160 }, 161 }, { 162 Name: "Max", 163 Params: []internal.Param{ 164 {Kind: adt.ListKind}, 165 }, 166 Result: adt.NumKind, 167 Func: func(c *internal.CallCtxt) { 168 xs := c.DecimalList(0) 169 if c.Do() { 170 c.Ret, c.Err = Max(xs) 171 } 172 }, 173 }, { 174 Name: "Min", 175 Params: []internal.Param{ 176 {Kind: adt.ListKind}, 177 }, 178 Result: adt.NumKind, 179 Func: func(c *internal.CallCtxt) { 180 xs := c.DecimalList(0) 181 if c.Do() { 182 c.Ret, c.Err = Min(xs) 183 } 184 }, 185 }, { 186 Name: "Product", 187 Params: []internal.Param{ 188 {Kind: adt.ListKind}, 189 }, 190 Result: adt.NumKind, 191 Func: func(c *internal.CallCtxt) { 192 xs := c.DecimalList(0) 193 if c.Do() { 194 c.Ret, c.Err = Product(xs) 195 } 196 }, 197 }, { 198 Name: "Range", 199 Params: []internal.Param{ 200 {Kind: adt.NumKind}, 201 {Kind: adt.NumKind}, 202 {Kind: adt.NumKind}, 203 }, 204 Result: adt.ListKind, 205 Func: func(c *internal.CallCtxt) { 206 start, limit, step := c.Decimal(0), c.Decimal(1), c.Decimal(2) 207 if c.Do() { 208 c.Ret, c.Err = Range(start, limit, step) 209 } 210 }, 211 }, { 212 Name: "Sum", 213 Params: []internal.Param{ 214 {Kind: adt.ListKind}, 215 }, 216 Result: adt.NumKind, 217 Func: func(c *internal.CallCtxt) { 218 xs := c.DecimalList(0) 219 if c.Do() { 220 c.Ret, c.Err = Sum(xs) 221 } 222 }, 223 }, { 224 Name: "Sort", 225 Params: []internal.Param{ 226 {Kind: adt.ListKind}, 227 {Kind: adt.TopKind}, 228 }, 229 Result: adt.ListKind, 230 Func: func(c *internal.CallCtxt) { 231 list, cmp := c.List(0), c.Value(1) 232 if c.Do() { 233 c.Ret, c.Err = Sort(list, cmp) 234 } 235 }, 236 }, { 237 Name: "SortStable", 238 Params: []internal.Param{ 239 {Kind: adt.ListKind}, 240 {Kind: adt.TopKind}, 241 }, 242 Result: adt.ListKind, 243 Func: func(c *internal.CallCtxt) { 244 list, cmp := c.List(0), c.Value(1) 245 if c.Do() { 246 c.Ret, c.Err = SortStable(list, cmp) 247 } 248 }, 249 }, { 250 Name: "SortStrings", 251 Params: []internal.Param{ 252 {Kind: adt.ListKind}, 253 }, 254 Result: adt.ListKind, 255 Func: func(c *internal.CallCtxt) { 256 a := c.StringList(0) 257 if c.Do() { 258 c.Ret = SortStrings(a) 259 } 260 }, 261 }, { 262 Name: "IsSorted", 263 Params: []internal.Param{ 264 {Kind: adt.ListKind}, 265 {Kind: adt.TopKind}, 266 }, 267 Result: adt.BoolKind, 268 Func: func(c *internal.CallCtxt) { 269 list, cmp := c.List(0), c.Value(1) 270 if c.Do() { 271 c.Ret = IsSorted(list, cmp) 272 } 273 }, 274 }, { 275 Name: "IsSortedStrings", 276 Params: []internal.Param{ 277 {Kind: adt.ListKind}, 278 }, 279 Result: adt.BoolKind, 280 Func: func(c *internal.CallCtxt) { 281 a := c.StringList(0) 282 if c.Do() { 283 c.Ret = IsSortedStrings(a) 284 } 285 }, 286 }}, 287 CUE: `{ 288 Comparer: { 289 T: _ 290 x: T 291 y: T 292 less: bool 293 } 294 Ascending: { 295 Comparer 296 T: number | string 297 x: T 298 y: T 299 less: true && x < y 300 } 301 Descending: { 302 Comparer 303 T: number | string 304 x: T 305 y: T 306 less: x > y 307 } 308 }`, 309 }