pub enum MathNucleus<ET: EngineTypes, S: MathFontStyleT<ET>> {
Simple {
cls: MathClass,
kernel: MathKernel<ET, S>,
limits: Option<bool>,
},
Inner(MathKernel<ET, S>),
LeftRight {
start: SourceRef<ET>,
left: Option<(ET::Char, S)>,
children: Box<[MathNode<ET, S>]>,
right: Option<(ET::Char, S)>,
end: SourceRef<ET>,
},
Middle(ET::Char, S),
Overline(MathKernel<ET, S>),
Underline(MathKernel<ET, S>),
Accent {
accent: (ET::Char, S),
inner: Box<[MathNode<ET, S>]>,
},
Radical {
rad: (ET::Char, S),
inner: Box<[MathNode<ET, S>]>,
},
VCenter {
start: SourceRef<ET>,
end: SourceRef<ET>,
children: Box<[VNode<ET>]>,
scaled: ToOrSpread<ET::Dim>,
},
}Expand description
The nucleus of a MathAtom; a cohesive “unit” with optional sub/superscript.
Variants§
Simple
A simple nucleus, consisting of a MathKernel and a math class.
limits is None during construction of the list, and Some(true) or Some(false)
after the list has been closed, or if a large operator is followed by a \limits or \nolimits.
Inner(MathKernel<ET, S>)
A \mathinner node, as produced by {...}
LeftRight
A node produced by \left...\right.
Fields
Middle(ET::Char, S)
A node produced by \middle.
Overline(MathKernel<ET, S>)
A node produced by \overline.
Underline(MathKernel<ET, S>)
A node produced by \underline.
Accent
A node produced by \mathaccent.
Radical
A node produced by \radical.
VCenter
A node produced by \vcenter.
Trait Implementations§
Source§impl<ET: Clone + EngineTypes, S: Clone + MathFontStyleT<ET>> Clone for MathNucleus<ET, S>
impl<ET: Clone + EngineTypes, S: Clone + MathFontStyleT<ET>> Clone for MathNucleus<ET, S>
Source§fn clone(&self) -> MathNucleus<ET, S>
fn clone(&self) -> MathNucleus<ET, S>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<ET: Debug + EngineTypes, S: Debug + MathFontStyleT<ET>> Debug for MathNucleus<ET, S>
impl<ET: Debug + EngineTypes, S: Debug + MathFontStyleT<ET>> Debug for MathNucleus<ET, S>
Source§impl<ET: EngineTypes> NodeTrait<ET> for MathNucleus<ET, MathFontStyle<ET>>
impl<ET: EngineTypes> NodeTrait<ET> for MathNucleus<ET, MathFontStyle<ET>>
Source§fn display_fmt(&self, indent: usize, f: &mut Formatter<'_>) -> Result
fn display_fmt(&self, indent: usize, f: &mut Formatter<'_>) -> Result
Produces a human-readable string; since nodes are deeply nested, takes an
additional
indent value to indent the stringSource§fn display(&self) -> DisplayNode<'_, ET, Self>
fn display(&self) -> DisplayNode<'_, ET, Self>
Returns a helper struct that implements
Display and uses Self::display_fmt
to yield a human-readable string.Source§fn opaque(&self) -> bool
fn opaque(&self) -> bool
Whether this node is “opaque”; meaning: When considering a list of nodes (e.g. in
\unskip
or \lastbox, this node should not be considered. Useful for annotation/marker nodes
some engine wants to insert, without impacting algorithms that inspect e.g. the last node
of the current list.fn sourceref(&self) -> Option<(&SourceRef<ET>, &SourceRef<ET>)>
Auto Trait Implementations§
impl<ET, S> !Freeze for MathNucleus<ET, S>
impl<ET, S> !RefUnwindSafe for MathNucleus<ET, S>
impl<ET, S> Send for MathNucleus<ET, S>where
<ET as EngineTypes>::Char: Send,
S: Send,
<<ET as EngineTypes>::File as File>::SourceRefID: Send,
<ET as EngineTypes>::Dim: Send,
<ET as EngineTypes>::MuDim: Send,
<S as MathFontStyleT<ET>>::Choice: Send,
<S as MathFontStyleT<ET>>::Markers: Send,
<ET as EngineTypes>::CustomNode: Send,
<ET as EngineTypes>::Font: Send,
ET: Send,
impl<ET, S> !Sync for MathNucleus<ET, S>
impl<ET, S> Unpin for MathNucleus<ET, S>where
<ET as EngineTypes>::Char: Unpin,
S: Unpin,
<<ET as EngineTypes>::File as File>::SourceRefID: Unpin,
<ET as EngineTypes>::Dim: Unpin,
impl<ET, S> UnsafeUnpin for MathNucleus<ET, S>where
<ET as EngineTypes>::Char: UnsafeUnpin,
S: UnsafeUnpin,
<<ET as EngineTypes>::File as File>::SourceRefID: UnsafeUnpin,
<ET as EngineTypes>::Dim: UnsafeUnpin,
impl<ET, S> UnwindSafe for MathNucleus<ET, S>where
<ET as EngineTypes>::Char: UnwindSafe,
S: UnwindSafe,
<<ET as EngineTypes>::File as File>::SourceRefID: UnwindSafe,
<ET as EngineTypes>::Dim: UnwindSafe,
<ET as EngineTypes>::MuDim: UnwindSafe,
<S as MathFontStyleT<ET>>::Choice: UnwindSafe,
<S as MathFontStyleT<ET>>::Markers: UnwindSafe,
<ET as EngineTypes>::CustomNode: UnwindSafe,
<ET as EngineTypes>::Font: UnwindSafe,
<ET as EngineTypes>::Token: UnwindSafe,
ET: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more