pub enum Node<'arena> {
Show 30 variants
Number(&'arena str),
IdentifierChar(char, LetterAttr),
IdentifierStr(&'arena str),
Operator {
op: MathMLOperator,
attrs: OpAttrs,
size: Option<Size>,
left: Option<MathSpacing>,
right: Option<MathSpacing>,
},
PseudoOp {
attrs: OpAttrs,
left: Option<MathSpacing>,
right: Option<MathSpacing>,
name: &'arena str,
},
Space(Length),
Sub {
target: &'arena Node<'arena>,
symbol: &'arena Node<'arena>,
},
Sup {
target: &'arena Node<'arena>,
symbol: &'arena Node<'arena>,
},
SubSup {
target: &'arena Node<'arena>,
sub: &'arena Node<'arena>,
sup: &'arena Node<'arena>,
},
OverAccent(MathMLOperator, OpAttrs, &'arena Node<'arena>),
UnderAccent(MathMLOperator, OpAttrs, &'arena Node<'arena>),
Over {
symbol: &'arena Node<'arena>,
target: &'arena Node<'arena>,
},
Under {
symbol: &'arena Node<'arena>,
target: &'arena Node<'arena>,
},
UnderOver {
target: &'arena Node<'arena>,
under: &'arena Node<'arena>,
over: &'arena Node<'arena>,
},
Sqrt(&'arena Node<'arena>),
Root(&'arena Node<'arena>, &'arena Node<'arena>),
Frac {
num: &'arena Node<'arena>,
denom: &'arena Node<'arena>,
lt_value: LengthValue,
lt_unit: LengthUnit,
attr: Option<FracAttr>,
},
Row {
nodes: &'arena [&'arena Node<'arena>],
attr: Option<RowAttr>,
},
Text(Option<HtmlTextStyle>, &'arena str),
Table {
align: Alignment,
style: Option<Style>,
content: &'arena [&'arena Node<'arena>],
},
EquationArray {
align: Alignment,
last_tag: Option<NonZeroU16>,
content: &'arena [&'arena Node<'arena>],
},
MultLine {
num_rows: NonZeroU16,
last_equation_num: Option<NonZeroU16>,
content: &'arena [&'arena Node<'arena>],
},
Array {
style: Option<Style>,
array_spec: &'arena ArraySpec<'arena>,
content: &'arena [&'arena Node<'arena>],
},
ColumnSeparator,
RowSeparator {
tag: Option<NonZeroU16>,
link_target: Option<&'arena str>,
},
Enclose {
content: &'arena Node<'arena>,
notation: Notation,
},
Slashed(&'arena Node<'arena>),
Multiscript {
base: &'arena Node<'arena>,
sub: Option<&'arena Node<'arena>>,
sup: Option<&'arena Node<'arena>>,
},
UnknownCommand(&'arena str),
HardcodedMathML(&'static str),
}Expand description
AST node
Variants§
Number(&'arena str)
<mn>...</mn>
IdentifierChar(char, LetterAttr)
<mi>...</mi> for a single character.
IdentifierStr(&'arena str)
<mi>...</mi> for a string.
Operator
<mo>...</mo> for a single character.
PseudoOp
<mo>...</mo> for a string.
Space(Length)
<mspace width="..."/>
Sub
<msub>...</msub>
Sup
<msup>...</msup>
SubSup
<msubsup>...</msubsup>
OverAccent(MathMLOperator, OpAttrs, &'arena Node<'arena>)
<mover accent="true">...</mover>
UnderAccent(MathMLOperator, OpAttrs, &'arena Node<'arena>)
<munder accentunder="true">...</munder>
Over
<mover>...</mover>
Under
<munder>...</munder>
UnderOver
<munderover>...</munderover>
Sqrt(&'arena Node<'arena>)
<msqrt>...</msqrt>
Root(&'arena Node<'arena>, &'arena Node<'arena>)
<mroot>...</mroot>
Frac
<mfrac>...</mfrac>
Row
<mrow>...</mrow>
Text(Option<HtmlTextStyle>, &'arena str)
<mtext>...</mtext>
Table
<mtable>...</mtable> for matrices and similar constructs
EquationArray
<mtable>...</mtable> for equation arrays like the align environment
MultLine
<mtable>...</mtable> for the multline environment
Array
<mtable>...</mtable> for arrays
Fields
ColumnSeparator
<mtd>...</mtd>
RowSeparator
<mtr>...</mtr>
Enclose
<menclose>...</menclose>
Slashed(&'arena Node<'arena>)
Multiscript
Fields
UnknownCommand(&'arena str)
This node is used for displaying unknown commands.
We are not using <merror> here because it’s rendered with a red border and a yellow
background, which is not desirable for our use case. We’ll just render it as <mtext>
with a custom style.