pub enum Event<'a> {
Content(Content<'a>),
Begin(Grouping),
End,
Visual(Visual),
Script {
ty: ScriptType,
position: ScriptPosition,
},
Space {
width: Option<Dimension>,
height: Option<Dimension>,
},
StateChange(StateChange),
EnvironmentFlow(EnvironmentFlow),
}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,
an Event::Space, or an Event::StateChange.
[Event::Alignment]s, and [Event::NewLine]s are not considered elements, and must never
occur when an element is expected.
§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 initiated with Event::Begin.
Visual(Visual)
The n elements following this one constitute the content of the Visual element,
where n is specified in the documentation of for each of the Visual variants.
Script
The n elements following this one constitute a base and its script(s), where n is
specified in the documentation for each of the ScriptType variants.
Space
This event 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)
This event specifies a state change in the renderer.
This state change only applies to the current group nesting and deeper groups.
EnvironmentFlow(EnvironmentFlow)
This is a flow event that is emitted in mathematical environments such as align,
cases, array, etc.