// This file is part of ICU4X. For terms of use, please see the file // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). mod common; use common::*; use criterion::black_box; use criterion::criterion_group; use criterion::criterion_main; use criterion::Bencher; use criterion::Criterion; use tinystr::TinyAsciiStr; fn deserialize(c: &mut Criterion) { macro_rules! cfs { ($r:ty, $inputs:expr) => { |b: &mut Bencher| { let serialized: Vec> = $inputs .iter() .map(|s| postcard::to_stdvec(&s.parse::<$r>().unwrap()).unwrap()) .collect(); b.iter(|| { for bytes in &serialized { let _: Result<$r, _> = black_box(postcard::from_bytes(bytes)); } }) } }; } bench_block!(c, "deserialize", cfs); } criterion_group!(benches, deserialize,); criterion_main!(benches);