pub trait NodeSerializer<N, T> {
// Required methods
fn nodes(&mut self, nodes: Vec<Link<N>>) -> Result<N, NodeBuilderError>;
fn leaf(&mut self, entries: Vec<T>) -> Result<N, NodeBuilderError>;
fn serialize(
&mut self,
max_block_size: usize,
node: N,
) -> Result<Block, NodeBuilderError>;
// Provided method
fn item_size_hint(&self, item: &T) -> Option<usize> { ... }
}