macro_rules! grid_numbers {
($prefix:ident, |$s:ident, $n:ident| $apply:expr; $($value:literal),*) => {
paste::paste! {
$(
fn [<$prefix _ $value>](mut self) -> Self {
let $n = $value;
let $s = &mut self.style().extra_mut().grid;
$apply;
self
}
)*
}
};
}
macro_rules! grid_utilities {
() => {
grid_numbers!(grid_cols, |g, n| g.cols = Some(n); 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
grid_numbers!(grid_rows, |g, n| g.rows = Some(n); 1, 2, 3, 4, 5, 6);
grid_numbers!(col_span, |g, n| g.col_span = Some(n); 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
grid_numbers!(row_span, |g, n| g.row_span = Some(n); 1, 2, 3, 4, 5, 6);
grid_numbers!(col_start, |g, n| g.col_start = Some(n); 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);
grid_numbers!(row_start, |g, n| g.row_start = Some(n); 1, 2, 3, 4, 5, 6, 7);
setters! {
grid_flow_col => |s| s.extra_mut().grid.flow_col = Some(true);
grid_flow_row => |s| s.extra_mut().grid.flow_col = Some(false);
}
fn grid_cols(mut self, count: u16) -> Self {
self.style().extra_mut().grid.cols = Some(count);
self
}
fn grid_rows(mut self, count: u16) -> Self {
self.style().extra_mut().grid.rows = Some(count);
self
}
};
}
pub(crate) use {grid_numbers, grid_utilities};