Struct rustdoc::html::highlight::TokenHandler
source · struct TokenHandler<'a, 'tcx> {
out: &'a mut Buffer,
closing_tags: Vec<(&'static str, Class)>,
pending_exit_span: Option<Class>,
current_class: Option<Class>,
pending_elems: Vec<(&'a str, Option<Class>)>,
href_context: Option<HrefContext<'a, 'tcx>>,
}
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<(&'a 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<'a, 'tcx>>
Implementations§
source§impl<'a, 'tcx> TokenHandler<'a, 'tcx>
impl<'a, 'tcx> TokenHandler<'a, 'tcx>
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§
Auto Trait Implementations§
impl<'a, 'tcx> !RefUnwindSafe for TokenHandler<'a, 'tcx>
impl<'a, 'tcx> !Send for TokenHandler<'a, 'tcx>
impl<'a, 'tcx> !Sync for TokenHandler<'a, 'tcx>
impl<'a, 'tcx> Unpin for TokenHandler<'a, 'tcx>where
'tcx: 'a,
impl<'a, 'tcx> !UnwindSafe for TokenHandler<'a, 'tcx>
Blanket Implementations§
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn 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>,
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
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: 160 bytes