mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-16 09:58:55 +01:00
43 lines
1008 B
Rust
43 lines
1008 B
Rust
use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion};
|
|
use flatten_serde_json::flatten;
|
|
use serde_json::json;
|
|
|
|
pub fn flatten_simple(c: &mut Criterion) {
|
|
let mut input = json!({
|
|
"a": {
|
|
"b": "c",
|
|
"d": "e",
|
|
"f": "g"
|
|
}
|
|
});
|
|
let object = input.as_object_mut().unwrap();
|
|
|
|
c.bench_with_input(BenchmarkId::new("flatten", "simple"), &object, |b, input| {
|
|
b.iter(|| flatten(input))
|
|
});
|
|
}
|
|
|
|
pub fn flatten_complex(c: &mut Criterion) {
|
|
let mut input = json!({
|
|
"a": [
|
|
"b",
|
|
["c", "d"],
|
|
{ "e": ["f", "g"] },
|
|
[
|
|
{ "h": "i" },
|
|
{ "e": ["j", { "z": "y" }] },
|
|
],
|
|
["l"],
|
|
"m",
|
|
]
|
|
});
|
|
let object = input.as_object_mut().unwrap();
|
|
|
|
c.bench_with_input(BenchmarkId::new("flatten", "complex"), &object, |b, input| {
|
|
b.iter(|| flatten(input))
|
|
});
|
|
}
|
|
|
|
criterion_group!(benches, flatten_simple, flatten_complex);
|
|
criterion_main!(benches);
|