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 }