pub trait AreaModel {
// Required methods
fn after_gaps(&self, margin: &Gaps) -> Area;
fn move_with_offsets(&mut self, offset_x: &Length, offset_y: &Length);
fn align_content(
&mut self,
available_area: &Area,
contents_area: &Size2D,
alignment: &Alignment,
direction: &DirectionMode,
alignment_direction: AlignmentDirection
);
fn align_position(
&mut self,
initial_available_area: &Area,
inner_sizes: &Size2D,
alignment: &Alignment,
direction: &DirectionMode,
alignment_direction: AlignmentDirection,
siblings_len: usize,
child_position: usize
);
fn adjust_size(&mut self, node: &Node);
}