tailwind_rs_core/utilities/flexbox/
justify_content.rs

1//! Justify content utilities for tailwind-rs
2
3use crate::classes::ClassBuilder;
4use serde::{Deserialize, Serialize};
5use std::fmt;
6
7/// Justify content values
8#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
9pub enum JustifyContent {
10    /// Start justify content
11    Start,
12    /// End justify content
13    End,
14    /// Center justify content
15    Center,
16    /// Between justify content
17    Between,
18    /// Around justify content
19    Around,
20    /// Evenly justify content
21    Evenly,
22}
23
24impl fmt::Display for JustifyContent {
25    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
26        match self {
27            JustifyContent::Start => write!(f, "justify-start"),
28            JustifyContent::End => write!(f, "justify-end"),
29            JustifyContent::Center => write!(f, "justify-center"),
30            JustifyContent::Between => write!(f, "justify-between"),
31            JustifyContent::Around => write!(f, "justify-around"),
32            JustifyContent::Evenly => write!(f, "justify-evenly"),
33        }
34    }
35}
36
37/// Trait for adding justify content utilities to a class builder
38pub trait JustifyContentUtilities {
39    fn justify_content(self, justify: JustifyContent) -> Self;
40}
41
42impl JustifyContentUtilities for ClassBuilder {
43    fn justify_content(self, justify: JustifyContent) -> Self {
44        self.class(justify.to_string())
45    }
46}
47
48#[cfg(test)]
49mod tests {
50    use super::*;
51
52    #[test]
53    fn test_justify_content_utilities() {
54        let classes = ClassBuilder::new()
55            .justify_content(JustifyContent::Center)
56            .build();
57
58        assert!(classes.to_css_classes().contains("justify-center"));
59    }
60}