use crate::SSZError;
use alloc::vec::Vec;
use alloy_primitives::B256;
pub trait SimpleSerialize: Sized {
fn serialize(&self, buffer: &mut Vec<u8>) -> Result<usize, SSZError>;
}
pub trait SimpleDeserialize: Sized {
fn deserialize(data: &[u8]) -> Result<Self, SSZError>;
}
pub trait SszTypeInfo {
fn is_fixed_size() -> bool;
fn fixed_size() -> Option<usize>;
fn is_basic_type() -> bool {
false
}
}
pub trait Merkleize {
fn hash_tree_root(&self) -> Result<B256, SSZError>;
fn chunk_count() -> usize
where
Self: Sized,
{
1 }
}