Skip to content

Commit 4023ba1

Browse files
authored
remove SmallVec and LazyIndexMap from json value (#184)
1 parent 11ef20f commit 4023ba1

File tree

6 files changed

+105
-389
lines changed

6 files changed

+105
-389
lines changed

crates/fuzz/fuzz_targets/compare_to_serde.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#![no_main]
22
#![allow(clippy::dbg_macro)]
33

4+
use indexmap::IndexMap;
45
use jiter::{JsonError as JiterError, JsonErrorType as JiterJsonErrorType, JsonValue as JiterValue};
56
use serde_json::{Error as SerdeError, Number as SerdeNumber, Value as SerdeValue};
67

@@ -27,10 +28,12 @@ pub fn values_equal(jiter_value: &JiterValue, serde_value: &SerdeValue) -> bool
2728
true
2829
}
2930
(JiterValue::Object(o1), SerdeValue::Object(o2)) => {
31+
// deduplicate, as `jiter` doesn't do this during parsing
32+
let o1: IndexMap<_, _> = o1.iter().map(|(k, v)| (k, v)).collect();
3033
if o1.len() != o2.len() {
3134
return false;
3235
}
33-
for (k1, v1) in o1.iter_unique() {
36+
for (k1, v1) in o1 {
3437
if let Some(v2) = o2.get::<str>(k1.as_ref()) {
3538
if !values_equal(v1, v2) {
3639
return false;

crates/jiter/benches/main.rs

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use std::hint::black_box;
44
use std::fs::File;
55
use std::io::Read;
66

7-
use jiter::{Jiter, JsonValue, LazyIndexMap, PartialMode, Peek};
7+
use jiter::{Jiter, JsonValue, PartialMode, Peek};
88
use serde_json::Value;
99

1010
fn read_file(path: &str) -> String {
@@ -276,33 +276,6 @@ fn x100_serde_iter(bench: &mut Bencher) {
276276
serde_str("./benches/x100.json", bench);
277277
}
278278

279-
fn lazy_map_lookup(length: i64, bench: &mut Bencher) {
280-
bench.iter(|| {
281-
let mut map: LazyIndexMap<String, JsonValue> = LazyIndexMap::new();
282-
for i in 0..length {
283-
let key = i.to_string();
284-
map.insert(key, JsonValue::Int(i));
285-
}
286-
287-
// best case we get the next value each time
288-
for i in 0..length {
289-
black_box(map.get(&i.to_string()).unwrap());
290-
}
291-
})
292-
}
293-
294-
fn lazy_map_lookup_1_10(bench: &mut Bencher) {
295-
lazy_map_lookup(10, bench);
296-
}
297-
298-
fn lazy_map_lookup_2_20(bench: &mut Bencher) {
299-
lazy_map_lookup(20, bench);
300-
}
301-
302-
fn lazy_map_lookup_3_50(bench: &mut Bencher) {
303-
lazy_map_lookup(50, bench);
304-
}
305-
306279
benchmark_group!(
307280
benches,
308281
big_jiter_iter,
@@ -360,9 +333,6 @@ benchmark_group!(
360333
true_object_jiter_skip,
361334
true_object_jiter_value,
362335
true_object_serde_value,
363-
lazy_map_lookup_1_10,
364-
lazy_map_lookup_2_20,
365-
lazy_map_lookup_3_50,
366336
short_numbers_jiter_iter,
367337
short_numbers_jiter_skip,
368338
short_numbers_jiter_value,

crates/jiter/src/lazy_index_map.rs

Lines changed: 0 additions & 174 deletions
This file was deleted.

crates/jiter/src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@
150150
151151
mod errors;
152152
mod jiter;
153-
mod lazy_index_map;
154153
mod number_decoder;
155154
mod parse;
156155
#[cfg(feature = "python")]
@@ -166,7 +165,6 @@ mod value;
166165

167166
pub use errors::{JiterError, JiterErrorType, JsonError, JsonErrorType, JsonResult, JsonType, LinePosition};
168167
pub use jiter::{Jiter, JiterResult};
169-
pub use lazy_index_map::LazyIndexMap;
170168
pub use number_decoder::{NumberAny, NumberInt};
171169
pub use parse::Peek;
172170
pub use value::{JsonArray, JsonObject, JsonValue};

0 commit comments

Comments
 (0)