Crate ssz_types[−][src]
Expand description
Provides types with unique properties required for SSZ serialization and Merklization:
FixedVector
: A heap-allocated list with a size that is fixed at compile time.VariableList
: A heap-allocated list that cannot grow past a type-level maximum length.BitList
: A heap-allocated bitfield that with a type-level maximum length.BitVector
: A heap-allocated bitfield that with a type-level fixed_ length.
These structs are required as SSZ serialization and Merklization rely upon type-level lengths for padding and verification.
Adheres to the Ethereum 2.0 SSZ specification at v0.12.1.
Example
use ssz_types::*; pub struct Example { bit_vector: BitVector<typenum::U8>, bit_list: BitList<typenum::U8>, variable_list: VariableList<u64, typenum::U8>, fixed_vector: FixedVector<u64, typenum::U8>, } let mut example = Example { bit_vector: Bitfield::new(), bit_list: Bitfield::with_capacity(4).unwrap(), variable_list: <_>::from(vec![0, 1]), fixed_vector: <_>::from(vec![2, 3]), }; assert_eq!(example.bit_vector.len(), 8); assert_eq!(example.bit_list.len(), 4); assert_eq!(&example.variable_list[..], &[0, 1]); assert_eq!(&example.fixed_vector[..], &[2, 3, 0, 0, 0, 0, 0, 0]);
Re-exports
pub use typenum;
Modules
Structs
A heap-allocated, ordered, fixed-length, collection of bool
values. Use of
BitList
or BitVector
type aliases is preferred
over direct use of this struct.
Emulates a SSZ Vector
(distinct from a Rust Vec
).
Emulates a SSZ List
.
Enums
Returned when an item encounters an error.