anvil::config

Struct NodeConfig

Source
pub struct NodeConfig {
Show 50 fields pub chain_id: Option<u64>, pub gas_limit: Option<u128>, pub disable_block_gas_limit: bool, pub gas_price: Option<u128>, pub base_fee: Option<u64>, pub disable_min_priority_fee: bool, pub blob_excess_gas_and_price: Option<BlobExcessGasAndPrice>, pub hardfork: Option<ChainHardfork>, pub genesis_accounts: Vec<PrivateKeySigner>, pub genesis_balance: U256, pub genesis_timestamp: Option<u64>, pub signer_accounts: Vec<PrivateKeySigner>, pub block_time: Option<Duration>, pub no_mining: bool, pub mixed_mining: bool, pub port: u16, pub max_transactions: usize, pub eth_rpc_url: Option<String>, pub fork_choice: Option<ForkChoice>, pub fork_headers: Vec<String>, pub fork_chain_id: Option<U256>, pub account_generator: Option<AccountGenerator>, pub enable_tracing: bool, pub no_storage_caching: bool, pub server_config: ServerConfig, pub host: Vec<IpAddr>, pub transaction_order: TransactionOrder, pub config_out: Option<PathBuf>, pub genesis: Option<Genesis>, pub fork_request_timeout: Duration, pub fork_request_retries: u32, pub fork_retry_backoff: Duration, pub compute_units_per_second: u64, pub ipc_path: Option<Option<String>>, pub enable_steps_tracing: bool, pub print_logs: bool, pub enable_auto_impersonate: bool, pub code_size_limit: Option<usize>, pub prune_history: PruneStateHistoryConfig, pub max_persisted_states: Option<usize>, pub init_state: Option<SerializableState>, pub transaction_block_keeper: Option<usize>, pub disable_default_create2_deployer: bool, pub enable_optimism: bool, pub slots_in_an_epoch: u64, pub memory_limit: Option<u64>, pub precompile_factory: Option<Arc<dyn PrecompileFactory>>, pub odyssey: bool, pub silent: bool, pub cache_path: Option<PathBuf>,
}
Expand description

Configurations of the EVM node

Fields§

§chain_id: Option<u64>

Chain ID of the EVM chain

§gas_limit: Option<u128>

Default gas limit for all txs

§disable_block_gas_limit: bool

If set to true, disables the block gas limit

§gas_price: Option<u128>

Default gas price for all txs

§base_fee: Option<u64>

Default base fee

§disable_min_priority_fee: bool

If set to true, disables the enforcement of a minimum suggested priority fee

§blob_excess_gas_and_price: Option<BlobExcessGasAndPrice>

Default blob excess gas and price

§hardfork: Option<ChainHardfork>

The hardfork to use

§genesis_accounts: Vec<PrivateKeySigner>

Signer accounts that will be initialised with genesis_balance in the genesis block

§genesis_balance: U256

Native token balance of every genesis account in the genesis block

§genesis_timestamp: Option<u64>

Genesis block timestamp

§signer_accounts: Vec<PrivateKeySigner>

Signer accounts that can sign messages/transactions from the EVM node

§block_time: Option<Duration>

Configured block time for the EVM chain. Use None to mine a new block for every tx

§no_mining: bool

Disable auto, interval mining mode uns use MiningMode::None instead

§mixed_mining: bool

Enables auto and interval mining mode

§port: u16

port to use for the server

§max_transactions: usize

maximum number of transactions in a block

§eth_rpc_url: Option<String>

url of the rpc server that should be used for any rpc calls

§fork_choice: Option<ForkChoice>

pins the block number or transaction hash for the state fork

§fork_headers: Vec<String>

headers to use with eth_rpc_url

§fork_chain_id: Option<U256>

specifies chain id for cache to skip fetching from remote in offline-start mode

§account_generator: Option<AccountGenerator>

The generator used to generate the dev accounts

§enable_tracing: bool

whether to enable tracing

§no_storage_caching: bool

Explicitly disables the use of RPC caching.

§server_config: ServerConfig

How to configure the server

§host: Vec<IpAddr>

The host the server will listen on

§transaction_order: TransactionOrder

How transactions are sorted in the mempool

§config_out: Option<PathBuf>

Filename to write anvil output as json

§genesis: Option<Genesis>

The genesis to use to initialize the node

§fork_request_timeout: Duration

Timeout in for requests sent to remote JSON-RPC server in forking mode

§fork_request_retries: u32

Number of request retries for spurious networks

§fork_retry_backoff: Duration

The initial retry backoff

§compute_units_per_second: u64

available CUPS

§ipc_path: Option<Option<String>>

The ipc path

§enable_steps_tracing: bool

Enable transaction/call steps tracing for debug calls returning geth-style traces

§print_logs: bool

Enable printing of console.log invocations.

§enable_auto_impersonate: bool

Enable auto impersonation of accounts on startup

§code_size_limit: Option<usize>

Configure the code size limit

§prune_history: PruneStateHistoryConfig

Configures how to remove historic state.

If set to Some(num) keep latest num state in memory only.

§max_persisted_states: Option<usize>

Max number of states cached on disk.

§init_state: Option<SerializableState>

The file where to load the state from

§transaction_block_keeper: Option<usize>

max number of blocks with transactions in memory

§disable_default_create2_deployer: bool

Disable the default CREATE2 deployer

§enable_optimism: bool

Enable Optimism deposit transaction

§slots_in_an_epoch: u64

Slots in an epoch

§memory_limit: Option<u64>

The memory limit per EVM execution in bytes.

§precompile_factory: Option<Arc<dyn PrecompileFactory>>

Factory used by anvil to extend the EVM’s precompiles.

§odyssey: bool

Enable Odyssey features.

§silent: bool

Do not print log messages.

§cache_path: Option<PathBuf>

The path where states are cached.

Implementations§

Source§

impl NodeConfig

Source

fn as_string(&self, fork: Option<&ClientFork>) -> String

Source

fn as_json(&self, fork: Option<&ClientFork>) -> Value

Source§

impl NodeConfig

Source

pub fn empty_state() -> Self

Returns a new config which does not initialize any accounts on node startup.

Source§

impl NodeConfig

Source

pub fn with_memory_limit(self, mems_value: Option<u64>) -> Self

Returns the memory limit of the node

Source

pub fn get_base_fee(&self) -> u64

Returns the base fee to use

Source

pub fn get_gas_price(&self) -> u128

Returns the base fee to use

Source

pub fn get_blob_excess_gas_and_price(&self) -> BlobExcessGasAndPrice

Source

pub fn get_hardfork(&self) -> ChainHardfork

Returns the hardfork to use

Source

pub fn with_code_size_limit(self, code_size_limit: Option<usize>) -> Self

Sets a custom code size limit

Source

pub fn disable_code_size_limit(self, disable_code_size_limit: bool) -> Self

Disables code size limit

Source

pub fn with_init_state(self, init_state: Option<SerializableState>) -> Self

Sets the init state if any

Source

pub fn with_init_state_path(self, path: impl AsRef<Path>) -> Self

Loads the init state from a file if it exists

Source

pub fn with_chain_id<U: Into<u64>>(self, chain_id: Option<U>) -> Self

Sets the chain ID

Source

pub fn get_chain_id(&self) -> u64

Returns the chain ID to use

Source

pub fn set_chain_id(&mut self, chain_id: Option<impl Into<u64>>)

Sets the chain id and updates all wallets

Source

pub fn with_gas_limit(self, gas_limit: Option<u128>) -> Self

Sets the gas limit

Source

pub fn disable_block_gas_limit(self, disable_block_gas_limit: bool) -> Self

Disable block gas limit check

If set to true block gas limit will not be enforced

Source

pub fn with_gas_price(self, gas_price: Option<u128>) -> Self

Sets the gas price

Source

pub fn set_pruned_history(self, prune_history: Option<Option<usize>>) -> Self

Sets prune history status.

Source

pub fn with_max_persisted_states<U: Into<usize>>( self, max_persisted_states: Option<U>, ) -> Self

Sets max number of states to cache on disk.

Source

pub fn with_transaction_block_keeper<U: Into<usize>>( self, transaction_block_keeper: Option<U>, ) -> Self

Sets max number of blocks with transactions to keep in memory

Source

pub fn with_base_fee(self, base_fee: Option<u64>) -> Self

Sets the base fee

Source

pub fn disable_min_priority_fee(self, disable_min_priority_fee: bool) -> Self

Disable the enforcement of a minimum suggested priority fee

Source

pub fn with_genesis(self, genesis: Option<Genesis>) -> Self

Sets the init genesis (genesis.json)

Source

pub fn get_genesis_timestamp(&self) -> u64

Returns the genesis timestamp to use

Source

pub fn with_genesis_timestamp<U: Into<u64>>(self, timestamp: Option<U>) -> Self

Sets the genesis timestamp

Source

pub fn with_hardfork(self, hardfork: Option<ChainHardfork>) -> Self

Sets the hardfork

Source

pub fn with_genesis_accounts(self, accounts: Vec<PrivateKeySigner>) -> Self

Sets the genesis accounts

Source

pub fn with_signer_accounts(self, accounts: Vec<PrivateKeySigner>) -> Self

Sets the signer accounts

Source

pub fn with_account_generator(self, generator: AccountGenerator) -> Self

Sets both the genesis accounts and the signer accounts so that genesis_accounts == accounts

Source

pub fn with_genesis_balance<U: Into<U256>>(self, balance: U) -> Self

Sets the balance of the genesis accounts in the genesis block

Source

pub fn with_blocktime<D: Into<Duration>>(self, block_time: Option<D>) -> Self

Sets the block time to automine blocks

Source

pub fn with_mixed_mining<D: Into<Duration>>( self, mixed_mining: bool, block_time: Option<D>, ) -> Self

Source

pub fn with_no_mining(self, no_mining: bool) -> Self

If set to true auto mining will be disabled

Source

pub fn with_slots_in_an_epoch(self, slots_in_an_epoch: u64) -> Self

Sets the slots in an epoch

Source

pub fn with_port(self, port: u16) -> Self

Sets the port to use

Source

pub fn with_ipc(self, ipc_path: Option<Option<String>>) -> Self

Sets the ipc path to use

Note: this is a double Option for - None -> no ipc - Some(None) -> use default path - Some(Some(path)) -> use custom path

Source

pub fn set_config_out(self, config_out: Option<PathBuf>) -> Self

Sets the file path to write the Anvil node’s config info to.

Source

pub fn no_storage_caching(self) -> Self

Disables storage caching

Source

pub fn with_storage_caching(self, storage_caching: bool) -> Self

Source

pub fn with_eth_rpc_url<U: Into<String>>(self, eth_rpc_url: Option<U>) -> Self

Sets the eth_rpc_url to use when forking

Source

pub fn with_fork_block_number<U: Into<u64>>( self, fork_block_number: Option<U>, ) -> Self

Sets the fork_choice to use to fork off from based on a block number

Source

pub fn with_fork_transaction_hash<U: Into<TxHash>>( self, fork_transaction_hash: Option<U>, ) -> Self

Sets the fork_choice to use to fork off from based on a transaction hash

Source

pub fn with_fork_choice<U: Into<ForkChoice>>( self, fork_choice: Option<U>, ) -> Self

Sets the fork_choice to use to fork off from

Source

pub fn with_fork_chain_id(self, fork_chain_id: Option<U256>) -> Self

Sets the fork_chain_id to use to fork off local cache from

Source

pub fn with_fork_headers(self, headers: Vec<String>) -> Self

Sets the fork_headers to use with eth_rpc_url

Source

pub fn fork_request_timeout( self, fork_request_timeout: Option<Duration>, ) -> Self

Sets the fork_request_timeout to use for requests

Source

pub fn fork_request_retries(self, fork_request_retries: Option<u32>) -> Self

Sets the fork_request_retries to use for spurious networks

Source

pub fn fork_retry_backoff(self, fork_retry_backoff: Option<Duration>) -> Self

Sets the initial fork_retry_backoff for rate limits

Source

pub fn fork_compute_units_per_second( self, compute_units_per_second: Option<u64>, ) -> Self

Sets the number of assumed available compute units per second

See also, https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second

Source

pub fn with_tracing(self, enable_tracing: bool) -> Self

Sets whether to enable tracing

Source

pub fn with_steps_tracing(self, enable_steps_tracing: bool) -> Self

Sets whether to enable steps tracing

Source

pub fn with_print_logs(self, print_logs: bool) -> Self

Sets whether to print console.log invocations to stdout.

Source

pub fn with_auto_impersonate(self, enable_auto_impersonate: bool) -> Self

Sets whether to enable autoImpersonate

Source

pub fn with_server_config(self, config: ServerConfig) -> Self

Source

pub fn with_host(self, host: Vec<IpAddr>) -> Self

Sets the host the server will listen on

Source

pub fn with_transaction_order(self, transaction_order: TransactionOrder) -> Self

Source

pub fn get_ipc_path(&self) -> Option<String>

Returns the ipc path for the ipc endpoint if any

Source

pub fn print(&self, fork: Option<&ClientFork>) -> Result<()>

Prints the config info

Source

pub fn block_cache_path(&self, block: u64) -> Option<PathBuf>

Returns the path where the cache file should be stored

See also Config::foundry_block_cache_file()

Source

pub fn with_optimism(self, enable_optimism: bool) -> Self

Sets whether to enable optimism support

Source

pub fn with_disable_default_create2_deployer(self, yes: bool) -> Self

Sets whether to disable the default create2 deployer

Source

pub fn with_precompile_factory( self, factory: impl PrecompileFactory + 'static, ) -> Self

Injects precompiles to anvil’s EVM.

Source

pub fn with_odyssey(self, odyssey: bool) -> Self

Sets whether to enable Odyssey support

Source

pub fn silent(self) -> Self

Makes the node silent to not emit anything on stdout

Source

pub fn set_silent(self, silent: bool) -> Self

Source

pub fn with_cache_path(self, cache_path: Option<PathBuf>) -> Self

Sets the path where states are cached

Source

pub(crate) async fn setup(&mut self) -> Result<Backend>

Configures everything related to env, backend and database and returns the Backend

Note: only memory based backend for now

Source

pub async fn setup_fork_db( &mut self, eth_rpc_url: String, env: &mut EnvWithHandlerCfg, fees: &FeeManager, ) -> Result<(Arc<TokioRwLock<Box<dyn Db>>>, Option<ClientFork>)>

Configures everything related to forking based on the passed eth_rpc_url:

Source

pub async fn setup_fork_db_config( &mut self, eth_rpc_url: String, env: &mut EnvWithHandlerCfg, fees: &FeeManager, ) -> Result<(ForkedDatabase, ClientForkConfig)>

Configures everything related to forking based on the passed eth_rpc_url:

Source

pub(crate) fn fork_gas_limit<T: TransactionResponse, H: BlockHeader>( &self, block: &Block<T, H>, ) -> u128

we only use the gas limit value of the block if it is non-zero and the block gas limit is enabled, since there are networks where this is not used and is always 0x0 which would inevitably result in OutOfGas errors as soon as the evm is about to record gas, See also https://github.com/foundry-rs/foundry/issues/3247

Source

pub(crate) fn gas_limit(&self) -> u128

Returns the gas limit for a non forked anvil instance

Checks the config for the disable_block_gas_limit flag

Trait Implementations§

Source§

impl Clone for NodeConfig

Source§

fn clone(&self) -> NodeConfig

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NodeConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for NodeConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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
Source§

impl<T> DynClone for T
where T: Clone,

§

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> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

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

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
§

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

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryClone for T
where T: Clone,

§

fn try_clone(&self) -> Result<T, Error>

Clones self, possibly returning an error.
§

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: 1920 bytes