pub trait Alignable: HasSize + HasPosition {
// Provided methods
fn halign(
&mut self,
parent: &dyn HasSize,
halign: HorizontalAlign,
margin: usize,
) { ... }
fn valign(
&mut self,
parent: &dyn HasSize,
valign: VerticalAlign,
margin: usize,
) { ... }
fn align(
&mut self,
parent: &dyn HasSize,
halign: HorizontalAlign,
valign: VerticalAlign,
margin: (usize, usize),
) { ... }
}