Struct rustdoc::html::highlight::TokenHandler
source · 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 BufferIt 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