use crate::{
Alignments, Colors, FlexBasis, FlexDirection, GridAuto, GridFlow, GridTemplate,
MultiColumnLineStyle, Tree, Unit,
};
pub struct Container {
pub child: Tree,
pub style: ContainerStyle,
}
#[derive(Default)]
pub struct ContainerStyle {
pub align: Alignments,
pub height: Unit,
pub width: Unit,
pub padding: Unit,
pub margin: Unit,
pub background_color: Colors,
}
pub struct List {
pub children: Vec<Tree>,
}
pub struct SizedBox {
pub child: Tree,
pub style: SizedBoxStyle,
}
pub struct SizedBoxStyle {
pub height: Unit,
pub width: Unit,
}
pub struct Align {
pub child: Tree,
pub style: AlignStyle,
}
pub struct AlignStyle {
pub align: Alignments,
}
pub struct Center {
pub child: Tree,
}
pub struct Col {
pub children: Vec<Tree>,
}
pub struct Flex {
pub child: Tree,
pub style: FlexStyle,
}
pub struct FlexStyle {
pub align: Alignments,
pub basis: FlexBasis,
pub direction: FlexDirection,
pub grow: Unit,
pub order: Unit,
pub wrap: bool,
}
pub struct Row {
pub children: Vec<Tree>,
}
pub struct Grid {
pub children: Vec<Tree>,
pub style: GridStyle,
}
pub struct GridStyle {
pub col: GridAuto,
pub col_gap: Unit,
pub flow: GridFlow,
pub row: GridAuto,
pub row_gap: Unit,
pub template_col: GridTemplate,
pub template_row: GridTemplate,
}
pub struct MultiColumn {
pub children: Vec<Tree>,
pub style: MultiColumnStyle,
}
pub struct MultiColumnStyle {
pub color: Colors,
pub count: Unit,
pub gap: Unit,
pub style: MultiColumnLineStyle,
}