pub trait MerkleShape { // Required methods fn depth(&self) -> usize; fn leafs(&self) -> usize; fn size(&self) -> usize; // Provided method fn shape(&self) -> (usize, usize, usize) { ... } }