Crate ssz[−][src]
Expand description
Provides encoding (serialization) and decoding (deserialization) in the SimpleSerialize (SSZ) format designed for use in Ethereum 2.0.
Adheres to the Ethereum 2.0 SSZ specification at v0.12.1.
Example
use ssz_derive::{Encode, Decode}; use ssz::{Decode, Encode}; #[derive(PartialEq, Debug, Encode, Decode)] struct Foo { a: u64, b: Vec<u16>, } fn ssz_encode_decode_example() { let foo = Foo { a: 42, b: vec![1, 3, 3, 7] }; let ssz_bytes: Vec<u8> = foo.as_ssz_bytes(); let decoded_foo = Foo::from_ssz_bytes(&ssz_bytes).unwrap(); assert_eq!(foo, decoded_foo); }
See examples/
for manual implementations of the Encode
and Decode
traits.
Structs
Decodes some slices of SSZ into object instances. Should be instantiated using
SszDecoderBuilder
.
Builds an SszDecoder
.
Allow for encoding an ordered series of distinct or indistinct objects as SSZ bytes.
Enums
Returned when SSZ decoding fails.
Constants
Traits
Provides SSZ decoding (de-serialization) via the from_ssz_bytes(&bytes)
method.
Provides SSZ encoding (serialization) via the as_ssz_bytes(&self)
method.
Functions
Decodes bytes
as if it were a list of variable-length items.
Convenience function to SSZ encode an object supporting ssz::Encode.