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)14fn 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