difftreelog
refactor extract standard library to another module
in: master
3 files changed
crates/jrsonnet-evaluator/src/builtin/mod.rsdiffbeforeafterbothno changes
crates/jrsonnet-evaluator/src/builtin/stdlib.rsdiffbeforeafterbothno changes
crates/jrsonnet-evaluator/src/lib.rsdiffbeforeafterboth262 self.run_in_state(|| evaluate(self.create_default_context()?, &code))262 self.run_in_state(|| evaluate(self.create_default_context()?, &code))263 }263 }264264265 pub fn add_global(&self, name: Rc<str>, value: Val) {265 /// Adds standard library global variable (std) to this evaluator266 self.settings_mut().globals.insert(name, value);267 }268 pub fn add_ext_var(&self, name: Rc<str>, value: Val) {269 self.settings_mut().ext_vars.insert(name, value);270 }271 pub fn set_max_trace(&self, max_trace: usize) {272 self.settings_mut().max_stack_trace_size = max_trace;273 }274 pub fn set_max_stack(&self, max_stack: usize) {275 self.settings_mut().max_stack_frames = max_stack;276 }277278 pub fn with_stdlib(&self) -> &Self {266 pub fn with_stdlib(&self) -> &Self {267 use jrsonnet_stdlib::STDLIB_STR;279 let std_path = Rc::new(PathBuf::from("std.jsonnet"));268 let std_path = Rc::new(PathBuf::from("std.jsonnet"));280 self.run_in_state(|| {269 self.run_in_state(|| {281 use jrsonnet_stdlib::STDLIB_STR;282 let mut parsed = false;283 #[cfg(feature = "codegenerated-stdlib")]284 if !parsed {285 parsed = true;286 #[allow(clippy::all)]287 let stdlib = {288 use jrsonnet_parser::*;289 include!(concat!(env!("OUT_DIR"), "/stdlib.rs"))290 };291 self.add_parsed_file(std_path.clone(), STDLIB_STR.to_owned().into(), stdlib)292 .unwrap();293 }294295 #[cfg(feature = "serialized-stdlib")]296 if !parsed {297 parsed = true;298 self.add_parsed_file(270 self.add_parsed_file(299 std_path.clone(),271 std_path.clone(),300 STDLIB_STR.to_owned().into(),272 STDLIB_STR.to_owned().into(),301 bincode::deserialize(include_bytes!(concat!(273 builtin::get_parsed_stdlib(),302 env!("OUT_DIR"),303 "/stdlib.bincode"304 )))305 .expect("deserialize stdlib"),306 )274 )307 .unwrap();275 .unwrap();308 }309310 if !parsed {311 self.add_file(std_path, STDLIB_STR.to_owned().into())312 .unwrap();313 }314 let val = self.evaluate_file(&PathBuf::from("std.jsonnet")).unwrap();276 let val = self.evaluate_file(&std_path).unwrap();315 self.add_global("std".into(), val);277 self.settings_mut().globals.insert("std".into(), val);316 });278 });317 self279 self318 }280 }