Node

Enum Node 

Source
pub enum Node<'arena> {
Show 33 variants Number(&'arena str), IdentifierChar(char, LetterAttr), StretchableOp(StretchableOp, StretchMode, Option<OpAttr>), Operator { op: MathMLOperator, attr: Option<OpAttr>, left: Option<MathSpacing>, right: Option<MathSpacing>, }, PseudoOp { attr: Option<OpAttr>, left: Option<MathSpacing>, right: Option<MathSpacing>, name: &'arena str, }, IdentifierStr(&'arena str), Space(Length), Subscript { target: &'arena Node<'arena>, symbol: &'arena Node<'arena>, }, Superscript { target: &'arena Node<'arena>, symbol: &'arena Node<'arena>, }, SubSup { target: &'arena Node<'arena>, sub: &'arena Node<'arena>, sup: &'arena Node<'arena>, }, OverOp(MathMLOperator, Option<OpAttr>, &'arena Node<'arena>), UnderOp(MathMLOperator, &'arena Node<'arena>), Overset { symbol: &'arena Node<'arena>, target: &'arena Node<'arena>, }, Underset { 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>, }, Fenced { style: Option<Style>, open: Option<StretchableOp>, close: Option<StretchableOp>, content: &'arena Node<'arena>, }, SizedParen(Size, StretchableOp), Text(Option<HtmlTextStyle>, &'arena str), Table { align: Alignment, style: Option<Style>, content: &'arena [&'arena Node<'arena>], }, EquationArray { align: Alignment, last_equation_num: 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(Option<NonZeroU16>), 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>>, }, HardcodedMathML(&'static str), Dummy,
}
Expand description

AST node

Variants§

§

Number(&'arena str)

<mn>...</mn>

§

IdentifierChar(char, LetterAttr)

<mi>...</mi> for a single character.

§

StretchableOp(StretchableOp, StretchMode, Option<OpAttr>)

§

Operator

<mo>...</mo> for a single character.

§

PseudoOp

<mo>...</mo> for a string.

Fields

§name: &'arena str
§

IdentifierStr(&'arena str)

<mi>...</mi> for a string.

§

Space(Length)

<mspace width="..."/>

§

Subscript

<msub>...</msub>

Fields

§target: &'arena Node<'arena>
§symbol: &'arena Node<'arena>
§

Superscript

<msup>...</msup>

Fields

§target: &'arena Node<'arena>
§symbol: &'arena Node<'arena>
§

SubSup

<msubsup>...</msubsup>

Fields

§target: &'arena Node<'arena>
§sub: &'arena Node<'arena>
§sup: &'arena Node<'arena>
§

OverOp(MathMLOperator, Option<OpAttr>, &'arena Node<'arena>)

<mover accent="true">...</mover>

§

UnderOp(MathMLOperator, &'arena Node<'arena>)

<munder accent="true">...</munder>

§

Overset

<mover>...</mover>

Fields

§symbol: &'arena Node<'arena>
§target: &'arena Node<'arena>
§

Underset

<munder>...</munder>

Fields

§symbol: &'arena Node<'arena>
§target: &'arena Node<'arena>
§

UnderOver

<munderover>...</munderover>

Fields

§target: &'arena Node<'arena>
§under: &'arena Node<'arena>
§over: &'arena Node<'arena>
§

Sqrt(&'arena Node<'arena>)

<msqrt>...</msqrt>

§

Root(&'arena Node<'arena>, &'arena Node<'arena>)

<mroot>...</mroot>

§

Frac

<mfrac>...</mfrac>

Fields

§num: &'arena Node<'arena>

Numerator

§denom: &'arena Node<'arena>

Denominator

§lt_value: LengthValue

Line thickness

§lt_unit: LengthUnit
§

Row

<mrow>...</mrow>

Fields

§nodes: &'arena [&'arena Node<'arena>]
§

Fenced

Fields

§style: Option<Style>
§content: &'arena Node<'arena>
§

SizedParen(Size, StretchableOp)

§

Text(Option<HtmlTextStyle>, &'arena str)

<mtext>...</mtext>

§

Table

<mtable>...</mtable> for matrices and similar constructs

Fields

§style: Option<Style>
§content: &'arena [&'arena Node<'arena>]
§

EquationArray

<mtable>...</mtable> for equation arrays like the align environment

Fields

§last_equation_num: Option<NonZeroU16>
§content: &'arena [&'arena Node<'arena>]
§

MultLine

<mtable>...</mtable> for the multline environment

Fields

§num_rows: NonZeroU16
§last_equation_num: Option<NonZeroU16>
§content: &'arena [&'arena Node<'arena>]
§

Array

<mtable>...</mtable> for arrays

Fields

§style: Option<Style>
§array_spec: &'arena ArraySpec<'arena>
§content: &'arena [&'arena Node<'arena>]
§

ColumnSeparator

<mtd>...</mtd>

§

RowSeparator(Option<NonZeroU16>)

<mtr>...</mtr>

§

Enclose

Fields

§content: &'arena Node<'arena>
§notation: Notation
§

Slashed(&'arena Node<'arena>)

§

Multiscript

Fields

§base: &'arena Node<'arena>
§sub: Option<&'arena Node<'arena>>
§sup: Option<&'arena Node<'arena>>
§

HardcodedMathML(&'static str)

§

Dummy

This node is used when the parser needs to return a node, but does not want to emit anything.

Implementations§

Source§

impl Node<'_>

Source

pub fn emit(&self, s: &mut String, base_indent: usize) -> Result

Trait Implementations§

Source§

impl<'arena> Debug for Node<'arena>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'arena> Freeze for Node<'arena>

§

impl<'arena> RefUnwindSafe for Node<'arena>

§

impl<'arena> Send for Node<'arena>

§

impl<'arena> Sync for Node<'arena>

§

impl<'arena> Unpin for Node<'arena>

§

impl<'arena> UnwindSafe for Node<'arena>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.