github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/pkg/strings/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 strings
     7  
     8  import (
     9  	"fmt"
    10  
    11  	"github.com/joomcode/cue/internal/core/adt"
    12  	"github.com/joomcode/cue/pkg/internal"
    13  )
    14  
    15  func init() {
    16  	internal.Register("strings", pkg)
    17  }
    18  
    19  var _ = adt.TopKind // in case the adt package isn't used
    20  
    21  var pkg = &internal.Package{
    22  	Native: []*internal.Builtin{{
    23  		Name: "ByteAt",
    24  		Params: []internal.Param{
    25  			{Kind: adt.BytesKind | adt.StringKind},
    26  			{Kind: adt.IntKind},
    27  		},
    28  		Result: adt.IntKind,
    29  		Func: func(c *internal.CallCtxt) {
    30  			b, i := c.Bytes(0), c.Int(1)
    31  			if c.Do() {
    32  				c.Ret, c.Err = ByteAt(b, i)
    33  			}
    34  		},
    35  	}, {
    36  		Name: "ByteSlice",
    37  		Params: []internal.Param{
    38  			{Kind: adt.BytesKind | adt.StringKind},
    39  			{Kind: adt.IntKind},
    40  			{Kind: adt.IntKind},
    41  		},
    42  		Result: adt.BytesKind | adt.StringKind,
    43  		Func: func(c *internal.CallCtxt) {
    44  			b, start, end := c.Bytes(0), c.Int(1), c.Int(2)
    45  			if c.Do() {
    46  				c.Ret, c.Err = ByteSlice(b, start, end)
    47  			}
    48  		},
    49  	}, {
    50  		Name: "Runes",
    51  		Params: []internal.Param{
    52  			{Kind: adt.StringKind},
    53  		},
    54  		Result: adt.ListKind,
    55  		Func: func(c *internal.CallCtxt) {
    56  			s := c.String(0)
    57  			if c.Do() {
    58  				c.Ret = Runes(s)
    59  			}
    60  		},
    61  	}, {
    62  		Name: "MinRunes",
    63  		Params: []internal.Param{
    64  			{Kind: adt.StringKind},
    65  			{Kind: adt.IntKind},
    66  		},
    67  		Result: adt.BoolKind,
    68  		Func: func(c *internal.CallCtxt) {
    69  			s, min := c.String(0), c.Int(1)
    70  			if c.Do() {
    71  				c.Ret = MinRunes(s, min)
    72  			}
    73  		},
    74  	}, {
    75  		Name: "MaxRunes",
    76  		Params: []internal.Param{
    77  			{Kind: adt.StringKind},
    78  			{Kind: adt.IntKind},
    79  		},
    80  		Result: adt.BoolKind,
    81  		Func: func(c *internal.CallCtxt) {
    82  			s, max := c.String(0), c.Int(1)
    83  			if c.Do() {
    84  				c.Ret = MaxRunes(s, max)
    85  			}
    86  		},
    87  	}, {
    88  		Name: "ToTitle",
    89  		Params: []internal.Param{
    90  			{Kind: adt.StringKind},
    91  		},
    92  		Result: adt.StringKind,
    93  		Func: func(c *internal.CallCtxt) {
    94  			s := c.String(0)
    95  			if c.Do() {
    96  				c.Ret = ToTitle(s)
    97  			}
    98  		},
    99  	}, {
   100  		Name: "ToCamel",
   101  		Params: []internal.Param{
   102  			{Kind: adt.StringKind},
   103  		},
   104  		Result: adt.StringKind,
   105  		Func: func(c *internal.CallCtxt) {
   106  			s := c.String(0)
   107  			if c.Do() {
   108  				c.Ret = ToCamel(s)
   109  			}
   110  		},
   111  	}, {
   112  		Name: "SliceRunes",
   113  		Params: []internal.Param{
   114  			{Kind: adt.StringKind},
   115  			{Kind: adt.IntKind},
   116  			{Kind: adt.IntKind},
   117  		},
   118  		Result: adt.StringKind,
   119  		Func: func(c *internal.CallCtxt) {
   120  			s, start, end := c.String(0), c.Int(1), c.Int(2)
   121  			if c.Do() {
   122  				c.Ret, c.Err = SliceRunes(s, start, end)
   123  			}
   124  		},
   125  	}, {
   126  		Name: "Compare",
   127  		Params: []internal.Param{
   128  			{Kind: adt.StringKind},
   129  			{Kind: adt.StringKind},
   130  		},
   131  		Result: adt.IntKind,
   132  		Func: func(c *internal.CallCtxt) {
   133  			a, b := c.String(0), c.String(1)
   134  			if c.Do() {
   135  				c.Ret = Compare(a, b)
   136  			}
   137  		},
   138  	}, {
   139  		Name: "Count",
   140  		Params: []internal.Param{
   141  			{Kind: adt.StringKind},
   142  			{Kind: adt.StringKind},
   143  		},
   144  		Result: adt.IntKind,
   145  		Func: func(c *internal.CallCtxt) {
   146  			s, substr := c.String(0), c.String(1)
   147  			if c.Do() {
   148  				c.Ret = Count(s, substr)
   149  			}
   150  		},
   151  	}, {
   152  		Name: "Contains",
   153  		Params: []internal.Param{
   154  			{Kind: adt.StringKind},
   155  			{Kind: adt.StringKind},
   156  		},
   157  		Result: adt.BoolKind,
   158  		Func: func(c *internal.CallCtxt) {
   159  			s, substr := c.String(0), c.String(1)
   160  			if c.Do() {
   161  				c.Ret = Contains(s, substr)
   162  			}
   163  		},
   164  	}, {
   165  		Name: "ContainsAny",
   166  		Params: []internal.Param{
   167  			{Kind: adt.StringKind},
   168  			{Kind: adt.StringKind},
   169  		},
   170  		Result: adt.BoolKind,
   171  		Func: func(c *internal.CallCtxt) {
   172  			s, chars := c.String(0), c.String(1)
   173  			if c.Do() {
   174  				c.Ret = ContainsAny(s, chars)
   175  			}
   176  		},
   177  	}, {
   178  		Name: "LastIndex",
   179  		Params: []internal.Param{
   180  			{Kind: adt.StringKind},
   181  			{Kind: adt.StringKind},
   182  		},
   183  		Result: adt.IntKind,
   184  		Func: func(c *internal.CallCtxt) {
   185  			s, substr := c.String(0), c.String(1)
   186  			if c.Do() {
   187  				c.Ret = LastIndex(s, substr)
   188  			}
   189  		},
   190  	}, {
   191  		Name: "IndexAny",
   192  		Params: []internal.Param{
   193  			{Kind: adt.StringKind},
   194  			{Kind: adt.StringKind},
   195  		},
   196  		Result: adt.IntKind,
   197  		Func: func(c *internal.CallCtxt) {
   198  			s, chars := c.String(0), c.String(1)
   199  			if c.Do() {
   200  				c.Ret = IndexAny(s, chars)
   201  			}
   202  		},
   203  	}, {
   204  		Name: "LastIndexAny",
   205  		Params: []internal.Param{
   206  			{Kind: adt.StringKind},
   207  			{Kind: adt.StringKind},
   208  		},
   209  		Result: adt.IntKind,
   210  		Func: func(c *internal.CallCtxt) {
   211  			s, chars := c.String(0), c.String(1)
   212  			if c.Do() {
   213  				c.Ret = LastIndexAny(s, chars)
   214  			}
   215  		},
   216  	}, {
   217  		Name: "SplitN",
   218  		Params: []internal.Param{
   219  			{Kind: adt.StringKind},
   220  			{Kind: adt.StringKind},
   221  			{Kind: adt.IntKind},
   222  		},
   223  		Result: adt.ListKind,
   224  		Func: func(c *internal.CallCtxt) {
   225  			s, sep, n := c.String(0), c.String(1), c.Int(2)
   226  			if c.Do() {
   227  				c.Ret = SplitN(s, sep, n)
   228  			}
   229  		},
   230  	}, {
   231  		Name: "SplitAfterN",
   232  		Params: []internal.Param{
   233  			{Kind: adt.StringKind},
   234  			{Kind: adt.StringKind},
   235  			{Kind: adt.IntKind},
   236  		},
   237  		Result: adt.ListKind,
   238  		Func: func(c *internal.CallCtxt) {
   239  			s, sep, n := c.String(0), c.String(1), c.Int(2)
   240  			if c.Do() {
   241  				c.Ret = SplitAfterN(s, sep, n)
   242  			}
   243  		},
   244  	}, {
   245  		Name: "Split",
   246  		Params: []internal.Param{
   247  			{Kind: adt.StringKind},
   248  			{Kind: adt.StringKind},
   249  		},
   250  		Result: adt.ListKind,
   251  		Func: func(c *internal.CallCtxt) {
   252  			s, sep := c.String(0), c.String(1)
   253  			if c.Do() {
   254  				c.Ret = Split(s, sep)
   255  			}
   256  		},
   257  	}, {
   258  		Name: "SplitAfter",
   259  		Params: []internal.Param{
   260  			{Kind: adt.StringKind},
   261  			{Kind: adt.StringKind},
   262  		},
   263  		Result: adt.ListKind,
   264  		Func: func(c *internal.CallCtxt) {
   265  			s, sep := c.String(0), c.String(1)
   266  			if c.Do() {
   267  				c.Ret = SplitAfter(s, sep)
   268  			}
   269  		},
   270  	}, {
   271  		Name: "Fields",
   272  		Params: []internal.Param{
   273  			{Kind: adt.StringKind},
   274  		},
   275  		Result: adt.ListKind,
   276  		Func: func(c *internal.CallCtxt) {
   277  			s := c.String(0)
   278  			if c.Do() {
   279  				c.Ret = Fields(s)
   280  			}
   281  		},
   282  	}, {
   283  		Name: "Join",
   284  		Params: []internal.Param{
   285  			{Kind: adt.ListKind},
   286  			{Kind: adt.StringKind},
   287  		},
   288  		Result: adt.StringKind,
   289  		Func: func(c *internal.CallCtxt) {
   290  			elems, sep := c.StringList(0), c.String(1)
   291  			if c.Do() {
   292  				c.Ret = Join(elems, sep)
   293  			}
   294  		},
   295  	}, {
   296  		Name: "HasPrefix",
   297  		Params: []internal.Param{
   298  			{Kind: adt.StringKind},
   299  			{Kind: adt.StringKind},
   300  		},
   301  		Result: adt.BoolKind,
   302  		Func: func(c *internal.CallCtxt) {
   303  			s, prefix := c.String(0), c.String(1)
   304  			if c.Do() {
   305  				c.Ret = HasPrefix(s, prefix)
   306  			}
   307  		},
   308  	}, {
   309  		Name: "HasSuffix",
   310  		Params: []internal.Param{
   311  			{Kind: adt.StringKind},
   312  			{Kind: adt.StringKind},
   313  		},
   314  		Result: adt.BoolKind,
   315  		Func: func(c *internal.CallCtxt) {
   316  			s, suffix := c.String(0), c.String(1)
   317  			if c.Do() {
   318  				c.Ret = HasSuffix(s, suffix)
   319  			}
   320  		},
   321  	}, {
   322  		Name: "Repeat",
   323  		Params: []internal.Param{
   324  			{Kind: adt.StringKind},
   325  			{Kind: adt.IntKind},
   326  		},
   327  		Result: adt.StringKind,
   328  		Func: func(c *internal.CallCtxt) {
   329  			s, count := c.String(0), c.Int(1)
   330  			if c.Do() {
   331  				c.Ret = Repeat(s, count)
   332  			}
   333  		},
   334  	}, {
   335  		Name: "ToUpper",
   336  		Params: []internal.Param{
   337  			{Kind: adt.StringKind},
   338  		},
   339  		Result: adt.StringKind,
   340  		Func: func(c *internal.CallCtxt) {
   341  			s := c.String(0)
   342  			if c.Do() {
   343  				c.Ret = ToUpper(s)
   344  			}
   345  		},
   346  	}, {
   347  		Name: "ToLower",
   348  		Params: []internal.Param{
   349  			{Kind: adt.StringKind},
   350  		},
   351  		Result: adt.StringKind,
   352  		Func: func(c *internal.CallCtxt) {
   353  			s := c.String(0)
   354  			if c.Do() {
   355  				c.Ret = ToLower(s)
   356  			}
   357  		},
   358  	}, {
   359  		Name: "Trim",
   360  		Params: []internal.Param{
   361  			{Kind: adt.StringKind},
   362  			{Kind: adt.StringKind},
   363  		},
   364  		Result: adt.StringKind,
   365  		Func: func(c *internal.CallCtxt) {
   366  			s, cutset := c.String(0), c.String(1)
   367  			if c.Do() {
   368  				c.Ret = Trim(s, cutset)
   369  			}
   370  		},
   371  	}, {
   372  		Name: "TrimLeft",
   373  		Params: []internal.Param{
   374  			{Kind: adt.StringKind},
   375  			{Kind: adt.StringKind},
   376  		},
   377  		Result: adt.StringKind,
   378  		Func: func(c *internal.CallCtxt) {
   379  			s, cutset := c.String(0), c.String(1)
   380  			if c.Do() {
   381  				c.Ret = TrimLeft(s, cutset)
   382  			}
   383  		},
   384  	}, {
   385  		Name: "TrimRight",
   386  		Params: []internal.Param{
   387  			{Kind: adt.StringKind},
   388  			{Kind: adt.StringKind},
   389  		},
   390  		Result: adt.StringKind,
   391  		Func: func(c *internal.CallCtxt) {
   392  			s, cutset := c.String(0), c.String(1)
   393  			if c.Do() {
   394  				c.Ret = TrimRight(s, cutset)
   395  			}
   396  		},
   397  	}, {
   398  		Name: "TrimSpace",
   399  		Params: []internal.Param{
   400  			{Kind: adt.StringKind},
   401  		},
   402  		Result: adt.StringKind,
   403  		Func: func(c *internal.CallCtxt) {
   404  			s := c.String(0)
   405  			if c.Do() {
   406  				c.Ret = TrimSpace(s)
   407  			}
   408  		},
   409  	}, {
   410  		Name: "TrimPrefix",
   411  		Params: []internal.Param{
   412  			{Kind: adt.StringKind},
   413  			{Kind: adt.StringKind},
   414  		},
   415  		Result: adt.StringKind,
   416  		Func: func(c *internal.CallCtxt) {
   417  			s, prefix := c.String(0), c.String(1)
   418  			if c.Do() {
   419  				c.Ret = TrimPrefix(s, prefix)
   420  			}
   421  		},
   422  	}, {
   423  		Name: "TrimSuffix",
   424  		Params: []internal.Param{
   425  			{Kind: adt.StringKind},
   426  			{Kind: adt.StringKind},
   427  		},
   428  		Result: adt.StringKind,
   429  		Func: func(c *internal.CallCtxt) {
   430  			s, suffix := c.String(0), c.String(1)
   431  			if c.Do() {
   432  				c.Ret = TrimSuffix(s, suffix)
   433  			}
   434  		},
   435  	}, {
   436  		Name: "Replace",
   437  		Params: []internal.Param{
   438  			{Kind: adt.StringKind},
   439  			{Kind: adt.StringKind},
   440  			{Kind: adt.StringKind},
   441  			{Kind: adt.IntKind},
   442  		},
   443  		Result: adt.StringKind,
   444  		Func: func(c *internal.CallCtxt) {
   445  			s, old, new, n := c.String(0), c.String(1), c.String(2), c.Int(3)
   446  			if c.Do() {
   447  				c.Ret = Replace(s, old, new, n)
   448  			}
   449  		},
   450  	}, {
   451  		Name: "Print",
   452  		Params: []internal.Param{
   453  			{Kind: adt.TopKind},
   454  		},
   455  		Result: adt.TopKind,
   456  		Func: func(c *internal.CallCtxt) {
   457  			v := c.Value(0)
   458  			if c.Do() {
   459  				b, _ := v.MarshalJSON()
   460  				fmt.Println(string(b))
   461  				c.Ret = v
   462  			}
   463  		},
   464  	}, {
   465  		Name: "Index",
   466  		Params: []internal.Param{
   467  			{Kind: adt.StringKind},
   468  			{Kind: adt.StringKind},
   469  		},
   470  		Result: adt.IntKind,
   471  		Func: func(c *internal.CallCtxt) {
   472  			s, substr := c.String(0), c.String(1)
   473  			if c.Do() {
   474  				c.Ret = Index(s, substr)
   475  			}
   476  		},
   477  	}},
   478  }