pub trait ArrayVisitorImpl<M: SerializeMetadata + DeserializeMetadata + Debug = EmptyMetadata> {
    // Required method
    fn _metadata(&self) -> M;
    // Provided methods
    fn _visit_buffers(&self, _visitor: &mut dyn ArrayBufferVisitor) { ... }
    fn _nbuffers(&self) -> usize { ... }
    fn _visit_children(&self, _visitor: &mut dyn ArrayChildVisitor) { ... }
    fn _nchildren(&self) -> usize { ... }
}