///|
/// Flex direction.
pub(all) enum FlexDirection {
Row
RowReverse
Column
ColumnReverse
} derive(Eq, Debug)
///|
pub impl Show for FlexDirection with fn output(self, logger) {
match self {
Row => logger.write_string("Row")
RowReverse => logger.write_string("RowReverse")
Column => logger.write_string("Column")
ColumnReverse => logger.write_string("ColumnReverse")
}
}
///|
/// Alignment for justify-content, align-items and similar properties.
pub(all) enum Alignment {
Start
End
FlexStart
FlexEnd
Center
SpaceBetween
SpaceAround
SpaceEvenly
Stretch
Baseline
} derive(Eq, Debug)
///|
pub impl Show for Alignment with fn output(self, logger) {
match self {
Start => logger.write_string("Start")
End => logger.write_string("End")
FlexStart => logger.write_string("FlexStart")
FlexEnd => logger.write_string("FlexEnd")
Center => logger.write_string("Center")
SpaceBetween => logger.write_string("SpaceBetween")
SpaceAround => logger.write_string("SpaceAround")
SpaceEvenly => logger.write_string("SpaceEvenly")
Stretch => logger.write_string("Stretch")
Baseline => logger.write_string("Baseline")
}
}
///|
/// Align-self value.
pub(all) enum AlignSelf {
Auto
Start
End
Center
Stretch
Baseline
} derive(Eq, Debug)
///|
pub impl Show for AlignSelf with fn output(self, logger) {
match self {
Auto => logger.write_string("Auto")
Start => logger.write_string("Start")
End => logger.write_string("End")
Center => logger.write_string("Center")
Stretch => logger.write_string("Stretch")
Baseline => logger.write_string("Baseline")
}
}
///|
/// Generic 4-edge rect.
pub(all) struct Rect[T] {
left : T
right : T
top : T
bottom : T
}
///|
pub fn[T] Rect::new(left : T, right : T, top : T, bottom : T) -> Rect[T] {
{ left, right, top, bottom }
}
///|
/// CSS dimension value.
pub(all) enum Dimension {
Length(Double)
Percent(Double)
Auto
MinContent
MaxContent
FitContent(Double)
} derive(Eq, Debug)
///|
pub impl Show for Dimension with fn output(self, logger) {
match self {
Length(v) => {
logger.write_string("Length(")
Show::output(v, logger)
logger.write_string(")")
}
Percent(v) => {
logger.write_string("Percent(")
Show::output(v, logger)
logger.write_string(")")
}
Auto => logger.write_string("Auto")
MinContent => logger.write_string("MinContent")
MaxContent => logger.write_string("MaxContent")
FitContent(v) => {
logger.write_string("FitContent(")
Show::output(v, logger)
logger.write_string(")")
}
}
}