ref: e09c6b53f3b1928d3752c53c813025dbcbb976e0
dir: /lib/std/strreplace.myr/
use "alloc" use "die" use "slcp" use "strfind" use "sljoin" use "types" use "option" pkg std = const strreplace : (haystack : byte[:], needle : byte[:], repl : byte[:] -> byte[:]) ;; const strreplace = {haystack, needle, repl var ret iassert(needle.len > 0, "missing needle") ret = "" while true match std.strfind(haystack, needle) | `None: break | `Some idx: std.sljoin(&ret, haystack[:idx]) std.sljoin(&ret, repl) haystack = haystack[idx + needle.len:] ;; ;; std.sljoin(&ret, haystack) -> ret }