struct TokenHandler<'a, 'b, 'c, 'd, 'e> {
out: &'a mut Buffer,
closing_tags: Vec<(&'static str, Class)>,
pending_exit_span: Option<Class>,
current_class: Option<Class>,
pending_elems: Vec<(&'b str, Option<Class>)>,
href_context: Option<HrefContext<'c, 'd, 'e>>,
}
Expand description
This type is used as a conveniency to prevent having to pass all its fields as arguments into the various functions (which became its methods).
Fields
out: &'a mut Buffer
It contains the closing tag and the associated Class
.
pending_exit_span: Option<Class>
This is used because we don’t automatically generate the closing tag on ExitSpan
in
case an EnterSpan
event with the same class follows.
current_class: Option<Class>
current_class
and pending_elems
are used to group HTML elements with same class
attributes to reduce the DOM size.
pending_elems: Vec<(&'b str, Option<Class>)>
We need to keep the Class
for each element because it could contain a Span
which is
used to generate links.
href_context: Option<HrefContext<'c, 'd, 'e>>
Implementations
sourceimpl<'a, 'b, 'c, 'd, 'e> TokenHandler<'a, 'b, 'c, 'd, 'e>
impl<'a, 'b, 'c, 'd, 'e> TokenHandler<'a, 'b, 'c, 'd, 'e>
fn handle_exit_span(&mut self)
sourcefn write_pending_elems(&mut self, current_class: Option<Class>) -> bool
fn write_pending_elems(&mut self, current_class: Option<Class>) -> bool
Write all the pending elements sharing a same (or at mergeable) Class
.
If there is a “parent” (if a EnterSpan
event was encountered) and the parent can be merged
with the elements’ class, then we simply write the elements since the ExitSpan
event will
close the tag.
Otherwise, if there is only one pending element, we let the string
function handle both
opening and closing the tag, otherwise we do it into this function.
It returns true
if current_class
must be set to None
afterwards.
Trait Implementations
sourceimpl<'a, 'b, 'c, 'd, 'e> Drop for TokenHandler<'a, 'b, 'c, 'd, 'e>
impl<'a, 'b, 'c, 'd, 'e> Drop for TokenHandler<'a, 'b, 'c, 'd, 'e>
Auto Trait Implementations
impl<'a, 'b, 'c, 'd, 'e> !RefUnwindSafe for TokenHandler<'a, 'b, 'c, 'd, 'e>
impl<'a, 'b, 'c, 'd, 'e> !Send for TokenHandler<'a, 'b, 'c, 'd, 'e>
impl<'a, 'b, 'c, 'd, 'e> !Sync for TokenHandler<'a, 'b, 'c, 'd, 'e>
impl<'a, 'b, 'c, 'd, 'e> Unpin for TokenHandler<'a, 'b, 'c, 'd, 'e>where
'd: 'c,
impl<'a, 'b, 'c, 'd, 'e> !UnwindSafe for TokenHandler<'a, 'b, 'c, 'd, 'e>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 152 bytes