tailwind_css_fixes/systems/units/axis_xy/
mod.rs1use 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}