pub trait BlockContainer {
    type Data;
    type ShareableData;
    // Required method
    fn len(&self) -> usize;
    // Provided method
    fn is_empty(&self) -> bool { ... }
}pub trait BlockContainer {
    type Data;
    type ShareableData;
    // Required method
    fn len(&self) -> usize;
    // Provided method
    fn is_empty(&self) -> bool { ... }
}