#[macro_use]
extern crate easybuffers;
extern crate time;
use easybuffers::helper::{ Table, HyperHelper };
#[derive(PartialEq,Clone,Default,Debug)]
pub struct TestMessage {
field_0: Option<String>,
field_1: Option<String>, field_2: Option<bool>, field_3: bool, field_4: String, field_5: Option<bool>, field_6: Option<Vec<bool>>, field_7: Option<Vec<String>>, field_8: bool, field_9: Option<String>, field_10: Option<Vec<String>>,
field_11: Option<String>,
field_12: Option<String>, field_13: Option<bool>, field_14: bool, field_15: Option<bool>, field_16: Vec<bool>, field_17: Vec<String>, field_18: bool, field_19: Option<String>, field_20: Option<Vec<String>>
}
realize_table! {
21, TestMessage {
field_0: Option,
field_1: Option, field_2: Option, field_3: bool, field_4: String, field_5: Option, field_6: Option, field_7: Option, field_8: bool, field_9: Option, field_10: Option,
field_11: Option,
field_12: Option, field_13: Option, field_14: bool, field_15: Option, field_16: Vec, field_17: Vec, field_18: bool, field_19: Option, field_20: Option
}
}
fn main() {
let helper = HyperHelper::new(3);
let mut bytes = Vec::with_capacity(1024);
let test_instance:TestMessage = Default::default();
let start = time::get_time();
for i in 0..1000000 {
let mut instance:TestMessage = Default::default();
instance.serialize(&mut bytes, 0, 0, &helper);
HyperHelper::push_pivot(21 ,&mut bytes, &helper);
bytes.clear();
}
let end = time::get_time();
println!("序列化 {:?}", (end - start)/1000000);
let start = time::get_time();
for i in 0..1000000 {
let mut data = vec![255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 11, 0, 0, 16, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 21, 255, 0, 255, 0, 255, 0, 255, 0, 0, 0, 0, 255, 0, 0, 0, 0, 255, 0, 67];
let pivot = data.pop().unwrap() as usize;
let de_instance = TestMessage::deserialize(&data, pivot, pivot, 0, &helper);
}
let end = time::get_time();
println!("反序列化1000000 {:?}", (end - start)/1000000);
}