Native OCaml Rego/OPA policy engine
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

ocaml-rego: add trim_prefix and trim_suffix builtins

+12
+12
lib/eval.ml
··· 2388 2388 | "trim_right", [ Value.String s; Value.String cs ] -> 2389 2389 Value.String (trim_side ~left:false cs s) 2390 2390 | "trim_space", [ Value.String s ] -> Value.String (String.trim s) 2391 + | "trim_prefix", [ Value.String s; Value.String pre ] -> 2392 + let n = String.length s in 2393 + let pn = String.length pre in 2394 + if pn <= n && String.sub s 0 pn = pre then 2395 + Value.String (String.sub s pn (n - pn)) 2396 + else Value.String s 2397 + | "trim_suffix", [ Value.String s; Value.String suf ] -> 2398 + let n = String.length s in 2399 + let sn = String.length suf in 2400 + if sn <= n && String.sub s (n - sn) sn = suf then 2401 + Value.String (String.sub s 0 (n - sn)) 2402 + else Value.String s 2391 2403 | "replace", [ Value.String s; Value.String old_; Value.String new_ ] -> 2392 2404 Value.String 2393 2405 (Astring.String.concat ~sep:new_ (Astring.String.cuts ~sep:old_ s))