Function lka_eval_strict

Source
pub fn lka_eval_strict(expr: &str, scope: &dyn LkEnv) -> LkResult<Vec<u8>>
Expand description

Same as lka_eval but accepts bytes outside the range 0x20..0xfe as-is. useful for templating with newlines and utf bytes.

This distinction exists because UTF has a bunch of characters that can hide a surprise - lka_eval input and lka_encode output is only every ascii.

assert_eq!( "abc 🔗🔗".as_bytes() as &[u8], &lka_eval_strict( "abc 🔗🔗" ,())?, );
assert_eq!( "\0\0\0\0\0\0\0\0\0\0\0\0🔗 4036990103".as_bytes() as &[u8], &lka_eval_strict( "[a:🔗] [:🔗/?u]",())?, );