use crate::value::Unit;
#[derive(Clone, Eq, Ord, PartialEq, PartialOrd)]
pub enum GridAuto {
Auto,
Fixed(Unit),
Inherit,
Initial,
MaxContent,
MinContent,
MinMax(Unit, Unit),
Plain(Vec<Unit>),
Unset,
}
impl Default for GridAuto {
fn default() -> GridAuto {
GridAuto::Unset
}
}
impl ToString for GridAuto {
fn to_string(&self) -> String {
match self {
GridAuto::Auto => "auto".to_string(),
GridAuto::MaxContent => "max-content".to_string(),
GridAuto::MinContent => "min-content".to_string(),
GridAuto::MinMax(c, r) => format!("minmax({}, {})", c.to_string(), r.to_string()),
GridAuto::Fixed(u) => u.to_string(),
GridAuto::Inherit => "inherit".to_string(),
GridAuto::Initial => "initial".to_string(),
GridAuto::Unset => "unset".to_string(),
GridAuto::Plain(x) => {
let mut s = "".to_string();
for i in x {
s += &i.to_string();
s += " ";
}
s
}
}
}
}
#[derive(Clone, Copy, Eq, Ord, PartialEq, PartialOrd)]
pub enum GridFlow {
Column,
Row,
Dense,
ColumnDense,
RowDense,
Inherit,
Initial,
Unset,
}
impl Default for GridFlow {
fn default() -> GridFlow {
GridFlow::Unset
}
}
impl ToString for GridFlow {
fn to_string(&self) -> String {
match self {
GridFlow::Column => "column",
GridFlow::ColumnDense => "column dense",
GridFlow::Dense => "dense",
GridFlow::Inherit => "inherit",
GridFlow::Initial => "initial",
GridFlow::Row => "row",
GridFlow::RowDense => "row dense",
GridFlow::Unset => "unset",
}
.to_string()
}
}
#[derive(Clone, Eq, Ord, PartialEq, PartialOrd)]
pub enum GridTemplate {
FitContent(Unit),
Inherit,
Initial,
MinMax(Unit, Unit),
None,
Plain(Vec<Unit>),
Repeat(i32, Unit),
SubGrid,
Unset,
}
impl Default for GridTemplate {
fn default() -> GridTemplate {
GridTemplate::Repeat(1, Unit::Fr(1.0))
}
}
impl ToString for GridTemplate {
fn to_string(&self) -> String {
match self {
GridTemplate::FitContent(u) => format!("fit-content({})", u.to_string()),
GridTemplate::Inherit => "inherit".to_string(),
GridTemplate::Initial => "initial".to_string(),
GridTemplate::MinMax(i, a) => format!("minmax({}, {})", i.to_string(), a.to_string()),
GridTemplate::None => "none".to_string(),
GridTemplate::Plain(x) => {
let mut s = "".to_string();
for i in x {
s += &i.to_string();
s += " ";
}
s
}
GridTemplate::Repeat(n, u) => format!("({}, {})", n, u.to_string()),
GridTemplate::SubGrid => "subgrid".to_string(),
GridTemplate::Unset => "unit".to_string(),
}
}
}