Encode bitfield as list not vector

This commit is contained in:
Paul Hauner
2019-04-17 11:57:57 +10:00
parent ea8d5a3db9
commit 10a5d2657c
8 changed files with 37 additions and 15 deletions

View File

@@ -28,7 +28,7 @@ fn num_nodes(num_leaves: usize) -> usize {
}
#[macro_export]
macro_rules! impl_tree_hash_for_ssz_bytes {
macro_rules! tree_hash_ssz_encoding_as_vector {
($type: ident) => {
impl tree_hash::TreeHash for $type {
fn tree_hash_type() -> tree_hash::TreeHashType {
@@ -49,3 +49,25 @@ macro_rules! impl_tree_hash_for_ssz_bytes {
}
};
}
#[macro_export]
macro_rules! tree_hash_ssz_encoding_as_list {
($type: ident) => {
impl tree_hash::TreeHash for $type {
fn tree_hash_type() -> tree_hash::TreeHashType {
tree_hash::TreeHashType::List
}
fn tree_hash_packed_encoding(&self) -> Vec<u8> {
unreachable!("List should never be packed.")
}
fn tree_hash_packing_factor() -> usize {
unreachable!("List should never be packed.")
}
fn tree_hash_root(&self) -> Vec<u8> {
ssz::ssz_encode(self).tree_hash_root()
}
}
};
}