difftreelog
feat accept plain functions for std.native outputs
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
@@ -237,7 +237,7 @@
/// Used for `std.extVar`
pub ext_vars: HashMap<IStr, TlaArg>,
/// Used for `std.native`
- pub ext_natives: HashMap<IStr, Cc<TraceBox<dyn Builtin>>>,
+ pub ext_natives: HashMap<IStr, FuncVal>,
/// Used for `std.trace`
pub trace_printer: Box<dyn TracePrinter>,
/// Used for `std.thisFile`
tests/tests/std_native.rsdiffbeforeafterboth1use jrsonnet_evaluator::{function::builtin, trace::PathResolver, State};2use jrsonnet_stdlib::ContextInitializer;34#[builtin]5fn example_native(a: u32, b: u32) -> u32 {6 a + b7}89#[test]10fn std_native() {11 let state = State::default();12 let std = ContextInitializer::new(state.clone(), PathResolver::Absolute);13 std.add_native("example", example_native::INST);14 state.set_context_initializer(std);1516 assert!(state17 .evaluate_snippet("test", "std.native('example')(1, 3) == 4")18 .unwrap()19 .as_bool()20 .expect("boolean output"));21}