extern crate chrono; extern crate criterion; use criterion::{black_box, criterion_group, criterion_main, Criterion}; use chrono::NaiveDateTime; fn bench_ser_naivedatetime_string(c: &mut Criterion) { c.bench_function("bench_ser_naivedatetime_string", |b| { let dt: NaiveDateTime = "2000-01-01T00:00:00".parse().unwrap(); b.iter(|| { black_box(serde_json::to_string(&dt)).unwrap(); }); }); } fn bench_ser_naivedatetime_writer(c: &mut Criterion) { c.bench_function("bench_ser_naivedatetime_writer", |b| { let mut s: Vec = Vec::with_capacity(20); let dt: NaiveDateTime = "2000-01-01T00:00:00".parse().unwrap(); b.iter(|| { let s = &mut s; s.clear(); black_box(serde_json::to_writer(s, &dt)).unwrap(); }); }); } criterion_group!(benches, bench_ser_naivedatetime_writer, bench_ser_naivedatetime_string); criterion_main!(benches);