tailwind_rs_core/utilities/grid/
template_rows.rs

1//! Grid template rows utilities for tailwind-rs
2
3use crate::classes::ClassBuilder;
4use serde::{Deserialize, Serialize};
5use std::fmt;
6
7/// Grid template rows values
8#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
9pub enum GridTemplateRows {
10    /// None rows
11    None,
12    /// Subgrid rows
13    Subgrid,
14    /// Auto rows
15    Auto,
16    /// 1 row
17    One,
18    /// 2 rows
19    Two,
20    /// 3 rows
21    Three,
22    /// 4 rows
23    Four,
24    /// 5 rows
25    Five,
26    /// 6 rows
27    Six,
28}
29
30impl fmt::Display for GridTemplateRows {
31    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
32        match self {
33            GridTemplateRows::None => write!(f, "grid-rows-none"),
34            GridTemplateRows::Subgrid => write!(f, "grid-rows-subgrid"),
35            GridTemplateRows::Auto => write!(f, "grid-rows-auto"),
36            GridTemplateRows::One => write!(f, "grid-rows-1"),
37            GridTemplateRows::Two => write!(f, "grid-rows-2"),
38            GridTemplateRows::Three => write!(f, "grid-rows-3"),
39            GridTemplateRows::Four => write!(f, "grid-rows-4"),
40            GridTemplateRows::Five => write!(f, "grid-rows-5"),
41            GridTemplateRows::Six => write!(f, "grid-rows-6"),
42        }
43    }
44}
45
46/// Trait for adding grid template rows utilities to a class builder
47pub trait GridTemplateRowsUtilities {
48    fn grid_template_rows(self, rows: GridTemplateRows) -> Self;
49}
50
51impl GridTemplateRowsUtilities for ClassBuilder {
52    fn grid_template_rows(self, rows: GridTemplateRows) -> Self {
53        self.class(rows.to_string())
54    }
55}
56
57#[cfg(test)]
58mod tests {
59    use super::*;
60
61    #[test]
62    fn test_grid_template_rows_display() {
63        assert_eq!(GridTemplateRows::One.to_string(), "grid-rows-1");
64        assert_eq!(GridTemplateRows::Two.to_string(), "grid-rows-2");
65        assert_eq!(GridTemplateRows::Three.to_string(), "grid-rows-3");
66    }
67
68    #[test]
69    fn test_grid_template_rows_utilities() {
70        let classes = ClassBuilder::new()
71            .grid_template_rows(GridTemplateRows::Three)
72            .build();
73        
74        assert!(classes.to_css_classes().contains("grid-rows-3"));
75    }
76}