difftreelog
feat optional bigint preservation
in: master
1 file changed
crates/jrsonnet-evaluator/src/manifest.rsdiffbeforeafterboth67 key_val_sep: &'s str,67 key_val_sep: &'s str,68 #[cfg(feature = "exp-preserve-order")]68 #[cfg(feature = "exp-preserve-order")]69 preserve_order: bool,69 preserve_order: bool,70 #[cfg(feature = "exp-bigint")]71 preserve_bigints: bool,70}72}717372impl<'s> JsonFormat<'s> {74impl<'s> JsonFormat<'s> {79 key_val_sep: ":",81 key_val_sep: ":",80 #[cfg(feature = "exp-preserve-order")]82 #[cfg(feature = "exp-preserve-order")]81 preserve_order,83 preserve_order,84 #[cfg(feature = "exp-bigint")]85 preserve_bigints: false,82 }86 }83 }87 }84 // Same format as std.toString88 // Same format as std.toString90 key_val_sep: ": ",94 key_val_sep: ": ",91 #[cfg(feature = "exp-preserve-order")]95 #[cfg(feature = "exp-preserve-order")]92 preserve_order: false,96 preserve_order: false,97 #[cfg(feature = "exp-bigint")]98 preserve_bigints: false,93 }99 }94 }100 }95 pub fn std_to_json(101 pub fn std_to_json(105 key_val_sep,111 key_val_sep,106 #[cfg(feature = "exp-preserve-order")]112 #[cfg(feature = "exp-preserve-order")]107 preserve_order,113 preserve_order,114 #[cfg(feature = "exp-bigint")]115 preserve_bigints: false,108 }116 }109 }117 }110 // Same format as CLI manifestification118 // Same format as CLI manifestification125 key_val_sep: ": ",133 key_val_sep: ": ",126 #[cfg(feature = "exp-preserve-order")]134 #[cfg(feature = "exp-preserve-order")]127 preserve_order,135 preserve_order,136 #[cfg(feature = "exp-bigint")]137 preserve_bigints: false,128 }138 }129 }139 }130}140}137 key_val_sep: ": ",147 key_val_sep: ": ",138 #[cfg(feature = "exp-preserve-order")]148 #[cfg(feature = "exp-preserve-order")]139 preserve_order: false,149 preserve_order: false,150 #[cfg(feature = "exp-bigint")]151 preserve_bigints: false,140 }152 }141 }153 }142}154}165 Val::Str(s) => escape_string_json_buf(&s.clone().into_flat(), buf),177 Val::Str(s) => escape_string_json_buf(&s.clone().into_flat(), buf),166 Val::Num(n) => write!(buf, "{n}").unwrap(),178 Val::Num(n) => write!(buf, "{n}").unwrap(),167 #[cfg(feature = "exp-bigint")]179 #[cfg(feature = "exp-bigint")]168 Val::BigInt(n) => write!(buf, "{n}").unwrap(),180 Val::BigInt(n) => if options.preserve_bigints {181 write!(buf, "{n}").unwrap()182 } else {183 write!(buf, "{:?}", n.to_string()).unwrap()184 },169 Val::Arr(items) => {185 Val::Arr(items) => {170 buf.push('[');186 buf.push('[');171 if !items.is_empty() {187 if !items.is_empty() {