forge_fmt::formatter

Struct Transaction

Source
struct Transaction<'f, 'a, W> {
    fmt: &'f mut Formatter<'a, W>,
    buffer: String,
    comments: Comments,
}
Expand description

An action which may be committed to a Formatter

Fields§

§fmt: &'f mut Formatter<'a, W>§buffer: String§comments: Comments

Implementations§

Source§

impl<'f, 'a, W: Write> Transaction<'f, 'a, W>

Source

fn new( fmt: &'f mut Formatter<'a, W>, fun: impl FnMut(&mut Formatter<'a, W>) -> Result<(), FormatterError>, ) -> Result<Self, FormatterError>

Create a new transaction from a callback

Source

fn commit(self) -> Result<String, FormatterError>

Commit the transaction to the Formatter

Methods from Deref<Target = Formatter<'a, W>>§

Source

fn buf(&mut self) -> &mut dyn Write

Get the Write interface of the current temp buffer or the underlying Write

Source

unsafe fn buf_contents(&self) -> &String

Casts the current writer w as a String reference. Should only be used for debugging.

Source

unsafe fn temp_buf_contents(&self) -> &String

Casts the current W writer or the current temp buffer as a String reference. Should only be used for debugging.

Source

fn indent(&mut self, delta: usize)

Source

fn dedent(&mut self, delta: usize)

Source

fn start_group(&mut self)

Source

fn end_group(&mut self)

Source

fn create_temp_buf(&self) -> FormatBuffer<String>

Source

fn restrict_to_single_line(&mut self, restricted: bool)

Source

fn current_line_len(&self) -> usize

Source

fn total_indent_len(&self) -> usize

Source

fn is_beginning_of_line(&self) -> bool

Source

fn last_char(&self) -> Option<char>

Source

fn last_indent_group_skipped(&self) -> bool

Source

fn set_last_indent_group_skipped(&mut self, skip: bool)

Source

fn write_raw(&mut self, s: impl AsRef<str>) -> Result

Source

fn with_temp_buf( &mut self, fun: impl FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<FormatBuffer<String>, FormatterError>

Do the callback within the context of a temp buffer

Source

fn next_char_needs_space(&self, next_char: char) -> bool

Does the next written character require whitespace before

Source

fn will_it_fit(&self, text: impl AsRef<str>) -> bool

Is length of the text with respect to already written line <= config.line_length

Source

fn write_empty_brackets(&mut self) -> Result<(), FormatterError>

Write empty brackets with respect to config.bracket_spacing setting: "{ }" if true, "{}" if false

Source

fn write_semicolon(&mut self) -> Result<(), FormatterError>

Write semicolon to the buffer

Source

fn write_whitespace_separator( &mut self, multiline: bool, ) -> Result<(), FormatterError>

Write whitespace separator to the buffer "\n" if multiline is true, " " if false

Source

fn write_preserved_line(&mut self) -> Result<(), FormatterError>

Write new line with preserved last_indent_group_skipped flag

Source

fn write_raw_src(&mut self, loc: Loc) -> Result<(), FormatterError>

Write unformatted src and comments for given location.

Source

fn blank_lines(&self, start: usize, end: usize) -> usize

Returns number of blank lines in source between two byte indexes

Source

fn find_next_line(&self, byte_offset: usize) -> Option<usize>

Get the byte offset of the next line

Source

fn find_next_in_src(&self, byte_offset: usize, needle: char) -> Option<usize>

Find the next instance of the character in source excluding comments

Source

fn find_next_str_in_src( &self, byte_offset: usize, needle: &str, ) -> Option<usize>

Find the start of the next instance of a slice in source

Source

fn extend_loc_until(&self, loc: &mut Loc, needle: char) -> bool

Extends the location to the next instance of a character. Returns true if the loc was extended

Source

fn should_attempt_block_single_line( &mut self, stmt: &mut Statement, start_from: usize, ) -> bool

Return the flag whether the attempt should be made to write the block on a single line. If the block style is configured to SingleLineBlockStyle::Preserve, lookup whether there was a newline introduced in [start_from, end_at] range where end_at is the start of the block.

Source

fn chunk_at( &mut self, byte_offset: usize, next_byte_offset: Option<usize>, needs_space: Option<bool>, content: impl Display, ) -> Chunk

Create a chunk given a string and the location information

Source

fn chunked( &mut self, byte_offset: usize, next_byte_offset: Option<usize>, fun: impl FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<Chunk, FormatterError>

Create a chunk given a callback

Source

fn chunked_mono( &mut self, byte_offset: usize, next_byte_offset: Option<usize>, fun: &mut dyn FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<Chunk, FormatterError>

Source

fn visit_to_chunk( &mut self, byte_offset: usize, next_byte_offset: Option<usize>, visitable: &mut impl Visitable, ) -> Result<Chunk, FormatterError>

Create a chunk given a Visitable item

Source

fn items_to_chunks<'b>( &mut self, next_byte_offset: Option<usize>, items: impl Iterator<Item = (Loc, &'b mut (impl Visitable + 'b))> + 'b, ) -> Result<Vec<Chunk>, FormatterError>

Transform Visitable items to the list of chunks

Source

fn items_to_chunks_sorted<'b>( &mut self, next_byte_offset: Option<usize>, items: impl Iterator<Item = &'b mut (impl Visitable + CodeLocation + Ord + 'b)> + 'b, ) -> Result<Vec<Chunk>, FormatterError>

Transform Visitable items to a list of chunks and then sort those chunks.

Source

fn write_comment( &mut self, comment: &CommentWithMetadata, is_first: bool, ) -> Result<(), FormatterError>

Write a comment to the buffer formatted. WARNING: This may introduce a newline if the comment is a Line comment or if the comment are wrapped

Source

fn write_prefix_comment( &mut self, comment: &CommentWithMetadata, is_first: bool, ) -> Result<(), FormatterError>

Write a comment with position CommentPosition::Prefix

Source

fn write_postfix_comment( &mut self, comment: &CommentWithMetadata, ) -> Result<(), FormatterError>

Write a comment with position CommentPosition::Postfix

Source

fn write_doc_block_line( &mut self, comment: &CommentWithMetadata, line: &str, ) -> Result<(), FormatterError>

Write the line of a doc block comment line

Source

fn write_comment_line( &mut self, comment: &CommentWithMetadata, line: &str, ) -> Result<bool, FormatterError>

Write a comment line that might potentially overflow the maximum line length and, if configured, will be wrapped to the next line.

Source

fn write_raw_comment( &mut self, comment: &CommentWithMetadata, ) -> Result<(), FormatterError>

Write a raw comment. This is like write_comment but won’t do any formatting or worry about whitespace behind the comment.

Source

fn write_comments<'b>( &mut self, comments: impl IntoIterator<Item = &'b CommentWithMetadata>, ) -> Result<(), FormatterError>

Write multiple comments

Source

fn write_postfix_comments_before( &mut self, byte_end: usize, ) -> Result<(), FormatterError>

Write a postfix comments before a given location

Source

fn write_prefix_comments_before( &mut self, byte_end: usize, ) -> Result<(), FormatterError>

Write all prefix comments before a given location

Source

fn will_chunk_fit( &mut self, format_string: &str, chunk: &Chunk, ) -> Result<bool, FormatterError>

Check if a chunk will fit on the current line

Source

fn are_chunks_separated_multiline<'b>( &mut self, format_string: &str, items: impl IntoIterator<Item = &'b Chunk>, separator: &str, ) -> Result<bool, FormatterError>

Check if a separated list of chunks will fit on the current line

Source

fn write_chunk(&mut self, chunk: &Chunk) -> Result<(), FormatterError>

Write the chunk and any surrounding comments into the buffer This will automatically add whitespace before the chunk given the rule set in next_char_needs_space. If the chunk does not fit on the current line it will be put on to the next line

Source

fn write_chunks_separated<'b>( &mut self, chunks: impl IntoIterator<Item = &'b Chunk>, separator: &str, multiline: bool, ) -> Result<(), FormatterError>

Write chunks separated by a separator. If multiline, each chunk will be written to a separate line

Source

fn indented( &mut self, delta: usize, fun: impl FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<(), FormatterError>

Apply the callback indented by the indent size

Source

fn indented_if( &mut self, condition: bool, delta: usize, fun: impl FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<(), FormatterError>

Apply the callback indented by the indent size if the condition is true

Source

fn grouped( &mut self, fun: impl FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<bool, FormatterError>

Apply the callback into an indent group. The first line of the indent group is not indented but lines thereafter are

Source

fn with_function_context( &mut self, context: FunctionDefinition, fun: impl FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<(), FormatterError>

Add a function context around a procedure and revert the context at the end of the procedure regardless of the response

Source

fn with_contract_context( &mut self, context: ContractDefinition, fun: impl FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<(), FormatterError>

Add a contract context around a procedure and revert the context at the end of the procedure regardless of the response

Source

fn transact<'b>( &'b mut self, fun: impl FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<Transaction<'b, 'a, W>, FormatterError>

Create a transaction. The result of the transaction is not applied to the buffer unless Transacton::commit is called

Source

fn simulate_to_string( &mut self, fun: impl FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<String, FormatterError>

Do the callback and return the result on the buffer as a string

Source

fn chunk_to_string(&mut self, chunk: &Chunk) -> Result<String, FormatterError>

Turn a chunk and its surrounding comments into a string

Source

fn simulate_to_single_line( &mut self, fun: impl FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<Option<String>, FormatterError>

Try to create a string based on a callback. If the string does not fit on a single line this will return None

Source

fn try_on_single_line( &mut self, fun: impl FnMut(&mut Self) -> Result<(), FormatterError>, ) -> Result<bool, FormatterError>

Try to apply a callback to a single line. If the callback cannot be applied to a single line the callback will not be applied to the buffer and false will be returned. Otherwise true will be returned

Source

fn surrounded( &mut self, first: SurroundingChunk, last: SurroundingChunk, fun: impl FnMut(&mut Self, bool) -> Result<(), FormatterError>, ) -> Result<(), FormatterError>

Surrounds a callback with parentheses. The callback will try to be applied to a single line. If the callback cannot be applied to a single line the callback will applied to the nextline indented. The callback receives a multiline hint as the second argument which receives true in the latter case

Source

fn write_lined_visitable<'b, I, V, F>( &mut self, loc: Loc, items: I, needs_space_fn: F, ) -> Result<(), FormatterError>
where I: Iterator<Item = &'b mut V> + 'b, V: Visitable + CodeLocation + 'b, F: Fn(&V, &V) -> bool,

Write each Visitable item on a separate line. The function will check if there are any blank lines between each visitable statement and will apply a single blank line if there exists any. The needs_space callback can force a newline and is given the last_item if any and the next item as arguments

Source

fn visit_assignment( &mut self, expr: &mut Expression, ) -> Result<(), FormatterError>

Visit the right side of an assignment. The function will try to write the assignment on a single line or indented on the next line. If it can’t do this it resorts to letting the expression decide how to split itself on multiple lines

Source

fn visit_list<T>( &mut self, prefix: &str, items: &mut [T], start_offset: Option<usize>, end_offset: Option<usize>, paren_required: bool, ) -> Result<(), FormatterError>

Visit the list of comma separated items. If the prefix is not empty, then the function will write the whitespace before the parentheses (if they are required).

Source

fn visit_block<T>( &mut self, loc: Loc, statements: &mut [T], attempt_single_line: bool, attempt_omit_braces: bool, ) -> Result<bool, FormatterError>

Visit the block item. Attempt to write it on the single line if requested. Surround by curly braces and indent each line otherwise. Returns true if the block fit on a single line

Source

fn visit_stmt_as_block( &mut self, stmt: &mut Statement, attempt_single_line: bool, ) -> Result<bool, FormatterError>

Visit statement as Statement::Block.

Source

fn visit_member_access<'b, T, M>( &mut self, expr: &'b mut Box<T>, ident: &mut Identifier, matcher: M, ) -> Result<(), FormatterError>
where T: CodeLocation + Visitable, M: FnMut(&mut Self, &'b mut Box<T>) -> Result<Option<(&'b mut Box<T>, &'b mut Identifier)>, FormatterError>,

Visit the generic member access expression and attempt flatten it by checking if the inner expression matches a given member access variant.

Source

fn visit_yul_string_with_ident( &mut self, loc: Loc, val: &str, ident: &mut Option<Identifier>, ) -> Result<(), FormatterError>

Visit the yul string with an optional identifier. If the identifier is present, write the value in the format <val>:<ident>.

Ref: https://docs.soliditylang.org/en/v0.8.15/yul.html#variable-declarations

Source

fn quote_str(&self, loc: Loc, prefix: Option<&str>, string: &str) -> String

Format a quoted string as prefix"string" where the quote character is handled by the configuration quote_style

Source

fn write_quoted_str( &mut self, loc: Loc, prefix: Option<&str>, string: &str, ) -> Result<(), FormatterError>

Write a quoted string. See Formatter::quote_str for more information

Source

fn write_num_literal( &mut self, loc: Loc, value: &str, fractional: Option<&str>, exponent: &str, unit: &mut Option<Identifier>, ) -> Result<(), FormatterError>

Write and format numbers. This will fix underscores as well as remove unnecessary 0’s and exponents

Source

fn write_hex_literal(&mut self, lit: &HexLiteral) -> Result<(), FormatterError>

Write and hex literals according to the configuration.

Source

fn write_unit( &mut self, unit: &mut Option<Identifier>, ) -> Result<(), FormatterError>

Write built-in unit.

Source

fn write_function_header( &mut self, func: &mut FunctionDefinition, body_loc: Option<Loc>, header_multiline: bool, ) -> Result<bool, FormatterError>

Write the function header

Source

fn write_if_stmt( &mut self, loc: Loc, cond: &mut Expression, if_branch: &mut Box<Statement>, else_branch: &mut Option<Box<Statement>>, ) -> Result<(), FormatterError>

Write potentially nested if statements

Source

fn sort_imports(&self, source_unit: &mut SourceUnit)

Sorts grouped import statement alphabetically.

Trait Implementations§

Source§

impl<'a, W> Deref for Transaction<'_, 'a, W>

Source§

type Target = Formatter<'a, W>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<W> DerefMut for Transaction<'_, '_, W>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<'f, 'a, W> Freeze for Transaction<'f, 'a, W>

§

impl<'f, 'a, W> RefUnwindSafe for Transaction<'f, 'a, W>
where W: RefUnwindSafe,

§

impl<'f, 'a, W> Send for Transaction<'f, 'a, W>
where W: Send,

§

impl<'f, 'a, W> Sync for Transaction<'f, 'a, W>
where W: Sync,

§

impl<'f, 'a, W> Unpin for Transaction<'f, 'a, W>

§

impl<'f, 'a, W> !UnwindSafe for Transaction<'f, 'a, W>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T, R> CollectAndApply<T, R> for T

§

fn collect_and_apply<I, F>(iter: I, f: F) -> R
where I: Iterator<Item = T>, F: FnOnce(&[T]) -> R,

Equivalent to f(&iter.collect::<Vec<_>>()).

§

type Output = R

§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
§

impl<T> Paint for T
where T: ?Sized,

§

fn fg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the foreground set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like red() and green(), which have the same functionality but are pithier.

§Example

Set foreground color to white using fg():

use yansi::{Paint, Color};

painted.fg(Color::White);

Set foreground color to white using white().

use yansi::Paint;

painted.white();
§

fn primary(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Primary].

§Example
println!("{}", value.primary());
§

fn fixed(&self, color: u8) -> Painted<&T>

Returns self with the fg() set to [Color::Fixed].

§Example
println!("{}", value.fixed(color));
§

fn rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the fg() set to [Color::Rgb].

§Example
println!("{}", value.rgb(r, g, b));
§

fn black(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Black].

§Example
println!("{}", value.black());
§

fn red(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Red].

§Example
println!("{}", value.red());
§

fn green(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Green].

§Example
println!("{}", value.green());
§

fn yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Yellow].

§Example
println!("{}", value.yellow());
§

fn blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Blue].

§Example
println!("{}", value.blue());
§

fn magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Magenta].

§Example
println!("{}", value.magenta());
§

fn cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Cyan].

§Example
println!("{}", value.cyan());
§

fn white(&self) -> Painted<&T>

Returns self with the fg() set to [Color::White].

§Example
println!("{}", value.white());
§

fn bright_black(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightBlack].

§Example
println!("{}", value.bright_black());
§

fn bright_red(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightRed].

§Example
println!("{}", value.bright_red());
§

fn bright_green(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightGreen].

§Example
println!("{}", value.bright_green());
§

fn bright_yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightYellow].

§Example
println!("{}", value.bright_yellow());
§

fn bright_blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightBlue].

§Example
println!("{}", value.bright_blue());
§

fn bright_magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightMagenta].

§Example
println!("{}", value.bright_magenta());
§

fn bright_cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightCyan].

§Example
println!("{}", value.bright_cyan());
§

fn bright_white(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightWhite].

§Example
println!("{}", value.bright_white());
§

fn bg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the background set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like on_red() and on_green(), which have the same functionality but are pithier.

§Example

Set background color to red using fg():

use yansi::{Paint, Color};

painted.bg(Color::Red);

Set background color to red using on_red().

use yansi::Paint;

painted.on_red();
§

fn on_primary(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Primary].

§Example
println!("{}", value.on_primary());
§

fn on_fixed(&self, color: u8) -> Painted<&T>

Returns self with the bg() set to [Color::Fixed].

§Example
println!("{}", value.on_fixed(color));
§

fn on_rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the bg() set to [Color::Rgb].

§Example
println!("{}", value.on_rgb(r, g, b));
§

fn on_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Black].

§Example
println!("{}", value.on_black());
§

fn on_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Red].

§Example
println!("{}", value.on_red());
§

fn on_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Green].

§Example
println!("{}", value.on_green());
§

fn on_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Yellow].

§Example
println!("{}", value.on_yellow());
§

fn on_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Blue].

§Example
println!("{}", value.on_blue());
§

fn on_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Magenta].

§Example
println!("{}", value.on_magenta());
§

fn on_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Cyan].

§Example
println!("{}", value.on_cyan());
§

fn on_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color::White].

§Example
println!("{}", value.on_white());
§

fn on_bright_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightBlack].

§Example
println!("{}", value.on_bright_black());
§

fn on_bright_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightRed].

§Example
println!("{}", value.on_bright_red());
§

fn on_bright_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightGreen].

§Example
println!("{}", value.on_bright_green());
§

fn on_bright_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightYellow].

§Example
println!("{}", value.on_bright_yellow());
§

fn on_bright_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightBlue].

§Example
println!("{}", value.on_bright_blue());
§

fn on_bright_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightMagenta].

§Example
println!("{}", value.on_bright_magenta());
§

fn on_bright_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightCyan].

§Example
println!("{}", value.on_bright_cyan());
§

fn on_bright_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightWhite].

§Example
println!("{}", value.on_bright_white());
§

fn attr(&self, value: Attribute) -> Painted<&T>

Enables the styling [Attribute] value.

This method should be used rarely. Instead, prefer to use attribute-specific builder methods like bold() and underline(), which have the same functionality but are pithier.

§Example

Make text bold using attr():

use yansi::{Paint, Attribute};

painted.attr(Attribute::Bold);

Make text bold using using bold().

use yansi::Paint;

painted.bold();
§

fn bold(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Bold].

§Example
println!("{}", value.bold());
§

fn dim(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Dim].

§Example
println!("{}", value.dim());
§

fn italic(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Italic].

§Example
println!("{}", value.italic());
§

fn underline(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Underline].

§Example
println!("{}", value.underline());

Returns self with the attr() set to [Attribute::Blink].

§Example
println!("{}", value.blink());

Returns self with the attr() set to [Attribute::RapidBlink].

§Example
println!("{}", value.rapid_blink());
§

fn invert(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Invert].

§Example
println!("{}", value.invert());
§

fn conceal(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Conceal].

§Example
println!("{}", value.conceal());
§

fn strike(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Strike].

§Example
println!("{}", value.strike());
§

fn quirk(&self, value: Quirk) -> Painted<&T>

Enables the yansi [Quirk] value.

This method should be used rarely. Instead, prefer to use quirk-specific builder methods like mask() and wrap(), which have the same functionality but are pithier.

§Example

Enable wrapping using .quirk():

use yansi::{Paint, Quirk};

painted.quirk(Quirk::Wrap);

Enable wrapping using wrap().

use yansi::Paint;

painted.wrap();
§

fn mask(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Mask].

§Example
println!("{}", value.mask());
§

fn wrap(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Wrap].

§Example
println!("{}", value.wrap());
§

fn linger(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Linger].

§Example
println!("{}", value.linger());
§

fn clear(&self) -> Painted<&T>

👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear(). The clear() method will be removed in a future release.

Returns self with the quirk() set to [Quirk::Clear].

§Example
println!("{}", value.clear());
§

fn resetting(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Resetting].

§Example
println!("{}", value.resetting());
§

fn bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Bright].

§Example
println!("{}", value.bright());
§

fn on_bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::OnBright].

§Example
println!("{}", value.on_bright());
§

fn whenever(&self, value: Condition) -> Painted<&T>

Conditionally enable styling based on whether the [Condition] value applies. Replaces any previous condition.

See the crate level docs for more details.

§Example

Enable styling painted only when both stdout and stderr are TTYs:

use yansi::{Paint, Condition};

painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);
§

fn new(self) -> Painted<Self>
where Self: Sized,

Create a new [Painted] with a default [Style]. Read more
§

fn paint<S>(&self, style: S) -> Painted<&Self>
where S: Into<Style>,

Apply a style wholesale to self. Any previous style is replaced. Read more
§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where 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: 96 bytes