Struct rustdoc::html::highlight::Classifier
source · struct Classifier<'src> {
tokens: PeekIter<'src>,
in_attribute: bool,
in_macro: bool,
in_macro_nonterminal: bool,
byte_pos: u32,
file_span: Span,
src: &'src str,
decorations: Option<Decorations>,
}
Expand description
Processes program tokens, classifying strings of text by highlighting
category (Class
).
Fields§
§tokens: PeekIter<'src>
§in_attribute: bool
§in_macro: bool
§in_macro_nonterminal: bool
§byte_pos: u32
§file_span: Span
§src: &'src str
§decorations: Option<Decorations>
Implementations§
source§impl<'src> Classifier<'src>
impl<'src> Classifier<'src>
sourcefn new(
src: &str,
file_span: Span,
decoration_info: Option<DecorationInfo>
) -> Classifier<'_>
fn new( src: &str, file_span: Span, decoration_info: Option<DecorationInfo> ) -> Classifier<'_>
Takes as argument the source code to HTML-ify, the rust edition to use and the source code
file span which will be used later on by the span_correspondence_map
.
sourcefn new_span(&self, lo: u32, text: &str) -> Span
fn new_span(&self, lo: u32, text: &str) -> Span
Convenient wrapper to create a Span
from a position in the file.
sourcefn get_full_ident_path(&mut self) -> Vec<(TokenKind, usize, usize)>
fn get_full_ident_path(&mut self) -> Vec<(TokenKind, usize, usize)>
Concatenate colons and idents as one when possible.
sourcefn next(&mut self) -> Option<(TokenKind, &'src str, u32)>
fn next(&mut self) -> Option<(TokenKind, &'src str, u32)>
Wraps the tokens iteration to ensure that the byte_pos
is always correct.
It returns the token’s kind, the token as a string and its byte position in the source string.
sourcefn highlight(self, sink: &mut dyn FnMut(Highlight<'src>))
fn highlight(self, sink: &mut dyn FnMut(Highlight<'src>))
Exhausts the Classifier
writing the output into sink
.
The general structure for this method is to iterate over each token, possibly giving it an HTML span with a class specifying what flavor of token is used.
sourcefn advance(
&mut self,
token: TokenKind,
text: &'src str,
sink: &mut dyn FnMut(Highlight<'src>),
before: u32
)
fn advance( &mut self, token: TokenKind, text: &'src str, sink: &mut dyn FnMut(Highlight<'src>), before: u32 )
Single step of highlighting. This will classify token
, but maybe also a couple of
following ones as well.
before
is the position of the given token in the source
string and is used as “lo” byte
in case we want to try to generate a link for this token using the
span_correspondence_map
.
fn peek(&mut self) -> Option<TokenKind>
fn check_if_is_union_keyword(&mut self) -> bool
Auto Trait Implementations§
impl<'src> !DynSend for Classifier<'src>
impl<'src> !DynSync for Classifier<'src>
impl<'src> Freeze for Classifier<'src>
impl<'src> RefUnwindSafe for Classifier<'src>
impl<'src> Send for Classifier<'src>
impl<'src> Sync for Classifier<'src>
impl<'src> Unpin for Classifier<'src>
impl<'src> UnwindSafe for Classifier<'src>
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, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<T> Filterable for T
impl<T> Filterable for 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> 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<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<'tcx, T> ToPredicate<'tcx, T> for T
impl<'tcx, T> ToPredicate<'tcx, T> for T
fn to_predicate(self, _tcx: TyCtxt<'tcx>) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed ) -> T
source§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>
source§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>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for T
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