3个不稳定版本
| 0.2.1 | 2021年11月23日 | 
|---|---|
| 0.2.0 | 2021年8月24日 | 
| 0.1.0 | 2021年7月29日 | 
1599 在 Rust模式 中排名
每月下载量 4,249
用于  2 crates
85KB
 2K  SLoC
提供SSZ序列化和Merklization所需具有独特属性的类型
- FixedVector: 编译时大小固定的堆分配列表。
- VariableList: 无法超过类型级别最大长度的堆分配列表。
- BitList: 具有类型级别 最大 长度的堆分配位字段。
- BitVector: 具有类型级别 固定 长度的堆分配位字段。
这些结构体是必需的,因为SSZ序列化和Merklization依赖于类型级别的长度来进行填充和验证。
遵循Ethereum 2.0 v0.12.1的SSZ规范。
示例
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]);
依赖项
~6.5–9MB
~263K SLoC