pub struct DefaultMouth<ET>where
ET: EngineTypes,{
inputs: Vec<TokenSource<<ET as EngineTypes>::Token, <ET as EngineTypes>::File>>,
args: Option<[Vec<<ET as EngineTypes>::Token>; 9]>,
start_ref: Vec<SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>>,
vecs: Vec<Vec<<ET as EngineTypes>::Token>>,
}Expand description
The default implementation of Mouth.
Well optimized to be fast, but at the cost of not keeping track
of โthe depth of current macro expansionsโ - I found that to be an acceptable loss, since afaict, the only thing that
is done with that information
is to print a corresponding number of .s if \tracingcommands is set. By omitting that and just concatenating
all expansions into a single Vec from which to pop(), we gain a massive speedup.
ยงErrors
Fieldsยง
ยงinputs: Vec<TokenSource<<ET as EngineTypes>::Token, <ET as EngineTypes>::File>>ยงargs: Option<[Vec<<ET as EngineTypes>::Token>; 9]>ยงstart_ref: Vec<SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>>ยงvecs: Vec<Vec<<ET as EngineTypes>::Token>>Implementationsยง
Sourceยงimpl<ET> DefaultMouth<ET>where
ET: EngineTypes,
impl<ET> DefaultMouth<ET>where
ET: EngineTypes,
Sourcepub fn into<ET2>(self) -> DefaultMouth<ET2>
pub fn into<ET2>(self) -> DefaultMouth<ET2>
Trivial conversion between different compatible EngineTypes.
Sourcepub fn into_tokens<ET2, F>(self, token: F) -> DefaultMouth<ET2>where
ET2: EngineTypes<Char = <ET as EngineTypes>::Char, File = <ET as EngineTypes>::File>,
F: FnMut(<ET as EngineTypes>::Token) -> <ET2 as EngineTypes>::Token,
pub fn into_tokens<ET2, F>(self, token: F) -> DefaultMouth<ET2>where
ET2: EngineTypes<Char = <ET as EngineTypes>::Char, File = <ET as EngineTypes>::File>,
F: FnMut(<ET as EngineTypes>::Token) -> <ET2 as EngineTypes>::Token,
Less trivial conversion between different EngineTypes with compatible Tokens.
Trait Implementationsยง
Sourceยงimpl<ET> Mouth<ET> for DefaultMouth<ET>where
ET: EngineTypes,
impl<ET> Mouth<ET> for DefaultMouth<ET>where
ET: EngineTypes,
Sourceยงfn new(
_aux: &mut EngineAux<ET>,
_state: &mut <ET as EngineTypes>::State,
) -> DefaultMouth<ET>
fn new( _aux: &mut EngineAux<ET>, _state: &mut <ET as EngineTypes>::State, ) -> DefaultMouth<ET>
fn get_vec(&mut self) -> Vec<<ET as EngineTypes>::Token>
fn file_trace( &self, ) -> impl Iterator<Item = SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>>
Sourceยงfn current_sourceref(
&self,
) -> SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>
fn current_sourceref( &self, ) -> SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>
Get the current
SourceReference of the Mouth (file/line/column).Sourceยงfn start_ref(
&self,
) -> SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>
fn start_ref( &self, ) -> SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>
The mouth (can) track(s) two
SourceReferences: the current one (see current_sourceref)
and the position
of the last Token encountered in the top-loop of an engine run that was not the result of an expansion.
The latter is returned by this function. The intuition being that this one indicates the start of the macro
responsible for what is currently happening, even if the Mouth is already further along because more Tokens
have been eaten as arguments to a macro etc.Sourceยงfn update_start_ref(&mut self)
fn update_start_ref(&mut self)
Tells the mouth to update the start reference to the current
SourceReference (see start_ref).Sourceยงfn get_args(&mut self) -> [Vec<<ET as EngineTypes>::Token>; 9]
fn get_args(&mut self) -> [Vec<<ET as EngineTypes>::Token>; 9]
We (can) reuse an array of Token vectors for macro arguments and reuse it to avoid frequent memory allocations.
This method provides such an array. If it is not pushed to the mouth using
push_macro_exp,
later, it should be given back to the mouth using return_args later.Sourceยงfn return_args(&mut self, exp: [Vec<<ET as EngineTypes>::Token>; 9])
fn return_args(&mut self, exp: [Vec<<ET as EngineTypes>::Token>; 9])
Return the array of Token vectors to the mouth. Should only be called with an array that was previously obtained
using
get_args.Sourceยงfn endinput(
&mut self,
aux: &mut EngineAux<ET>,
state: &<ET as EngineTypes>::State,
) -> Result<(), InvalidCharacter<<ET as EngineTypes>::Char>>
fn endinput( &mut self, aux: &mut EngineAux<ET>, state: &<ET as EngineTypes>::State, ) -> Result<(), InvalidCharacter<<ET as EngineTypes>::Char>>
Sourceยงfn line_number(&self) -> usize
fn line_number(&self) -> usize
The current line number in the top-most file in the
Mouth.Sourceยงfn push_macro_exp(&mut self, exp: MacroExpansion<<ET as EngineTypes>::Token>)
fn push_macro_exp(&mut self, exp: MacroExpansion<<ET as EngineTypes>::Token>)
Push a
MacroExpansion (with arguments already read) to the Mouth. The Mouth will return the Tokens lazily,
resolving the parameter tokens in the expansion in the process.Sourceยงfn push_slice_rev(&mut self, exp: &[<ET as EngineTypes>::Token])
fn push_slice_rev(&mut self, exp: &[<ET as EngineTypes>::Token])
Sourceยงfn push_string(&mut self, s: StringLineSource<<ET as EngineTypes>::Char>)
fn push_string(&mut self, s: StringLineSource<<ET as EngineTypes>::Char>)
Sourceยงfn requeue(&mut self, t: <ET as EngineTypes>::Token)
fn requeue(&mut self, t: <ET as EngineTypes>::Token)
Push a
Token back to the Mouth. This is useful for e.g. \futurelet, \expandafter, or when
reading keywords, numbers, dimensions, etc. that often read โtoo far aheadโ and need to back up.
This method should not be called directly, but rather through EngineReferences::requeue
or Gullet::requeue.Sourceยงfn push_file(&mut self, f: <ET as EngineTypes>::File)
fn push_file(&mut self, f: <ET as EngineTypes>::File)
Sourceยงfn get_next(
&mut self,
aux: &mut EngineAux<ET>,
state: &<ET as EngineTypes>::State,
) -> Result<Option<<ET as EngineTypes>::Token>, InvalidCharacter<<ET as EngineTypes>::Char>>
fn get_next( &mut self, aux: &mut EngineAux<ET>, state: &<ET as EngineTypes>::State, ) -> Result<Option<<ET as EngineTypes>::Token>, InvalidCharacter<<ET as EngineTypes>::Char>>
Get the next
Token from the Mouth.
This method should not be called directly, but rather through EngineReferences::get_next
or Gullet::get_next_opt. Read moreSourceยงfn iterate<R, E, F>(
&mut self,
aux: &mut EngineAux<ET>,
state: &<ET as EngineTypes>::State,
cont: F,
eof: E,
) -> Result<R, TeXError<ET>>where
F: FnMut(&mut EngineAux<ET>, <ET as EngineTypes>::Token) -> Result<Option<R>, TeXError<ET>>,
E: Fn(&EngineAux<ET>, &<ET as EngineTypes>::State, &mut DefaultMouth<ET>) -> Result<(), TeXError<ET>>,
fn iterate<R, E, F>(
&mut self,
aux: &mut EngineAux<ET>,
state: &<ET as EngineTypes>::State,
cont: F,
eof: E,
) -> Result<R, TeXError<ET>>where
F: FnMut(&mut EngineAux<ET>, <ET as EngineTypes>::Token) -> Result<Option<R>, TeXError<ET>>,
E: Fn(&EngineAux<ET>, &<ET as EngineTypes>::State, &mut DefaultMouth<ET>) -> Result<(), TeXError<ET>>,
Iterate over the
Tokens in the Mouth until cont returns false. Can be faster than repeatedly calling
get_next_opt, but
blocking both state changes and expanding macros. Useful for e.g. reading macro arguments or the expansion list
in \def.
This method should not be called directly, but rather through EngineReferences::iterate
or Gullet::iterate. Read moreSourceยงfn preview(
&self,
int: &<<ET as EngineTypes>::CSName as CSName<<ET as EngineTypes>::Char>>::Handler,
cc: &<<ET as EngineTypes>::Char as Character>::CharMap<CategoryCode>,
esc: Option<<ET as EngineTypes>::Char>,
) -> String
fn preview( &self, int: &<<ET as EngineTypes>::CSName as CSName<<ET as EngineTypes>::Char>>::Handler, cc: &<<ET as EngineTypes>::Char as Character>::CharMap<CategoryCode>, esc: Option<<ET as EngineTypes>::Char>, ) -> String
For debugging purposes, this method returns a string representation of the upcoming stuff in the
Mouth.Sourceยงfn read_until_endgroup<E, F>(
&mut self,
aux: &mut EngineAux<ET>,
state: &<ET as EngineTypes>::State,
cont: F,
eof: E,
) -> Result<<ET as EngineTypes>::Token, TeXError<ET>>
fn read_until_endgroup<E, F>( &mut self, aux: &mut EngineAux<ET>, state: &<ET as EngineTypes>::State, cont: F, eof: E, ) -> Result<<ET as EngineTypes>::Token, TeXError<ET>>
Convenience method reading
Tokens in the Mouth until the next EndGroup
Token is encountered and returns that. Useful whenever a group is to be taken; e.g. when reading macro arguments.
This method should not be called directly, but rather through EngineReferences::read_until_endgroup
or Gullet::read_until_endgroup. Read moreAuto Trait Implementationsยง
impl<ET> Freeze for DefaultMouth<ET>where
Vec<TokenSource<<ET as EngineTypes>::Token, <ET as EngineTypes>::File>>: Freeze,
Option<[Vec<<ET as EngineTypes>::Token>; 9]>: Freeze,
Vec<SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>>: Freeze,
Vec<Vec<<ET as EngineTypes>::Token>>: Freeze,
impl<ET> RefUnwindSafe for DefaultMouth<ET>where
Vec<TokenSource<<ET as EngineTypes>::Token, <ET as EngineTypes>::File>>: RefUnwindSafe,
Option<[Vec<<ET as EngineTypes>::Token>; 9]>: RefUnwindSafe,
Vec<SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>>: RefUnwindSafe,
Vec<Vec<<ET as EngineTypes>::Token>>: RefUnwindSafe,
impl<ET> Send for DefaultMouth<ET>where
Vec<TokenSource<<ET as EngineTypes>::Token, <ET as EngineTypes>::File>>: Send,
Option<[Vec<<ET as EngineTypes>::Token>; 9]>: Send,
Vec<SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>>: Send,
Vec<Vec<<ET as EngineTypes>::Token>>: Send,
impl<ET> Sync for DefaultMouth<ET>where
Vec<TokenSource<<ET as EngineTypes>::Token, <ET as EngineTypes>::File>>: Sync,
Option<[Vec<<ET as EngineTypes>::Token>; 9]>: Sync,
Vec<SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>>: Sync,
Vec<Vec<<ET as EngineTypes>::Token>>: Sync,
impl<ET> Unpin for DefaultMouth<ET>where
Vec<TokenSource<<ET as EngineTypes>::Token, <ET as EngineTypes>::File>>: Unpin,
Option<[Vec<<ET as EngineTypes>::Token>; 9]>: Unpin,
Vec<SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>>: Unpin,
Vec<Vec<<ET as EngineTypes>::Token>>: Unpin,
impl<ET> UnsafeUnpin for DefaultMouth<ET>where
Vec<TokenSource<<ET as EngineTypes>::Token, <ET as EngineTypes>::File>>: UnsafeUnpin,
Option<[Vec<<ET as EngineTypes>::Token>; 9]>: UnsafeUnpin,
Vec<SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>>: UnsafeUnpin,
Vec<Vec<<ET as EngineTypes>::Token>>: UnsafeUnpin,
impl<ET> UnwindSafe for DefaultMouth<ET>where
Vec<TokenSource<<ET as EngineTypes>::Token, <ET as EngineTypes>::File>>: UnwindSafe,
Option<[Vec<<ET as EngineTypes>::Token>; 9]>: UnwindSafe,
Vec<SourceReference<<<ET as EngineTypes>::File as File>::SourceRefID>>: UnwindSafe,
Vec<Vec<<ET as EngineTypes>::Token>>: UnwindSafe,
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
ยงimpl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
ยงfn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.ยงfn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.ยงfn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Anyโs vtable from &Traitโs.ยงfn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Anyโs vtable from &mut Traitโs.ยงimpl<T> DowncastSend for T
impl<T> DowncastSend for T
ยงimpl<T> DowncastSync for T
impl<T> DowncastSync for T
ยงimpl<E, T, Request, Encoding> FromReq<Patch<Encoding>, Request, E> for Twhere
Request: Req<E> + Send + 'static,
Encoding: Decodes<T>,
E: FromServerFnError,
impl<E, T, Request, Encoding> FromReq<Patch<Encoding>, Request, E> for Twhere
Request: Req<E> + Send + 'static,
Encoding: Decodes<T>,
E: FromServerFnError,
ยงimpl<E, T, Request, Encoding> FromReq<Post<Encoding>, Request, E> for Twhere
Request: Req<E> + Send + 'static,
Encoding: Decodes<T>,
E: FromServerFnError,
impl<E, T, Request, Encoding> FromReq<Post<Encoding>, Request, E> for Twhere
Request: Req<E> + Send + 'static,
Encoding: Decodes<T>,
E: FromServerFnError,
ยงimpl<E, T, Request, Encoding> FromReq<Put<Encoding>, Request, E> for Twhere
Request: Req<E> + Send + 'static,
Encoding: Decodes<T>,
E: FromServerFnError,
impl<E, T, Request, Encoding> FromReq<Put<Encoding>, Request, E> for Twhere
Request: Req<E> + Send + 'static,
Encoding: Decodes<T>,
E: FromServerFnError,
ยงimpl<E, Encoding, Response, T> FromRes<Patch<Encoding>, Response, E> for Twhere
Response: ClientRes<E> + Send,
Encoding: Decodes<T>,
E: FromServerFnError,
impl<E, Encoding, Response, T> FromRes<Patch<Encoding>, Response, E> for Twhere
Response: ClientRes<E> + Send,
Encoding: Decodes<T>,
E: FromServerFnError,
ยงimpl<E, Encoding, Response, T> FromRes<Post<Encoding>, Response, E> for Twhere
Response: ClientRes<E> + Send,
Encoding: Decodes<T>,
E: FromServerFnError,
impl<E, Encoding, Response, T> FromRes<Post<Encoding>, Response, E> for Twhere
Response: ClientRes<E> + Send,
Encoding: Decodes<T>,
E: FromServerFnError,
ยงimpl<E, Encoding, Response, T> FromRes<Put<Encoding>, Response, E> for Twhere
Response: ClientRes<E> + Send,
Encoding: Decodes<T>,
E: FromServerFnError,
impl<E, Encoding, Response, T> FromRes<Put<Encoding>, Response, E> for Twhere
Response: ClientRes<E> + Send,
Encoding: Decodes<T>,
E: FromServerFnError,
impl<T> Fruit for Twhere
T: Send + Downcast,
ยงimpl<T> Instrument for T
impl<T> Instrument for T
ยงfn instrument(self, span: Span) -> Instrumented<Self> โ
fn instrument(self, span: Span) -> Instrumented<Self> โ
ยง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> โ
Converts
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> โ
Converts
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<ET, Err, A> IntoErr<ET, Err> for Awhere
ET: EngineTypes,
Err: From<A>,
impl<ET, Err, A> IntoErr<ET, Err> for Awhere
ET: EngineTypes,
Err: From<A>,
ยงimpl<E, T, Encoding, Request> IntoReq<Patch<Encoding>, Request, E> for Twhere
Request: ClientReq<E>,
Encoding: Encodes<T>,
E: FromServerFnError,
impl<E, T, Encoding, Request> IntoReq<Patch<Encoding>, Request, E> for Twhere
Request: ClientReq<E>,
Encoding: Encodes<T>,
E: FromServerFnError,
ยงimpl<E, T, Encoding, Request> IntoReq<Post<Encoding>, Request, E> for Twhere
Request: ClientReq<E>,
Encoding: Encodes<T>,
E: FromServerFnError,
impl<E, T, Encoding, Request> IntoReq<Post<Encoding>, Request, E> for Twhere
Request: ClientReq<E>,
Encoding: Encodes<T>,
E: FromServerFnError,
ยงimpl<E, T, Encoding, Request> IntoReq<Put<Encoding>, Request, E> for Twhere
Request: ClientReq<E>,
Encoding: Encodes<T>,
E: FromServerFnError,
impl<E, T, Encoding, Request> IntoReq<Put<Encoding>, Request, E> for Twhere
Request: ClientReq<E>,
Encoding: Encodes<T>,
E: FromServerFnError,
ยงimpl<E, Response, Encoding, T> IntoRes<Patch<Encoding>, Response, E> for T
impl<E, Response, Encoding, T> IntoRes<Patch<Encoding>, Response, E> for T
ยงimpl<E, Response, Encoding, T> IntoRes<Post<Encoding>, Response, E> for T
impl<E, Response, Encoding, T> IntoRes<Post<Encoding>, Response, E> for T
ยงimpl<E, Response, Encoding, T> IntoRes<Put<Encoding>, Response, E> for T
impl<E, Response, Encoding, T> IntoRes<Put<Encoding>, Response, E> for T
ยงimpl<D> OwoColorize for D
impl<D> OwoColorize for D
ยงfn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Set the foreground color generically Read more
ยงfn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Set the background color generically. Read more
ยงfn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Change the background color to magenta
ยงfn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Change the foreground color to the terminal default
ยงfn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Change the background color to the terminal default
ยงfn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Change the foreground color to bright black
ยงfn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Change the background color to bright black
ยงfn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Change the foreground color to bright red
ยงfn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Change the background color to bright red
ยงfn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Change the foreground color to bright green
ยงfn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Change the background color to bright green
ยงfn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Change the foreground color to bright yellow
ยงfn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Change the background color to bright yellow
ยงfn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Change the foreground color to bright blue
ยงfn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Change the background color to bright blue
ยงfn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright magenta
ยงfn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright magenta
ยงfn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright purple
ยงfn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright purple
ยงfn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Change the foreground color to bright cyan
ยงfn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Change the background color to bright cyan
ยงfn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Change the foreground color to bright white
ยงfn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Change the background color to bright white
ยงfn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Make the text blink (but fast!)
Hide the text
ยงfn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Cross out the text
ยงfn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
Set the foreground color at runtime. Only use if you do not know which color will be used at
compile-time. If the color is constant, use either [
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read moreยงfn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
Set the background color at runtime. Only use if you do not know what color to use at
compile-time. If the color is constant, use either [
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read moreยงfn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the foreground color to a specific RGB value.
ยงfn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the background color to a specific RGB value.
ยงfn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Sets the foreground color to an RGB value.
ยงfn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Sets the background color to an RGB value.
ยงfn if_supports_color<'a, Out, ApplyFn>(
&'a self,
stream: impl Into<Stream>,
apply: ApplyFn,
) -> SupportsColorsDisplay<'a, Self, Out, ApplyFn>where
ApplyFn: Fn(&'a Self) -> Out,
fn if_supports_color<'a, Out, ApplyFn>(
&'a self,
stream: impl Into<Stream>,
apply: ApplyFn,
) -> SupportsColorsDisplay<'a, Self, Out, ApplyFn>where
ApplyFn: Fn(&'a Self) -> Out,
Available on crate feature
supports-colors only.Apply a given transformation function to all formatters if the given stream
supports at least basic ANSI colors, allowing you to conditionally apply
given styles/colors. Read more
ยงimpl<T> Pointable for T
impl<T> Pointable for T
ยงimpl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
ยงimpl<T> SerializableKey for T
impl<T> SerializableKey for T
ยงimpl<T> StorageAccess<T> for T
impl<T> StorageAccess<T> for T
ยงfn as_borrowed(&self) -> &T
fn as_borrowed(&self) -> &T
Borrows the value.
ยงfn into_taken(self) -> T
fn into_taken(self) -> T
Takes the value.