• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // `cargo test --benches` and `#[feature(test)]` work only in nightly
2 #![cfg(rustc_nightly)]
3 #![feature(test)]
4 
5 extern crate test;
6 
7 use protobuf::well_known_types::struct_::value;
8 use protobuf::well_known_types::struct_::Struct;
9 use protobuf::well_known_types::struct_::Value;
10 use protobuf::Message;
11 use test::Bencher;
12 
13 #[bench]
write_to_bytes(b: &mut Bencher)14 fn write_to_bytes(b: &mut Bencher) {
15     let mut value = Value::new();
16     value.kind = Some(value::Kind::NumberValue(10.0));
17     let mut value2 = Value::new();
18     value2.kind = Some(value::Kind::BoolValue(true));
19     let mut s = Struct::new();
20     s.fields.insert("foo".to_owned(), value);
21     s.fields.insert("bar".to_owned(), value2);
22     b.iter(|| s.write_to_bytes());
23 }
24