mathml_core/operators/
mod.rs1use crate::{
2 helpers::{safe_html_char, safe_html_str},
3 traits::{write_tag_close, write_tag_self_close, write_tag_start},
4 MathElement, MathML,
5};
6use std::{
7 collections::BTreeMap,
8 fmt::{Display, Formatter},
9 iter::repeat,
10};
11mod constructors;
12mod display;
13
14#[derive(Clone, Debug, PartialEq)]
18#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
19pub struct MathOperator {
20 operator: String,
21 attributes: BTreeMap<String, String>,
22}
23
24#[derive(Clone, Debug, PartialEq)]
26#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
27pub struct MathSpace {
28 attributes: BTreeMap<String, String>,
29}
30
31#[derive(Clone, Debug, PartialEq)]
33#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
34pub struct MathSqrt {
35 base: MathML,
36 surd: Option<MathML>,
37}
38
39#[derive(Clone, Debug, PartialEq)]
41#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
42pub struct MathMultiScript {
43 base: MathML,
44 ru: Vec<MathML>,
45 rd: Vec<MathML>,
46 lu: Vec<MathML>,
47 ld: Vec<MathML>,
48 attributes: BTreeMap<String, String>,
49}
50
51#[derive(Clone, Debug, PartialEq)]
53#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
54pub struct MathUnderOver {
55 base: MathML,
56 under: Option<MathML>,
57 over: Option<MathML>,
58 attributes: BTreeMap<String, String>,
59}
60
61#[derive(Clone, Debug, PartialEq)]
67#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
68pub struct MathFenced {
69 base: Vec<MathML>,
70 open: char,
71 close: char,
72 separators: String,
73}