use crate::{
style::Style,
value::{
layouts::{GridAuto, GridFlow, GridTemplate},
Unit,
},
};
use elvis_core_support::Setter;
#[derive(Default, Clone, Setter)]
pub struct GridStyle {
pub col: Option<GridAuto>,
pub col_gap: Option<Unit>,
pub flow: Option<GridFlow>,
pub row: Option<GridAuto>,
pub row_gap: Option<Unit>,
pub template_col: Option<GridTemplate>,
pub template_row: Option<GridTemplate>,
}
impl Into<Vec<Style>> for GridStyle {
fn into(self) -> Vec<Style> {
let mut styles: Vec<Style> = vec![];
option_to_style! {
styles, [
(GridAutoColumns, self.col),
(GridAutoRows, self.row),
(GridAutoFlow, self.flow),
(GridColumnGap, self.col_gap),
(GridRowGap, self.row_gap),
(GridTemplateColumns, self.template_col),
(GridTemplateRows, self.template_row),
],
}
styles
}
}