tailwind_rs_core/utilities/flexbox/
align_self.rs1use crate::classes::ClassBuilder;
4use serde::{Deserialize, Serialize};
5use std::fmt;
6
7#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
9pub enum AlignSelf {
10 Auto,
12 Start,
14 End,
16 Center,
18 Stretch,
20 Baseline,
22}
23
24impl fmt::Display for AlignSelf {
25 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
26 match self {
27 AlignSelf::Auto => write!(f, "self-auto"),
28 AlignSelf::Start => write!(f, "self-start"),
29 AlignSelf::End => write!(f, "self-end"),
30 AlignSelf::Center => write!(f, "self-center"),
31 AlignSelf::Stretch => write!(f, "self-stretch"),
32 AlignSelf::Baseline => write!(f, "self-baseline"),
33 }
34 }
35}
36
37pub trait AlignSelfUtilities {
39 fn align_self(self, align: AlignSelf) -> Self;
40}
41
42impl AlignSelfUtilities for ClassBuilder {
43 fn align_self(self, align: AlignSelf) -> Self {
44 self.class(align.to_string())
45 }
46}
47
48#[cfg(test)]
49mod tests {
50 use super::*;
51
52 #[test]
53 fn test_align_self_utilities() {
54 let classes = ClassBuilder::new().align_self(AlignSelf::Center).build();
55
56 assert!(classes.to_css_classes().contains("self-center"));
57 }
58}