tailwind_rs_core/utilities/grid/
template_rows.rs1use crate::classes::ClassBuilder;
4use serde::{Deserialize, Serialize};
5use std::fmt;
6
7#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
9pub enum GridTemplateRows {
10 None,
12 Subgrid,
14 Auto,
16 One,
18 Two,
20 Three,
22 Four,
24 Five,
26 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
46pub 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}