struct TokenHandler<'a, 'tcx, F: Write> {
out: &'a mut F,
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>>,
write_line_number: fn(&mut F, u32, &'static str),
}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 FIt 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>>§write_line_number: fn(&mut F, u32, &'static str)Implementations§
Source§impl<F: Write> TokenHandler<'_, '_, F>
impl<F: Write> TokenHandler<'_, '_, F>
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.
fn write_line_number(&mut self, line: u32, extra: &'static str)
Trait Implementations§
Auto Trait Implementations§
impl<'a, 'tcx, F> Freeze for TokenHandler<'a, 'tcx, F>
impl<'a, 'tcx, F> !RefUnwindSafe for TokenHandler<'a, 'tcx, F>
impl<'a, 'tcx, F> !Send for TokenHandler<'a, 'tcx, F>
impl<'a, 'tcx, F> !Sync for TokenHandler<'a, 'tcx, F>
impl<'a, 'tcx, F> Unpin for TokenHandler<'a, 'tcx, F>
impl<'a, 'tcx, F> !UnwindSafe for TokenHandler<'a, 'tcx, F>
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> 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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
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: 168 bytes