pub trait TreeColumns<T: TreeModel> {
// Required methods
fn label_constraint(&self) -> Constraint;
fn other_constraints(&self) -> &[Constraint];
fn cells<'a>(&'a self, model: &'a T, id: T::Id) -> SmallVec<[Cell<'a>; 8]>;
// Provided methods
fn header(&self) -> Option<Row<'_>> { ... }
fn constraints_for_area(&self, _area: Rect) -> SmallVec<[Constraint; 8]> { ... }
}