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::Spaces, Event::StateChanges, Event::Alignments, and Event::NewLines
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§
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)