git.delta.rocks / jrsonnet / refs/commits / 81c4597d19ef

difftreelog

feat optional bigint preservation

Yaroslav Bolyukin2023-08-12parent: #7986fee.patch.diff
in: master

1 file changed

modifiedcrates/jrsonnet-evaluator/src/manifest.rsdiffbeforeafterboth
67 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}
7173
72impl<'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.toString
90 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 manifestification
125 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() {