tailwind_css/modules/flexbox/span/
mod.rs

1use super::*;
2
3use self::resolve::GridKind;
4
5mod resolve;
6
7#[doc=include_str!("readme.md")]
8#[derive(Debug, Copy, Clone)]
9pub struct TailwindRow {
10    kind: GridKind,
11}
12
13#[doc=include_str!("readme.md")]
14#[derive(Debug, Copy, Clone)]
15pub struct TailwindColumn {
16    kind: GridKind,
17}
18
19impl Display for TailwindRow {
20    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
21        write!(f, "row-{}", self.kind)
22    }
23}
24
25impl Display for TailwindColumn {
26    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
27        write!(f, "col-{}", self.kind)
28    }
29}
30
31impl TailwindInstance for TailwindColumn {
32    fn attributes(&self, _: &TailwindBuilder) -> CssAttributes {
33        let class = match self.kind {
34            GridKind::Start(_) => "grid-column-start",
35            GridKind::End(_) => "grid-column-end",
36            GridKind::Span(_) => "grid-column",
37        };
38        css_attributes! {
39            class => self.kind.get_properties()
40        }
41    }
42}
43
44impl TailwindInstance for TailwindRow {
45    fn attributes(&self, _: &TailwindBuilder) -> CssAttributes {
46        let class = match self.kind {
47            GridKind::Start(_) => "grid-row-start",
48            GridKind::End(_) => "grid-row-end",
49            GridKind::Span(_) => "grid-row",
50        };
51        css_attributes! {
52            class => self.kind.get_properties()
53        }
54    }
55}
56
57impl TailwindRow {
58    pub fn parse(pattern: &[&str], arbitrary: &TailwindArbitrary) -> Result<Self> {
59        Ok(Self { kind: GridKind::parse(pattern, arbitrary)? })
60    }
61}
62
63impl TailwindColumn {
64    pub fn parse(pattern: &[&str], arbitrary: &TailwindArbitrary) -> Result<Self> {
65        Ok(Self { kind: GridKind::parse(pattern, arbitrary)? })
66    }
67}