difftreelog
feat feature-gate regex
in: master
3 files changed
cmds/jrsonnet/Cargo.tomldiffbeforeafterboth--- a/cmds/jrsonnet/Cargo.toml
+++ b/cmds/jrsonnet/Cargo.toml
@@ -30,9 +30,7 @@
# Bigint type
exp-bigint = ["jrsonnet-evaluator/exp-bigint", "jrsonnet-cli/exp-bigint"]
# std.regex and co.
-exp-regex = [
- "jrsonnet-stdlib/exp-regex",
-]
+exp-regex = ["jrsonnet-cli/exp-regex"]
# obj?.field, obj?.['field']
exp-null-coaelse = [
"jrsonnet-evaluator/exp-null-coaelse",
crates/jrsonnet-evaluator/src/typed/conversions.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/typed/conversions.rs
+++ b/crates/jrsonnet-evaluator/src/typed/conversions.rs
@@ -10,7 +10,7 @@
bail,
function::{native::NativeDesc, FuncDesc, FuncVal},
typed::CheckType,
- val::{IndexableVal, ThunkMapper},
+ val::{IndexableVal, StrValue, ThunkMapper},
ObjValue, ObjValueBuilder, Result, Thunk, Val,
};
crates/jrsonnet-stdlib/src/regex.rsdiffbeforeafterboth45 let mut named_captures = ObjValueBuilder::with_capacity(regex.capture_names().len());45 let mut named_captures = ObjValueBuilder::with_capacity(regex.capture_names().len());464647 let Some(captured) = regex.captures(&str) else {47 let Some(captured) = regex.captures(&str) else {48 return Ok(Val::Null)48 return Ok(Val::Null);49 };49 };505051 for ele in captured.iter().skip(1) {51 for ele in captured.iter().skip(1) {62 .flat_map(|(i, v)| Some((i, v?)))62 .flat_map(|(i, v)| Some((i, v?)))63 {63 {64 let capture = captures[i].clone();64 let capture = captures[i].clone();65 named_captures.member(name.into()).value(capture)?;65 named_captures.field(name).try_value(capture)?;66 }66 }676768 out.member("string".into())68 out.field("string")69 .value_unchecked(Val::Str(captured.get(0).unwrap().as_str().into()));69 .value(Val::Str(captured.get(0).unwrap().as_str().into()));70 out.member("captures".into())70 out.field("captures").value(Val::Arr(captures.into()));71 .value_unchecked(Val::Arr(captures.into()));72 out.member("namedCaptures".into())71 out.field("namedCaptures")73 .value_unchecked(Val::Obj(named_captures.build()));72 .value(Val::Obj(named_captures.build()));747375 Ok(Val::Obj(out.build()))74 Ok(Val::Obj(out.build()))76}75}