use crate::value::Unit;
#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd)]
pub enum FlexPosition {
Center,
End,
Start,
}
impl ToString for FlexPosition {
fn to_string(&self) -> String {
match self {
FlexPosition::Center => "center",
FlexPosition::End => "flex-end",
FlexPosition::Start => "flex-start",
}
.into()
}
}
impl Default for FlexPosition {
fn default() -> FlexPosition {
FlexPosition::Center
}
}
#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd)]
pub enum Alignment {
BottomCenter,
BottomLeft,
BottomRight,
Center,
CenterLeft,
CenterRight,
TopCenter,
TopLeft,
TopRight,
}
impl Default for Alignment {
fn default() -> Alignment {
Alignment::Center
}
}
impl ToString for Alignment {
fn to_string(&self) -> String {
let (ai, jc) = match self {
Alignment::BottomCenter => ("flex-end", "center"),
Alignment::BottomLeft => ("flex-end", "flex-start"),
Alignment::BottomRight => ("flex-end", "flex-end"),
Alignment::Center => ("center", "center"),
Alignment::CenterLeft => ("center", "flex-start"),
Alignment::CenterRight => ("center", "flex-end"),
Alignment::TopCenter => ("flex-start", "center"),
Alignment::TopLeft => ("flex-start", "flex-start"),
Alignment::TopRight => ("flex-start", "flex-end"),
};
format!("align-items: {}; justify-content: {};", ai, jc)
}
}
#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd)]
pub enum FlexBasis {
Auto,
Inherit,
Fill,
MaxContent,
MinContent,
FitContent,
Number(Unit),
}
impl Default for FlexBasis {
fn default() -> FlexBasis {
FlexBasis::Inherit
}
}
impl ToString for FlexBasis {
fn to_string(&self) -> String {
match self {
FlexBasis::Auto => "auto".into(),
FlexBasis::Inherit => "inherit".into(),
FlexBasis::Fill => "fill".into(),
FlexBasis::FitContent => "fit-content".into(),
FlexBasis::MaxContent => "max-content".into(),
FlexBasis::MinContent => "min-content".into(),
FlexBasis::Number(u) => u.to_string(),
}
}
}
#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd)]
pub enum FlexDirection {
Column,
ColumnReverse,
Row,
RowReverse,
}
impl Default for FlexDirection {
fn default() -> FlexDirection {
FlexDirection::Row
}
}
impl ToString for FlexDirection {
fn to_string(&self) -> String {
match self {
FlexDirection::Column => "column",
FlexDirection::ColumnReverse => "column-reverse",
FlexDirection::Row => "row",
FlexDirection::RowReverse => "row-reverse",
}
.to_string()
}
}
#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd)]
pub enum FlexWrap {
Wrap,
NoWrap,
WrapReverse,
}
impl Default for FlexWrap {
fn default() -> FlexWrap {
FlexWrap::Wrap
}
}
impl ToString for FlexWrap {
fn to_string(&self) -> String {
match self {
FlexWrap::Wrap => "wrap",
FlexWrap::NoWrap => "no-wrap",
FlexWrap::WrapReverse => "wrap-reverse",
}
.to_string()
}
}