Enum pulldown_latex::Event
source · pub enum Event<'a> {
Content(Content<'a>),
Begin(Grouping),
End,
Visual(Visual),
Script {
ty: ScriptType,
position: ScriptPosition,
},
Space {
width: Option<(f32, DimensionUnit)>,
height: Option<(f32, DimensionUnit)>,
depth: Option<(f32, DimensionUnit)>,
},
StateChange(StateChange<'a>),
Alignment,
NewLine {
spacing: Option<(f32, DimensionUnit)>,
horizontal_lines: Box<[Line]>,
},
}
Expand description
All events that can be produced by the parser.
§For Renderer Implementors
When an Event
is referreing to an “element”, it is referring to the next logical unit of
content in the stream. This can be a single Event::Content
element, a group marked
by Event::Begin
and Event::End
, an Event::Visual
or an Event::Script
element, etc.
Event::Space
s, Event::StateChange
s, Event::Alignment
s, and Event::NewLine
s
are not considered elements.
§Examples
The following examples all constitute a single element:
Input: \text{Hello, world!}
[Event::Content(Content::Text("Hello, world!"))];
Input: x^2_{\text{max}}
[
Event::Script { ty: ScriptType::SubSuperscript, position: ScriptPosition::Right },
Event::Begin(Grouping::Normal),
Event::Content(Content::Text("max")),
Event::End,
Event::Content(Content::Ordinary { content: 'x', stretchy: false }),
];
Variants§
Content(Content<'a>)
The event is a Content
element.
Begin(Grouping)
The events following this one constitute a “group” which counts as a single element
(i.e., a set of elements within {}
in LaTeX
), until the Event::End
event
is reached.
End
Marks the end of a “group”.
Visual(Visual)
The n
events following this one constitute the content of the Visual
element,
where n
is specified in the documentation of for the Visual
variant.
Script
The n
events following this one constitute a base and its script(s), where n
is
specified in the documentation for the ScriptType
variant.
Space
This events specifes a custom spacing. This is produced by commands such as
\kern
, \hspace
, etc.
If any of the components are None
, then the spacing is set to 0 for that component.
Fields
StateChange(StateChange<'a>)
This event specifies a state change in the renderer.
This state change only applies to the current group nesting and deeper groups.
Alignment
This event specifies an alignment mark in a mathematical environment.
This event is only emitted when inside a Grouping
that allows it.
NewLine
This event specifies a line break in a mathematical environment.
This event is only emitted when inside a Grouping
that allows it.
Trait Implementations§
source§impl<'a> PartialEq for Event<'a>
impl<'a> PartialEq for Event<'a>
impl<'a> StructuralPartialEq for Event<'a>
Auto Trait Implementations§
impl<'a> Freeze for Event<'a>
impl<'a> RefUnwindSafe for Event<'a>
impl<'a> Send for Event<'a>
impl<'a> Sync for Event<'a>
impl<'a> Unpin for Event<'a>
impl<'a> UnwindSafe for Event<'a>
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)