tailwind_rs_core/utilities/layout/
object_position.rs1use crate::classes::ClassBuilder;
4use serde::{Deserialize, Serialize};
5use std::fmt;
6
7#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
9pub enum ObjectPosition {
10 Bottom,
12 Center,
14 Left,
16 LeftBottom,
18 LeftTop,
20 Right,
22 RightBottom,
24 RightTop,
26 Top,
28}
29
30impl fmt::Display for ObjectPosition {
31 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
32 match self {
33 ObjectPosition::Bottom => write!(f, "object-bottom"),
34 ObjectPosition::Center => write!(f, "object-center"),
35 ObjectPosition::Left => write!(f, "object-left"),
36 ObjectPosition::LeftBottom => write!(f, "object-left-bottom"),
37 ObjectPosition::LeftTop => write!(f, "object-left-top"),
38 ObjectPosition::Right => write!(f, "object-right"),
39 ObjectPosition::RightBottom => write!(f, "object-right-bottom"),
40 ObjectPosition::RightTop => write!(f, "object-right-top"),
41 ObjectPosition::Top => write!(f, "object-top"),
42 }
43 }
44}
45
46pub trait ObjectPositionUtilities {
48 fn object_position(self, object_position: ObjectPosition) -> Self;
49}
50
51impl ObjectPositionUtilities for ClassBuilder {
52 fn object_position(self, object_position: ObjectPosition) -> Self {
53 self.class(object_position.to_string())
54 }
55}
56
57#[cfg(test)]
58mod tests {
59 use super::*;
60
61 #[test]
62 fn test_object_position_utilities() {
63 let classes = ClassBuilder::new()
64 .object_position(ObjectPosition::Center)
65 .build();
66
67 assert!(classes.to_css_classes().contains("object-center"));
68 }
69}