| // `cargo test --benches` and `#[feature(test)]` work only in nightly |
| #![cfg(rustc_nightly)] |
| #![feature(test)] |
| |
| extern crate test; |
| |
| use protobuf::well_known_types::struct_::value; |
| use protobuf::well_known_types::struct_::Struct; |
| use protobuf::well_known_types::struct_::Value; |
| use protobuf::Message; |
| use test::Bencher; |
| |
| #[bench] |
| fn write_to_bytes(b: &mut Bencher) { |
| let mut value = Value::new(); |
| value.kind = Some(value::Kind::NumberValue(10.0)); |
| let mut value2 = Value::new(); |
| value2.kind = Some(value::Kind::BoolValue(true)); |
| let mut s = Struct::new(); |
| s.fields.insert("foo".to_owned(), value); |
| s.fields.insert("bar".to_owned(), value2); |
| b.iter(|| s.write_to_bytes()); |
| } |