cuelang.org/go@v0.10.1/pkg/list/pkg.go (about)

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