pub trait Frame { // Required methods fn ncols(&self) -> usize; fn column(&self, i: usize) -> &NamedColumn; // Provided method fn columns(&self) -> FrameColIter<'_, Self> { ... } }