tailwind_rs_core/utilities/grid/
auto_flow.rs1use crate::classes::ClassBuilder;
4use serde::{Deserialize, Serialize};
5use std::fmt;
6
7#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
9pub enum GridAutoFlow {
10 Row,
12 Column,
14 Dense,
16 DenseColumn,
18}
19
20impl fmt::Display for GridAutoFlow {
21 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
22 match self {
23 GridAutoFlow::Row => write!(f, "grid-flow-row"),
24 GridAutoFlow::Column => write!(f, "grid-flow-col"),
25 GridAutoFlow::Dense => write!(f, "grid-flow-dense"),
26 GridAutoFlow::DenseColumn => write!(f, "grid-flow-col-dense"),
27 }
28 }
29}
30
31pub trait GridAutoFlowUtilities {
33 fn grid_auto_flow(self, flow: GridAutoFlow) -> Self;
34}
35
36impl GridAutoFlowUtilities for ClassBuilder {
37 fn grid_auto_flow(self, flow: GridAutoFlow) -> Self {
38 self.class(flow.to_string())
39 }
40}
41
42#[cfg(test)]
43mod tests {
44 use super::*;
45
46 #[test]
47 fn test_grid_auto_flow_display() {
48 assert_eq!(GridAutoFlow::Row.to_string(), "grid-flow-row");
49 assert_eq!(GridAutoFlow::Column.to_string(), "grid-flow-col");
50 assert_eq!(GridAutoFlow::Dense.to_string(), "grid-flow-dense");
51 }
52
53 #[test]
54 fn test_grid_auto_flow_utilities() {
55 let classes = ClassBuilder::new()
56 .grid_auto_flow(GridAutoFlow::Row)
57 .build();
58
59 assert!(classes.to_css_classes().contains("grid-flow-row"));
60 }
61}