difftreelog
feat std.native can return arbitrary Val
in: master
2 files changed
crates/jrsonnet-stdlib/src/lib.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/lib.rs
+++ b/crates/jrsonnet-stdlib/src/lib.rs
@@ -485,7 +485,7 @@
/// Used for `std.extVar`
pub ext_vars: HashMap<IStr, TlaArg>,
/// Used for `std.native`
- pub ext_natives: HashMap<IStr, FuncVal>,
+ pub ext_natives: HashMap<IStr, Val>,
/// Used for `std.trace`
pub trace_printer: Rc<dyn TracePrinter>,
/// Used for `std.thisFile`
@@ -539,7 +539,7 @@
pub fn add_native(&self, name: impl Into<IStr>, cb: impl Into<FuncVal>) {
self.settings_mut()
.ext_natives
- .insert(name.into(), cb.into());
+ .insert(name.into(), Val::Func(cb.into()));
}
}
impl jrsonnet_evaluator::ContextInitializer for ContextInitializer {
crates/jrsonnet-stdlib/src/misc.rsdiffbeforeafterboth68 .ext_natives68 .ext_natives69 .get(&x)69 .get(&x)70 .cloned()70 .cloned()71 .map_or(Val::Null, Val::Func)71 .unwrap_or(Val::Null)72}72}737374#[builtin(fields(74#[builtin(fields(