mathml_core/identifiers/
display.rs

1use super::*;
2
3impl Display for MathIdentifier {
4    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5        // maybe short form
6        if self.variant == FontVariant::Italic {
7            f.write_str("<mi>")?;
8        }
9        else {
10            write!(f, "<mi mathvariant=\"{}\">", self.variant)?;
11        }
12        safe_html_str(f, &self.identifier)?;
13        f.write_str("</mi>")
14    }
15}
16
17impl Display for MathText {
18    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
19        let tag = if self.is_string { "ms" } else { "mtext" };
20        write!(f, "<{}>", tag)?;
21        safe_html_str(f, &self.text)?;
22        write!(f, "</{}>", tag)
23    }
24}
25
26#[rustfmt::skip]
27impl Display for FontVariant {
28    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
29        match self {
30            FontVariant::Normal              => write!(f, "normal"),
31            FontVariant::Italic              => write!(f, "italic"),
32            FontVariant::Bold                => write!(f, "bold"),
33            FontVariant::BoldItalic          => write!(f, "bold-italic"),
34            FontVariant::DoubleStruck        => write!(f, "double-struck"),
35            FontVariant::BoldFraktur         => write!(f, "bold-fraktur"),
36            FontVariant::Script              => write!(f, "script"),
37            FontVariant::BoldScript          => write!(f, "bold-script"),
38            FontVariant::Fraktur             => write!(f, "fraktur"),
39            FontVariant::SansSerif           => write!(f, "sans-serif"),
40            FontVariant::BoldSansSerif       => write!(f, "bold-sans-serif"),
41            FontVariant::SansSerifItalic     => write!(f, "sans-serif-italic"),
42            FontVariant::SansSerifBoldItalic => write!(f, "sans-serif-bold-italic"),
43            FontVariant::Monospace           => write!(f, "monospace"),
44        }
45    }
46}