Skip to main content

latex2mathml/
attribute.rs

1use std::fmt;
2
3/// mi mathvariant attribute
4#[derive(Debug, Clone, Copy, PartialEq)]
5pub enum Variant {
6    Normal,
7    Italic,
8    Bold,
9    BoldItalic,
10    DoubleStruck,
11    BoldFraktur,
12    Script,
13    BoldScript,
14    Fraktur,
15    SansSerif,
16    BoldSansSerif,
17    SansSerifItalic,
18    SansSerifBoldItalic,
19    Monospace,
20}
21
22impl fmt::Display for Variant {
23    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
24        match self {
25            Variant::Normal              => write!(f, "normal"),
26            Variant::Italic              => write!(f, "italic"),
27            Variant::Bold                => write!(f, "bold"),
28            Variant::BoldItalic          => write!(f, "bold-italic"),
29            Variant::DoubleStruck        => write!(f, "double-struck"),
30            Variant::BoldFraktur         => write!(f, "bold-fraktur"),
31            Variant::Script              => write!(f, "script"),
32            Variant::BoldScript          => write!(f, "bold-script"),
33            Variant::Fraktur             => write!(f, "fraktur"),
34            Variant::SansSerif           => write!(f, "sans-serif"),
35            Variant::BoldSansSerif       => write!(f, "bold-sans-serif"),
36            Variant::SansSerifItalic     => write!(f, "sans-serif-italic"),
37            Variant::SansSerifBoldItalic => write!(f, "sans-serif-bold-italic"),
38            Variant::Monospace           => write!(f, "monospace"),
39        }
40    }
41}
42
43#[derive(Debug, Clone, Copy, PartialEq)]
44pub enum Accent {
45    True,
46    False,
47}
48
49impl fmt::Display for Accent {
50    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
51        match self {
52            Accent::True => write!(f, "true"),
53            Accent::False => write!(f, "false"),
54        }
55    }
56}
57
58#[derive(Debug, Clone, Copy, PartialEq)]
59pub enum LineThickness {
60    Thin,
61    Medium,
62    Thick,
63    Length(u8),
64}
65impl fmt::Display for LineThickness {
66    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
67        match self {
68            LineThickness::Thin      => write!(f, r#" linethickness="thin""#),
69            LineThickness::Medium    => write!(f, r#""#),
70            LineThickness::Thick     => write!(f, r#" linethickness="medium""#),
71            LineThickness::Length(l) => write!(f, r#" linethickness="{}""#, l),
72        }
73    }
74}
75
76#[derive(Debug, Clone, Copy, PartialEq, Eq)]
77pub enum ColumnAlign {
78    Center,
79    Left,
80    Right,
81}
82
83impl fmt::Display for ColumnAlign {
84    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
85        match self {
86            ColumnAlign::Center => write!(f, r#""#),
87            ColumnAlign::Left => write!(f, r#" columnalign=left"#),
88            ColumnAlign::Right => write!(f, r#" columnalign=right"#),
89        }
90    }
91}