difftreelog
style enforce import style
in: master
38 files changed
.rustfmt.tomldiffbeforeafterboth1hard_tabs = true1hard_tabs = true2imports_granularity = "crate"3group_imports = "stdexternalcrate"24bindings/jsonnet/src/import.rsdiffbeforeafterboth1//! Import resolution manipulation utilities1//! Import resolution manipulation utilities223use jrsonnet_evaluator::{4 error::{Error::*, Result},5 throw, EvaluationState, ImportResolver,6};7use std::{3use std::{8 any::Any,4 any::Any,9 cell::RefCell,5 cell::RefCell,17 rc::Rc,13 rc::Rc,18};14};1516use jrsonnet_evaluator::{17 error::{Error::*, Result},18 throw, EvaluationState, ImportResolver,19};192020pub type JsonnetImportCallback = unsafe extern "C" fn(21pub type JsonnetImportCallback = unsafe extern "C" fn(21 ctx: *mut c_void,22 ctx: *mut c_void,bindings/jsonnet/src/interop.rsdiffbeforeafterboth1//! Jrsonnet specific additional binding helpers1//! Jrsonnet specific additional binding helpers223use crate::{import::jsonnet_import_callback, native::jsonnet_native_callback};4use jrsonnet_evaluator::{EvaluationState, Val};5use std::{3use std::{6 ffi::c_void,4 ffi::c_void,7 os::raw::{c_char, c_int},5 os::raw::{c_char, c_int},8};6};78use jrsonnet_evaluator::{EvaluationState, Val};910use crate::{import::jsonnet_import_callback, native::jsonnet_native_callback};91110extern "C" {12extern "C" {11 pub fn _jrsonnet_static_import_callback(13 pub fn _jrsonnet_static_import_callback(bindings/jsonnet/src/lib.rsdiffbeforeafterboth8pub mod val_modify;8pub mod val_modify;9pub mod vars_tlas;9pub mod vars_tlas;1011use std::{12 alloc::Layout,13 ffi::{CStr, CString},14 os::raw::{c_char, c_double, c_int, c_uint},15 path::PathBuf,16};101711use import::NativeImportResolver;18use import::NativeImportResolver;12use jrsonnet_evaluator::{EvaluationState, IStr, ManifestFormat, Val};19use jrsonnet_evaluator::{EvaluationState, IStr, ManifestFormat, Val};13use std::{14 alloc::Layout,15 ffi::{CStr, CString},16 os::raw::{c_char, c_double, c_int, c_uint},17 path::PathBuf,18};192020/// WASM stub21/// WASM stub21#[cfg(target_arch = "wasm32")]22#[cfg(target_arch = "wasm32")]bindings/jsonnet/src/native.rsdiffbeforeafterboth1use std::{2 convert::TryFrom,3 ffi::{c_void, CStr},4 os::raw::{c_char, c_int},5 path::Path,6 rc::Rc,7};81use gcmodule::Cc;9use gcmodule::Cc;2use jrsonnet_evaluator::{10use jrsonnet_evaluator::{6 native::{NativeCallback, NativeCallbackHandler},14 native::{NativeCallback, NativeCallbackHandler},7 EvaluationState, IStr, Val,15 EvaluationState, IStr, Val,8};16};9use std::{10 convert::TryFrom,11 ffi::{c_void, CStr},12 os::raw::{c_char, c_int},13 path::Path,14 rc::Rc,15};161717type JsonnetNativeCallback = unsafe extern "C" fn(18type JsonnetNativeCallback = unsafe extern "C" fn(18 ctx: *const c_void,19 ctx: *const c_void,bindings/jsonnet/src/val_extract.rsdiffbeforeafterboth1//! Extract values from VM1//! Extract values from VM23use jrsonnet_evaluator::{EvaluationState, Val};425use std::{3use std::{6 ffi::CString,4 ffi::CString,7 os::raw::{c_char, c_double, c_int},5 os::raw::{c_char, c_double, c_int},8};6};78use jrsonnet_evaluator::{EvaluationState, Val};9910#[no_mangle]10#[no_mangle]11pub extern "C" fn jsonnet_json_extract_string(_vm: &EvaluationState, v: &Val) -> *mut c_char {11pub extern "C" fn jsonnet_json_extract_string(_vm: &EvaluationState, v: &Val) -> *mut c_char {bindings/jsonnet/src/val_make.rsdiffbeforeafterboth1//! Create values in VM1//! Create values in VM223use gcmodule::Cc;4use jrsonnet_evaluator::{ArrValue, EvaluationState, ObjValue, Val};5use std::{3use std::{6 ffi::CStr,4 ffi::CStr,7 os::raw::{c_char, c_double, c_int},5 os::raw::{c_char, c_double, c_int},8};6};78use gcmodule::Cc;9use jrsonnet_evaluator::{val::ArrValue, EvaluationState, ObjValue, Val};91010/// # Safety11/// # Safety11///12///bindings/jsonnet/src/val_modify.rsdiffbeforeafterboth2//! Only tested with variables, which haven't altered by code before appearing here2//! Only tested with variables, which haven't altered by code before appearing here3//! In jrsonnet every value is immutable, and this code is probally broken3//! In jrsonnet every value is immutable, and this code is probally broken45use std::{ffi::CStr, os::raw::c_char};465use gcmodule::Cc;7use gcmodule::Cc;6use jrsonnet_evaluator::{ArrValue, EvaluationState, LazyBinding, LazyVal, ObjMember, Val};8use jrsonnet_evaluator::{val::ArrValue, EvaluationState, LazyBinding, LazyVal, ObjMember, Val};7use jrsonnet_parser::Visibility;9use jrsonnet_parser::Visibility;8use std::{ffi::CStr, os::raw::c_char};91010/// # Safety11/// # Safety11///12///bindings/jsonnet/src/vars_tlas.rsdiffbeforeafterboth1//! Manipulate external variables and top level arguments1//! Manipulate external variables and top level arguments223use jrsonnet_evaluator::EvaluationState;4use std::{ffi::CStr, os::raw::c_char};3use std::{ffi::CStr, os::raw::c_char};45use jrsonnet_evaluator::EvaluationState;566/// # Safety7/// # Safety7#[no_mangle]8#[no_mangle]cmds/jrsonnet/src/main.rsdiffbeforeafterboth1use std::{2 fs::{create_dir_all, File},3 io::{Read, Write},4 path::PathBuf,5};61use clap::{AppSettings, IntoApp, Parser};7use clap::{AppSettings, IntoApp, Parser};2use clap_complete::Shell;8use clap_complete::Shell;3use jrsonnet_cli::{ConfigureState, GcOpts, GeneralOpts, InputOpts, ManifestOpts, OutputOpts};9use jrsonnet_cli::{ConfigureState, GcOpts, GeneralOpts, InputOpts, ManifestOpts, OutputOpts};4use jrsonnet_evaluator::{error::LocError, EvaluationState};10use jrsonnet_evaluator::{error::LocError, EvaluationState};5use std::{6 fs::{create_dir_all, File},7 io::Read,8 io::Write,9 path::PathBuf,10};111112#[cfg(feature = "mimalloc")]12#[cfg(feature = "mimalloc")]13#[global_allocator]13#[global_allocator]crates/jrsonnet-cli/src/ext.rsdiffbeforeafterboth1use crate::ConfigureState;1use std::{fs::read_to_string, str::FromStr};22use clap::Parser;3use clap::Parser;3use jrsonnet_evaluator::{error::Result, EvaluationState};4use jrsonnet_evaluator::{error::Result, EvaluationState};54use std::{fs::read_to_string, str::FromStr};6use crate::ConfigureState;576#[derive(Clone)]8#[derive(Clone)]7pub struct ExtStr {9pub struct ExtStr {crates/jrsonnet-cli/src/lib.rsdiffbeforeafterboth3mod tla;3mod tla;4mod trace;4mod trace;556pub use ext::*;6use std::{env, path::PathBuf};7pub use manifest::*;78pub use tla::*;8use clap::Parser;9pub use trace::*;9pub use ext::*;1011use clap::Parser;12use jrsonnet_evaluator::{error::Result, EvaluationState, FileImportResolver};10use jrsonnet_evaluator::{error::Result, EvaluationState, FileImportResolver};13use std::{env, path::PathBuf};11pub use manifest::*;12pub use tla::*;13pub use trace::*;141415pub trait ConfigureState {15pub trait ConfigureState {16 fn configure(&self, state: &EvaluationState) -> Result<()>;16 fn configure(&self, state: &EvaluationState) -> Result<()>;crates/jrsonnet-cli/src/manifest.rsdiffbeforeafterboth1use crate::ConfigureState;1use std::{path::PathBuf, str::FromStr};22use clap::Parser;3use clap::Parser;3use jrsonnet_evaluator::{error::Result, EvaluationState, ManifestFormat};4use jrsonnet_evaluator::{error::Result, EvaluationState, ManifestFormat};54use std::{path::PathBuf, str::FromStr};6use crate::ConfigureState;576pub enum ManifestFormatName {8pub enum ManifestFormatName {7 /// Expect string as output, and write them directly9 /// Expect string as output, and write them directlycrates/jrsonnet-cli/src/tla.rsdiffbeforeafterboth1use crate::{ConfigureState, ExtFile, ExtStr};2use clap::Parser;1use clap::Parser;3use jrsonnet_evaluator::{error::Result, EvaluationState};2use jrsonnet_evaluator::{error::Result, EvaluationState};34use crate::{ConfigureState, ExtFile, ExtStr};455#[derive(Parser)]6#[derive(Parser)]6#[clap(next_help_heading = "TOP LEVEL ARGUMENTS")]7#[clap(next_help_heading = "TOP LEVEL ARGUMENTS")]crates/jrsonnet-cli/src/trace.rsdiffbeforeafterboth1use crate::ConfigureState;1use std::str::FromStr;22use clap::Parser;3use clap::Parser;3use jrsonnet_evaluator::{4use jrsonnet_evaluator::{4 error::Result,5 error::Result,5 trace::{CompactFormat, ExplainingFormat, PathResolver},6 trace::{CompactFormat, ExplainingFormat, PathResolver},6 EvaluationState,7 EvaluationState,7};8};98use std::str::FromStr;10use crate::ConfigureState;91110#[derive(PartialEq)]12#[derive(PartialEq)]11pub enum TraceFormatName {13pub enum TraceFormatName {crates/jrsonnet-evaluator/build.rsdiffbeforeafterboth1use bincode::serialize;2use jrsonnet_parser::{parse, ParserSettings};3use jrsonnet_stdlib::STDLIB_STR;4use std::{1use std::{5 env,2 env,6 fs::File,3 fs::File,7 io::Write,4 io::Write,8 path::{Path, PathBuf},5 path::{Path, PathBuf},9};6};78use bincode::serialize;9use jrsonnet_parser::{parse, ParserSettings};10use jrsonnet_stdlib::STDLIB_STR;101111fn main() {12fn main() {12 let parsed = parse(13 let parsed = parse(crates/jrsonnet-evaluator/src/builtin/format.rsdiffbeforeafterboth1//! faster std.format impl1//! faster std.format impl2#![allow(clippy::too_many_arguments)]2#![allow(clippy::too_many_arguments)]334use crate::{error::Error::*, throw, LocError, ObjValue, Result, Val};4use std::convert::TryFrom;55use gcmodule::Trace;6use gcmodule::Trace;6use jrsonnet_interner::IStr;7use jrsonnet_interner::IStr;7use jrsonnet_types::ValType;8use jrsonnet_types::ValType;8use std::convert::TryFrom;9use thiserror::Error;109use thiserror::Error;11use crate::{error::Error::*, throw, LocError, ObjValue, Result, Val};101211#[derive(Debug, Clone, Error, Trace)]13#[derive(Debug, Clone, Error, Trace)]12pub enum FormatError {14pub enum FormatError {crates/jrsonnet-evaluator/src/builtin/manifest.rsdiffbeforeafterboth1use crate::error::Error::*;1use crate::{2use crate::error::Result;2 error::{Error::*, Result},3use crate::push_description_frame;3 push_description_frame, throw, Val,4use crate::{throw, Val};4};556#[derive(PartialEq, Clone, Copy)]6#[derive(PartialEq, Clone, Copy)]7pub enum ManifestType {7pub enum ManifestType {crates/jrsonnet-evaluator/src/builtin/mod.rsdiffbeforeafterboth1use crate::function::{CallLocation, StaticBuiltin};1use std::{2 collections::HashMap,3 convert::{TryFrom, TryInto},4};52use crate::typed::{Any, Bytes, PositiveF64, VecVal, M1};6use format::{format_arr, format_obj};7use gcmodule::Cc;8use jrsonnet_interner::IStr;9use serde::Deserialize;10use serde_yaml::DeserializingQuirks;113use crate::{12use crate::{4 builtin::manifest::{manifest_yaml_ex, ManifestYamlOptions},13 builtin::manifest::{manifest_yaml_ex, ManifestYamlOptions},5 equals,6 error::{Error::*, Result},14 error::{Error::*, Result},15 function::{CallLocation, StaticBuiltin},7 operator::evaluate_mod_op,16 operator::evaluate_mod_op,8 primitive_equals, push_frame, throw,17 push_frame, throw,9 typed::{Either2, Either4},18 typed::{Any, BoundedUsize, Bytes, Either2, Either4, PositiveF64, VecVal, M1},10 with_state, ArrValue, FuncVal, IndexableVal, Val,19 val::{equals, primitive_equals, ArrValue, FuncVal, IndexableVal, Slice},20 with_state, Either, ObjValue, Val,11};21};12use crate::{Either, ObjValue};13use format::{format_arr, format_obj};14use gcmodule::Cc;15use jrsonnet_interner::IStr;16use serde::Deserialize;17use serde_yaml::DeserializingQuirks;18use std::collections::HashMap;19use std::convert::{TryFrom, TryInto};202221pub mod stdlib;23pub mod stdlib;22pub use stdlib::*;24pub use stdlib::*;crates/jrsonnet-evaluator/src/builtin/sort.rsdiffbeforeafterboth1use gcmodule::{Cc, Trace};21use crate::{3use crate::{2 error::{Error, LocError, Result},4 error::{Error, LocError, Result},3 throw,5 throw,4 typed::Any,6 typed::Any,5 FuncVal, Val,7 val::FuncVal,8 Val,6};9};7use gcmodule::{Cc, Trace};8109#[derive(Debug, Clone, thiserror::Error, Trace)]11#[derive(Debug, Clone, thiserror::Error, Trace)]10pub enum SortError {12pub enum SortError {crates/jrsonnet-evaluator/src/builtin/stdlib.rsdiffbeforeafterboth1use jrsonnet_parser::{LocExpr, ParserSettings};2use std::path::PathBuf;1use std::path::PathBuf;23use jrsonnet_parser::{LocExpr, ParserSettings};344thread_local! {5thread_local! {5 /// To avoid parsing again when issued from the same thread6 /// To avoid parsing again when issued from the same threadcrates/jrsonnet-evaluator/src/ctx.rsdiffbeforeafterboth1use crate::cc_ptr_eq;1use std::fmt::Debug;22use crate::gc::GcHashMap;3use gcmodule::{Cc, Trace};4use jrsonnet_interner::IStr;53use crate::{6use crate::{4 error::Error::*, map::LayeredHashMap, FutureWrapper, LazyBinding, LazyVal, ObjValue, Result,7 cc_ptr_eq, error::Error::*, gc::GcHashMap, map::LayeredHashMap, FutureWrapper, LazyBinding,5 Val,8 LazyVal, ObjValue, Result, Val,6};9};7use gcmodule::{Cc, Trace};8use jrsonnet_interner::IStr;9use std::fmt::Debug;101011#[derive(Clone, Trace)]11#[derive(Clone, Trace)]12pub struct ContextCreator(pub Context, pub FutureWrapper<GcHashMap<IStr, LazyBinding>>);12pub struct ContextCreator(pub Context, pub FutureWrapper<GcHashMap<IStr, LazyBinding>>);crates/jrsonnet-evaluator/src/error.rsdiffbeforeafterboth1use crate::{1use std::{2 builtin::{format::FormatError, sort::SortError},2 path::{Path, PathBuf},3 typed::TypeLocError,3 rc::Rc,4};4};55use gcmodule::Trace;6use gcmodule::Trace;6use jrsonnet_interner::IStr;7use jrsonnet_interner::IStr;7use jrsonnet_parser::{BinaryOpType, ExprLocation, UnaryOpType};8use jrsonnet_parser::{BinaryOpType, ExprLocation, UnaryOpType};8use jrsonnet_types::ValType;9use jrsonnet_types::ValType;10use thiserror::Error;119use std::{12use crate::{10 path::{Path, PathBuf},13 builtin::{format::FormatError, sort::SortError},11 rc::Rc,14 typed::TypeLocError,12};15};13use thiserror::Error;141615#[derive(Error, Debug, Clone, Trace)]17#[derive(Error, Debug, Clone, Trace)]16pub enum Error {18pub enum Error {crates/jrsonnet-evaluator/src/evaluate/mod.rsdiffbeforeafterboth1use std::convert::TryFrom;1use std::convert::TryFrom;223use crate::{4 builtin::{std_slice, BUILTINS},5 error::Error::*,6 evaluate::operator::{evaluate_add_op, evaluate_binary_op_special, evaluate_unary_op},7 function::CallLocation,8 gc::TraceBox,9 push_frame, throw, with_state, ArrValue, Bindable, Context, ContextCreator, FuncDesc, FuncVal,10 FutureWrapper, GcHashMap, LazyBinding, LazyVal, LazyValValue, ObjValue, ObjValueBuilder,11 ObjectAssertion, Result, Val,12};13use gcmodule::{Cc, Trace};3use gcmodule::{Cc, Trace};14use jrsonnet_interner::IStr;4use jrsonnet_interner::IStr;15use jrsonnet_parser::{5use jrsonnet_parser::{18};8};19use jrsonnet_types::ValType;9use jrsonnet_types::ValType;1011use crate::{12 builtin::{std_slice, BUILTINS},13 error::Error::*,14 evaluate::operator::{evaluate_add_op, evaluate_binary_op_special, evaluate_unary_op},15 function::CallLocation,16 gc::TraceBox,17 push_frame, throw,18 typed::BoundedUsize,19 val::{ArrValue, FuncDesc, FuncVal, LazyValValue},20 with_state, Bindable, Context, ContextCreator, FutureWrapper, GcHashMap, LazyBinding, LazyVal,21 ObjValue, ObjValueBuilder, ObjectAssertion, Result, Val,22};20pub mod operator;23pub mod operator;212422pub fn evaluate_binding_in_future(25pub fn evaluate_binding_in_future(crates/jrsonnet-evaluator/src/evaluate/operator.rsdiffbeforeafterboth1use std::convert::TryInto;1use std::convert::TryInto;223use crate::builtin::std_format;4use crate::{equals, evaluate, Context, Val};5use crate::{error::Error::*, throw, Result};6use jrsonnet_parser::{BinaryOpType, LocExpr, UnaryOpType};3use jrsonnet_parser::{BinaryOpType, LocExpr, UnaryOpType};45use crate::{6 builtin::std_format, error::Error::*, evaluate, throw, val::equals, Context, Result, Val,7};788pub fn evaluate_unary_op(op: UnaryOpType, b: &Val) -> Result<Val> {9pub fn evaluate_unary_op(op: UnaryOpType, b: &Val) -> Result<Val> {9 use UnaryOpType::*;10 use UnaryOpType::*;crates/jrsonnet-evaluator/src/function.rsdiffbeforeafterboth1use crate::{1use std::{borrow::Cow, collections::HashMap, convert::TryFrom};2 error::{Error::*, LocError},23 evaluate, evaluate_named,4 gc::TraceBox,5 throw,6 typed::Typed,7 Context, FutureWrapper, GcHashMap, LazyVal, LazyValValue, Result, Val,8};9use gcmodule::Trace;3use gcmodule::Trace;10use jrsonnet_interner::IStr;4use jrsonnet_interner::IStr;11pub use jrsonnet_macros::builtin;5pub use jrsonnet_macros::builtin;12use jrsonnet_parser::{ArgsDesc, ExprLocation, LocExpr, ParamsDesc};6use jrsonnet_parser::{ArgsDesc, ExprLocation, LocExpr, ParamsDesc};713use std::{borrow::Cow, collections::HashMap, convert::TryFrom};8use crate::{9 error::{Error::*, LocError},10 evaluate, evaluate_named,11 gc::TraceBox,12 throw,13 typed::Typed,14 val::LazyValValue,15 Context, FutureWrapper, GcHashMap, LazyVal, Result, Val,16};141715#[derive(Clone, Copy)]18#[derive(Clone, Copy)]crates/jrsonnet-evaluator/src/import.rsdiffbeforeafterboth1use crate::{1use std::{2 error::{Error::*, Result},2 any::Any,3 convert::TryFrom,4 fs,5 io::Read,6 path::{Path, PathBuf},3 throw,7 rc::Rc,4};8};95use fs::File;10use fs::File;6use jrsonnet_interner::IStr;11use jrsonnet_interner::IStr;7use std::fs;128use std::{13use crate::{9 any::Any,10 path::{Path, PathBuf},14 error::{Error::*, Result},11 rc::Rc,15 throw,12};16};13use std::{convert::TryFrom, io::Read};141715/// Implements file resolution logic for `import` and `importStr`18/// Implements file resolution logic for `import` and `importStr`16pub trait ImportResolver {19pub trait ImportResolver {crates/jrsonnet-evaluator/src/integrations/serde.rsdiffbeforeafterboth1use crate::{2 error::{Error::*, LocError, Result},3 throw, ObjValueBuilder, Val,4};5use serde_json::{Map, Number, Value};6use std::convert::{TryFrom, TryInto};1use std::convert::{TryFrom, TryInto};23use serde_json::{Map, Number, Value};45use crate::{6 error::{Error::*, LocError, Result},7 throw, ObjValueBuilder, Val,8};798impl TryFrom<&Val> for Value {10impl TryFrom<&Val> for Value {9 type Error = LocError;11 type Error = LocError;crates/jrsonnet-evaluator/src/lib.rsdiffbeforeafterboth13pub mod error;13pub mod error;14mod evaluate;14mod evaluate;15pub mod function;15pub mod function;16pub mod gc;16mod import;17mod import;17mod integrations;18mod integrations;18mod map;19mod map;19pub mod native;20pub mod native;20mod obj;21mod obj;21pub mod trace;22pub mod trace;22pub mod typed;23pub mod typed;23mod val;24pub mod val;242525pub use jrsonnet_parser as parser;26use std::{27 cell::{Ref, RefCell, RefMut},28 collections::HashMap,29 fmt::Debug,30 path::{Path, PathBuf},31 rc::Rc,32};263327pub use ctx::*;34pub use ctx::*;28pub use dynamic::*;35pub use dynamic::*;33use gcmodule::{Cc, Trace, Weak};40use gcmodule::{Cc, Trace, Weak};34pub use import::*;41pub use import::*;35pub use jrsonnet_interner::IStr;42pub use jrsonnet_interner::IStr;43pub use jrsonnet_parser as parser;36use jrsonnet_parser::*;44use jrsonnet_parser::*;37pub use obj::*;45pub use obj::*;38use std::{39 cell::{Ref, RefCell, RefMut},40 collections::HashMap,41 fmt::Debug,42 path::{Path, PathBuf},43 rc::Rc,44};45use trace::{location_to_offset, offset_to_location, CodeLocation, CompactFormat, TraceFormat};46use trace::{location_to_offset, offset_to_location, CodeLocation, CompactFormat, TraceFormat};46pub use val::*;47pub use val::{LazyVal, ManifestFormat, Val};47pub mod gc;484849pub trait Bindable: Trace + 'static {49pub trait Bindable: Trace + 'static {50 fn bind(&self, this: Option<ObjValue>, super_obj: Option<ObjValue>) -> Result<LazyVal>;50 fn bind(&self, this: Option<ObjValue>, super_obj: Option<ObjValue>) -> Result<LazyVal>;693693694#[cfg(test)]694#[cfg(test)]695pub mod tests {695pub mod tests {696 use super::Val;697 use crate::{696 use std::{698 error::Error::*, function::BuiltinParam, gc::TraceBox, native::NativeCallbackHandler,697 path::{Path, PathBuf},699 primitive_equals, EvaluationState,698 rc::Rc,700 };699 };700701 use gcmodule::{Cc, Trace};701 use gcmodule::{Cc, Trace};702 use jrsonnet_parser::*;702 use jrsonnet_parser::*;703704 use super::Val;703 use std::{705 use crate::{706 error::Error::*,704 path::{Path, PathBuf},707 function::{BuiltinParam, CallLocation},705 rc::Rc,708 gc::TraceBox,709 native::NativeCallbackHandler,710 val::primitive_equals,711 EvaluationState,706 };712 };707713708 #[test]714 #[test]712 state.run_in_state(|| {718 state.run_in_state(|| {713 state719 state714 .push(720 .push(715 Some(&ExprLocation(PathBuf::from("test1.jsonnet").into(), 10, 20)),721 CallLocation::new(&ExprLocation(PathBuf::from("test1.jsonnet").into(), 10, 20)),716 || "outer".to_owned(),722 || "outer".to_owned(),717 || {723 || {718 state.push(724 state.push(719 Some(&ExprLocation(PathBuf::from("test2.jsonnet").into(), 30, 40)),725 CallLocation::new(&ExprLocation(726 PathBuf::from("test2.jsonnet").into(),727 30,728 40,1290 }1300 }129113011292 mod derive_typed {1302 mod derive_typed {1303 use std::path::PathBuf;13041293 use crate::{typed::Typed, EvaluationState};1305 use crate::{typed::Typed, EvaluationState};1294 use std::path::PathBuf;129513061296 #[derive(Typed, PartialEq, Debug)]1307 #[derive(PartialEq, Debug, Typed)]1297 struct MyTyped {1308 struct MyTyped {1298 a: u32,1309 a: u32,1299 #[typed(rename = "b")]1310 #[typed(rename = "b")]crates/jrsonnet-evaluator/src/native.rsdiffbeforeafterboth1#![allow(clippy::type_complexity)]1#![allow(clippy::type_complexity)]223use crate::function::{parse_builtin_call, ArgsLike, Builtin, BuiltinParam, CallLocation};3use std::{path::Path, rc::Rc};44use crate::gc::TraceBox;5use gcmodule::Trace;5use crate::Context;66use crate::{error::Result, Val};7use crate::{7use gcmodule::Trace;8 error::Result,8use std::path::Path;9 function::{parse_builtin_call, ArgsLike, Builtin, BuiltinParam, CallLocation},9use std::rc::Rc;10 gc::TraceBox,11 Context, Val,12};101311#[derive(Trace)]14#[derive(Trace)]crates/jrsonnet-evaluator/src/obj.rsdiffbeforeafterboth1use crate::error::LocError;1use std::{2use crate::function::CallLocation;2 cell::RefCell,3use crate::gc::{GcHashMap, GcHashSet, TraceBox};4use crate::operator::evaluate_add_op;3 fmt::Debug,5use crate::push_frame;6use crate::{4 hash::{Hash, Hasher},7 cc_ptr_eq, error::Error::*, throw, weak_ptr_eq, weak_raw, Bindable, LazyBinding, LazyVal,8 Result, Val,9};5};610use gcmodule::{Cc, Trace, Weak};7use gcmodule::{Cc, Trace, Weak};11use jrsonnet_interner::IStr;8use jrsonnet_interner::IStr;12use jrsonnet_parser::{ExprLocation, Visibility};9use jrsonnet_parser::{ExprLocation, Visibility};13use rustc_hash::FxHashMap;10use rustc_hash::FxHashMap;1114use std::cell::RefCell;12use crate::{13 cc_ptr_eq,15use std::fmt::Debug;14 error::{Error::*, LocError},16use std::hash::{Hash, Hasher};15 function::CallLocation,16 gc::{GcHashMap, GcHashSet, TraceBox},17 operator::evaluate_add_op,18 push_frame, throw, weak_ptr_eq, weak_raw, Bindable, LazyBinding, LazyVal, Result, Val,19};172018#[derive(Debug, Trace)]21#[derive(Debug, Trace)]19pub struct ObjMember {22pub struct ObjMember {crates/jrsonnet-evaluator/src/trace/mod.rsdiffbeforeafterboth1mod location;1mod location;223use crate::{error::Error, EvaluationState, LocError};4pub use location::*;5use std::path::{Path, PathBuf};3use std::path::{Path, PathBuf};45pub use location::*;67use crate::{error::Error, EvaluationState, LocError};687/// The way paths should be displayed9/// The way paths should be displayed8pub enum PathResolver {10pub enum PathResolver {crates/jrsonnet-evaluator/src/typed/mod.rsdiffbeforeafterboth3mod conversions;3mod conversions;4pub use conversions::*;4pub use conversions::*;56use crate::{7 error::{Error, LocError, Result},8 push_description_frame, Val,9};10use gcmodule::Trace;5use gcmodule::Trace;11pub use jrsonnet_types::{ComplexValType, ValType};6pub use jrsonnet_types::{ComplexValType, ValType};12use thiserror::Error;7use thiserror::Error;89use crate::{10 error::{Error, LocError, Result},11 push_description_frame, Val,12};131314#[derive(Debug, Error, Clone, Trace)]14#[derive(Debug, Error, Clone, Trace)]15pub enum TypeError {15pub enum TypeError {crates/jrsonnet-evaluator/src/val.rsdiffbeforeafterboth1use std::{cell::RefCell, fmt::Debug, rc::Rc};23use gcmodule::{Cc, Trace};4use jrsonnet_interner::IStr;5use jrsonnet_parser::{LocExpr, ParamsDesc};6use jrsonnet_types::ValType;71use crate::{8use crate::{2 builtin::manifest::{9 builtin::manifest::{12 gc::TraceBox,19 gc::TraceBox,13 throw, Context, ObjValue, Result,20 throw, Context, ObjValue, Result,14};21};15use gcmodule::{Cc, Trace};16use jrsonnet_interner::IStr;17use jrsonnet_parser::{LocExpr, ParamsDesc};18use jrsonnet_types::ValType;19use std::{cell::RefCell, fmt::Debug, rc::Rc};202221pub trait LazyValValue: Trace {23pub trait LazyValValue: Trace {22 fn get(self: Box<Self>) -> Result<Val>;24 fn get(self: Box<Self>) -> Result<Val>;crates/jrsonnet-interner/src/lib.rsdiffbeforeafterboth1use gcmodule::Trace;2use rustc_hash::FxHashMap;3use serde::{Deserialize, Serialize};4use std::{1use std::{5 borrow::Cow,2 borrow::Cow,6 cell::RefCell,3 cell::RefCell,12 str::Utf8Error,9 str::Utf8Error,13};10};1112use gcmodule::Trace;13use rustc_hash::FxHashMap;14use serde::{Deserialize, Serialize};141515#[derive(Clone, PartialOrd, Ord, Eq)]16#[derive(Clone, PartialOrd, Ord, Eq)]16pub struct IStr(Rc<str>);17pub struct IStr(Rc<str>);crates/jrsonnet-parser/src/expr.rsdiffbeforeafterboth1use std::{2 fmt::{Debug, Display},3 ops::Deref,4 path::{Path, PathBuf},5 rc::Rc,6};71use gcmodule::Trace;8use gcmodule::Trace;2use jrsonnet_interner::IStr;9use jrsonnet_interner::IStr;3#[cfg(feature = "serde")]10#[cfg(feature = "serde")]4use serde::{Deserialize, Serialize};11use serde::{Deserialize, Serialize};5use std::{6 fmt::{Debug, Display},7 ops::Deref,8 path::{Path, PathBuf},9 rc::Rc,10};111212#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]13#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]13#[derive(Debug, PartialEq, Trace)]14#[derive(Debug, PartialEq, Trace)]crates/jrsonnet-parser/src/lib.rsdiffbeforeafterboth1#![allow(clippy::redundant_closure_call)]1#![allow(clippy::redundant_closure_call)]223use peg::parser;4use std::{3use std::{5 path::{Path, PathBuf},4 path::{Path, PathBuf},6 rc::Rc,5 rc::Rc,7};6};78use peg::parser;8mod expr;9mod expr;9pub use expr::*;10pub use expr::*;10pub use jrsonnet_interner::IStr;11pub use jrsonnet_interner::IStr;317318318#[cfg(test)]319#[cfg(test)]319pub mod tests {320pub mod tests {321 use std::path::PathBuf;322323 use BinaryOpType::*;324320 use super::{expr::*, parse};325 use super::{expr::*, parse};321 use crate::ParserSettings;326 use crate::ParserSettings;322 use std::path::PathBuf;323 use BinaryOpType::*;324327325 macro_rules! parse {328 macro_rules! parse {326 ($s:expr) => {329 ($s:expr) => {crates/jrsonnet-types/src/lib.rsdiffbeforeafterboth1#![allow(clippy::redundant_closure_call)]1#![allow(clippy::redundant_closure_call)]223use gcmodule::Trace;4use std::fmt::Display;3use std::fmt::Display;45use gcmodule::Trace;566#[macro_export]7#[macro_export]7macro_rules! ty {8macro_rules! ty {