mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-11-04 09:56:28 +00: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);
 |