tailwind_css_fixes/systems/units/axis_xy/
mod.rs

1use std::fmt::{Display, Formatter};
2
3mod traits;
4
5#[derive(Copy, Clone, Debug)]
6pub enum AxisXY {
7    X,
8    Y,
9    N,
10}
11
12impl AxisXY {
13    pub fn split_xy<'a, 'b>(pattern: &'a [&'b str]) -> (Self, &'a [&'b str]) {
14        match pattern {
15            ["x", rest @ ..] => (AxisXY::X, rest),
16            ["y", rest @ ..] => (AxisXY::Y, rest),
17            _ => unreachable!(),
18        }
19    }
20    pub(crate) fn write_xy<A, B>(&self, f: &mut Formatter<'_>, before: B, after: A) -> std::fmt::Result
21    where
22        A: Display,
23        B: Display,
24    {
25        match self {
26            AxisXY::X => write!(f, "{}-x-{}", before, after),
27            AxisXY::Y => write!(f, "{}-y-{}", before, after),
28            AxisXY::N => unreachable!(),
29        }
30    }
31    pub fn split_xyn<'a, 'b>(pattern: &'a [&'b str]) -> (Self, &'a [&'b str]) {
32        match pattern {
33            ["x", rest @ ..] => (AxisXY::X, rest),
34            ["y", rest @ ..] => (AxisXY::Y, rest),
35            _ => (AxisXY::N, pattern),
36        }
37    }
38    pub(crate) fn write_xyn<A, B>(&self, f: &mut Formatter<'_>, before: B, after: A) -> std::fmt::Result
39    where
40        A: Display,
41        B: Display,
42    {
43        match self {
44            AxisXY::X => write!(f, "{}-x-{}", before, after),
45            AxisXY::Y => write!(f, "{}-y-{}", before, after),
46            AxisXY::N => write!(f, "{}-{}", before, after),
47        }
48    }
49    pub fn format_xyn<B>(&self, before: B) -> String
50    where
51        B: Display,
52    {
53        match self {
54            AxisXY::X => format!("{}-x", before),
55            AxisXY::Y => format!("{}-y", before),
56            AxisXY::N => format!("{}", before),
57        }
58    }
59}