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