tailwind_rs_core/utilities/layout/
float.rs

1//! Float utilities for tailwind-rs
2
3use crate::classes::ClassBuilder;
4use serde::{Deserialize, Serialize};
5use std::fmt;
6
7/// Float values
8#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
9pub enum Float {
10    /// Right float
11    Right,
12    /// Left float
13    Left,
14    /// None float
15    None,
16}
17
18impl fmt::Display for Float {
19    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
20        match self {
21            Float::Right => write!(f, "float-right"),
22            Float::Left => write!(f, "float-left"),
23            Float::None => write!(f, "float-none"),
24        }
25    }
26}
27
28/// Trait for adding float utilities to a class builder
29pub trait FloatUtilities {
30    fn float(self, float: Float) -> Self;
31}
32
33impl FloatUtilities for ClassBuilder {
34    fn float(self, float: Float) -> Self {
35        self.class(float.to_string())
36    }
37}
38
39#[cfg(test)]
40mod tests {
41    use super::*;
42
43    #[test]
44    fn test_float_utilities() {
45        let classes = ClassBuilder::new().float(Float::Left).build();
46
47        assert!(classes.to_css_classes().contains("float-left"));
48    }
49}