Update SszEncoder

This commit is contained in:
Paul Hauner
2019-05-06 09:26:58 +10:00
parent aeb17c73f6
commit 480c5ff160
7 changed files with 104 additions and 37 deletions

View File

@@ -0,0 +1,32 @@
//! Encode and decode a list many times.
//!
//! Useful for `cargo flamegraph`.
use ssz::{Decodable, Encodable};
use ssz_derive::{Decode, Encode};
#[derive(Clone, Copy, Encode, Decode)]
pub struct FixedLen {
a: u64,
b: u64,
c: u64,
d: u64,
}
fn main() {
let fixed_len = FixedLen {
a: 42,
b: 42,
c: 42,
d: 42,
};
let vec: Vec<FixedLen> = vec![fixed_len; 8196];
let output: Vec<Vec<u64>> = (0..40_000)
.into_iter()
.map(|_| Vec::from_ssz_bytes(&vec.as_ssz_bytes()).unwrap())
.collect();
println!("{}", output.len());
}

View File

@@ -1,4 +1,4 @@
use ssz::{Decodable, DecodeError, Encodable, SszDecoderBuilder, SszEncoder, SszStream};
use ssz::{Decodable, DecodeError, Encodable, SszDecoderBuilder, SszEncoder};
#[derive(Debug, PartialEq)]
pub struct Foo {
@@ -23,7 +23,7 @@ impl Encodable for Foo {
encoder.append(&self.b);
encoder.append(&self.c);
buf.append(&mut encoder.drain());
encoder.drain_onto(buf);
}
}