github.com/expr-lang/expr@v1.16.9/test/crowdsec/funcs.go (about)

     1  package crowdsec
     2  
     3  import (
     4  	"time"
     5  )
     6  
     7  var CustomFunctions = []struct {
     8  	Name string
     9  	Func []any
    10  }{
    11  	{
    12  		Name: "Distance",
    13  		Func: []any{
    14  			new(func(string, string, string, string) (float64, error)),
    15  		},
    16  	},
    17  	{
    18  		Name: "GetFromStash",
    19  		Func: []any{
    20  			new(func(string, string) (string, error)),
    21  		},
    22  	},
    23  	{
    24  		Name: "Atof",
    25  		Func: []any{
    26  			new(func(string) float64),
    27  		},
    28  	},
    29  	{
    30  		Name: "JsonExtract",
    31  		Func: []any{
    32  			new(func(string, string) string),
    33  		},
    34  	},
    35  	{
    36  		Name: "JsonExtractUnescape",
    37  		Func: []any{
    38  			new(func(string, ...string) string),
    39  		},
    40  	},
    41  	{
    42  		Name: "JsonExtractLib",
    43  		Func: []any{
    44  			new(func(string, ...string) string),
    45  		},
    46  	},
    47  	{
    48  		Name: "JsonExtractSlice",
    49  		Func: []any{
    50  			new(func(string, string) []any),
    51  		},
    52  	},
    53  	{
    54  		Name: "JsonExtractObject",
    55  		Func: []any{
    56  			new(func(string, string) map[string]any),
    57  		},
    58  	},
    59  	{
    60  		Name: "ToJsonString",
    61  		Func: []any{
    62  			new(func(any) string),
    63  		},
    64  	},
    65  	{
    66  		Name: "File",
    67  		Func: []any{
    68  			new(func(string) []string),
    69  		},
    70  	},
    71  	{
    72  		Name: "RegexpInFile",
    73  		Func: []any{
    74  			new(func(string, string) bool),
    75  		},
    76  	},
    77  	{
    78  		Name: "Upper",
    79  		Func: []any{
    80  			new(func(string) string),
    81  		},
    82  	},
    83  	{
    84  		Name: "Lower",
    85  		Func: []any{
    86  			new(func(string) string),
    87  		},
    88  	},
    89  	{
    90  		Name: "IpInRange",
    91  		Func: []any{
    92  			new(func(string, string) bool),
    93  		},
    94  	},
    95  	{
    96  		Name: "TimeNow",
    97  		Func: []any{
    98  			new(func() string),
    99  		},
   100  	},
   101  	{
   102  		Name: "ParseUri",
   103  		Func: []any{
   104  			new(func(string) map[string][]string),
   105  		},
   106  	},
   107  	{
   108  		Name: "PathUnescape",
   109  		Func: []any{
   110  			new(func(string) string),
   111  		},
   112  	},
   113  	{
   114  		Name: "QueryUnescape",
   115  		Func: []any{
   116  			new(func(string) string),
   117  		},
   118  	},
   119  	{
   120  		Name: "PathEscape",
   121  		Func: []any{
   122  			new(func(string) string),
   123  		},
   124  	},
   125  	{
   126  		Name: "QueryEscape",
   127  		Func: []any{
   128  			new(func(string) string),
   129  		},
   130  	},
   131  	{
   132  		Name: "XMLGetAttributeValue",
   133  		Func: []any{
   134  			new(func(string, string, string) string),
   135  		},
   136  	},
   137  	{
   138  		Name: "XMLGetNodeValue",
   139  		Func: []any{
   140  			new(func(string, string) string),
   141  		},
   142  	},
   143  	{
   144  		Name: "IpToRange",
   145  		Func: []any{
   146  			new(func(string, string) string),
   147  		},
   148  	},
   149  	{
   150  		Name: "IsIPV6",
   151  		Func: []any{
   152  			new(func(string) bool),
   153  		},
   154  	},
   155  	{
   156  		Name: "IsIPV4",
   157  		Func: []any{
   158  			new(func(string) bool),
   159  		},
   160  	},
   161  	{
   162  		Name: "IsIP",
   163  		Func: []any{
   164  			new(func(string) bool),
   165  		},
   166  	},
   167  	{
   168  		Name: "LookupHost",
   169  		Func: []any{
   170  			new(func(string) []string),
   171  		},
   172  	},
   173  	{
   174  		Name: "GetDecisionsCount",
   175  		Func: []any{
   176  			new(func(string) int),
   177  		},
   178  	},
   179  	{
   180  		Name: "GetDecisionsSinceCount",
   181  		Func: []any{
   182  			new(func(string, string) int),
   183  		},
   184  	},
   185  	{
   186  		Name: "Sprintf",
   187  		Func: []any{
   188  			new(func(string, ...any) string),
   189  		},
   190  	},
   191  	{
   192  		Name: "ParseUnix",
   193  		Func: []any{
   194  			new(func(string) string),
   195  		},
   196  	},
   197  	{
   198  		Name: "SetInStash",
   199  		Func: []any{
   200  			new(func(string, string, string, *time.Duration) error),
   201  		},
   202  	},
   203  	{
   204  		Name: "Fields",
   205  		Func: []any{
   206  			new(func(string) []string),
   207  		},
   208  	},
   209  	{
   210  		Name: "Index",
   211  		Func: []any{
   212  			new(func(string, string) int),
   213  		},
   214  	},
   215  	{
   216  		Name: "IndexAny",
   217  		Func: []any{
   218  			new(func(string, string) int),
   219  		},
   220  	},
   221  	{
   222  		Name: "Join",
   223  		Func: []any{
   224  			new(func([]string, string) string),
   225  		},
   226  	},
   227  	{
   228  		Name: "Split",
   229  		Func: []any{
   230  			new(func(string, string) []string),
   231  		},
   232  	},
   233  	{
   234  		Name: "SplitAfter",
   235  		Func: []any{
   236  			new(func(string, string) []string),
   237  		},
   238  	},
   239  	{
   240  		Name: "SplitAfterN",
   241  		Func: []any{
   242  			new(func(string, string, int) []string),
   243  		},
   244  	},
   245  	{
   246  		Name: "SplitN",
   247  		Func: []any{
   248  			new(func(string, string, int) []string),
   249  		},
   250  	},
   251  	{
   252  		Name: "Replace",
   253  		Func: []any{
   254  			new(func(string, string, string, int) string),
   255  		},
   256  	},
   257  	{
   258  		Name: "ReplaceAll",
   259  		Func: []any{
   260  			new(func(string, string, string) string),
   261  		},
   262  	},
   263  	{
   264  		Name: "Trim",
   265  		Func: []any{
   266  			new(func(string, string) string),
   267  		},
   268  	},
   269  	{
   270  		Name: "TrimLeft",
   271  		Func: []any{
   272  			new(func(string, string) string),
   273  		},
   274  	},
   275  	{
   276  		Name: "TrimRight",
   277  		Func: []any{
   278  			new(func(string, string) string),
   279  		},
   280  	},
   281  	{
   282  		Name: "TrimSpace",
   283  		Func: []any{
   284  			new(func(string) string),
   285  		},
   286  	},
   287  	{
   288  		Name: "TrimPrefix",
   289  		Func: []any{
   290  			new(func(string, string) string),
   291  		},
   292  	},
   293  	{
   294  		Name: "TrimSuffix",
   295  		Func: []any{
   296  			new(func(string, string) string),
   297  		},
   298  	},
   299  	{
   300  		Name: "Get",
   301  		Func: []any{
   302  			new(func([]string, int) string),
   303  		},
   304  	},
   305  	{
   306  		Name: "ToString",
   307  		Func: []any{
   308  			new(func(any) string),
   309  		},
   310  	},
   311  	{
   312  		Name: "Match",
   313  		Func: []any{
   314  			new(func(string, string) bool),
   315  		},
   316  	},
   317  	{
   318  		Name: "KeyExists",
   319  		Func: []any{
   320  			new(func(string, map[string]any) bool),
   321  		},
   322  	},
   323  	{
   324  		Name: "LogInfo",
   325  		Func: []any{
   326  			new(func(string, ...any) bool),
   327  		},
   328  	},
   329  	{
   330  		Name: "B64Decode",
   331  		Func: []any{
   332  			new(func(string) string),
   333  		},
   334  	},
   335  	{
   336  		Name: "UnmarshalJSON",
   337  		Func: []any{
   338  			new(func(string, map[string]any, string) error),
   339  		},
   340  	},
   341  	{
   342  		Name: "ParseKV",
   343  		Func: []any{
   344  			new(func(string, map[string]any, string) error),
   345  		},
   346  	},
   347  	{
   348  		Name: "Hostname",
   349  		Func: []any{
   350  			new(func() (string, error)),
   351  		},
   352  	},
   353  }