• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 extern crate chrono;
2 extern crate criterion;
3 
4 use criterion::{black_box, criterion_group, criterion_main, Criterion};
5 
6 use chrono::NaiveDateTime;
7 
bench_ser_naivedatetime_string(c: &mut Criterion)8 fn bench_ser_naivedatetime_string(c: &mut Criterion) {
9     c.bench_function("bench_ser_naivedatetime_string", |b| {
10         let dt: NaiveDateTime = "2000-01-01T00:00:00".parse().unwrap();
11         b.iter(|| {
12             black_box(serde_json::to_string(&dt)).unwrap();
13         });
14     });
15 }
16 
bench_ser_naivedatetime_writer(c: &mut Criterion)17 fn bench_ser_naivedatetime_writer(c: &mut Criterion) {
18     c.bench_function("bench_ser_naivedatetime_writer", |b| {
19         let mut s: Vec<u8> = Vec::with_capacity(20);
20         let dt: NaiveDateTime = "2000-01-01T00:00:00".parse().unwrap();
21         b.iter(|| {
22             let s = &mut s;
23             s.clear();
24             black_box(serde_json::to_writer(s, &dt)).unwrap();
25         });
26     });
27 }
28 
29 criterion_group!(benches, bench_ser_naivedatetime_writer, bench_ser_naivedatetime_string);
30 criterion_main!(benches);
31