pub struct EvmOpts {Show 32 fields
pub env: Env,
pub fork_url: Option<String>,
pub fork_block_number: Option<u64>,
pub fork_state_by_number: bool,
pub fork_retries: Option<u32>,
pub fork_retry_backoff: Option<u64>,
pub fork_headers: Option<Vec<String>>,
pub rpc_jwt: Option<String>,
pub rpc_headers: Option<Vec<String>>,
pub rpc_timeout: Option<u64>,
pub rpc_accept_invalid_certs: bool,
pub rpc_no_proxy: bool,
pub compute_units_per_second: Option<u64>,
pub no_rpc_rate_limit: bool,
pub no_storage_caching: bool,
pub no_fork_bal: bool,
pub initial_balance: Uint<256, 4>,
pub sender: Address,
pub ffi: bool,
pub always_use_create_2_factory: bool,
pub verbosity: u8,
pub memory_limit: u64,
pub isolate: bool,
pub disable_block_gas_limit: bool,
pub enable_tx_gas_limit: bool,
pub networks: NetworkConfigs,
pub create2_deployer: Address,
pub fork_endpoint: Option<ForkEndpointIdentity>,
pub expected_fork_endpoint: Option<ForkEndpointIdentity>,
pub fork_network_is_inferred: bool,
pub fork_chain_id_is_inferred: bool,
pub fork_block_number_is_inferred: bool,
}Expand description
EVM execution options, including the configured remote fork.
Fork handling separates two responsibilities. Endpoint discovery identifies and caches the execution family without selecting a block. Exact resolution binds the configured source and selector to a block number, hash, and endpoint context. Forge normally performs discovery before resolution, while callers that already know the network can resolve directly.
Resolution revalidates the endpoint identity around its remote reads. A cached discovery that
found no Anvil identity has nothing to revalidate and is reused instead, so the chain ID and
the anvil_nodeInfo probe of such an endpoint are requested once, by discovery.
An implicit latest selector remains unchanged in these options; only the returned
Fork is pinned to the exact block observed during resolution.
Fields§
§env: EnvThe EVM environment configuration.
fork_url: Option<String>Fetch state over a remote instead of starting from empty state.
fork_block_number: Option<u64>Pins the block number for the state fork.
fork_state_by_number: boolFetch fork state by block number for RPCs that cannot serve it by hash.
fork_retries: Option<u32>The number of retries.
fork_retry_backoff: Option<u64>Initial retry backoff.
fork_headers: Option<Vec<String>>Headers to use with fork_url
rpc_jwt: Option<String>JWT secret to use with the configured RPC endpoint.
rpc_headers: Option<Vec<String>>Headers to use with the configured RPC endpoint.
rpc_timeout: Option<u64>Request timeout to use with the configured RPC endpoint.
rpc_accept_invalid_certs: boolWhether to accept invalid certificates from the configured RPC endpoint.
rpc_no_proxy: boolWhether to disable automatic proxy detection for the configured RPC endpoint.
compute_units_per_second: Option<u64>The available compute units per second.
See also https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second
no_rpc_rate_limit: boolDisables RPC rate limiting entirely.
no_storage_caching: boolDisables storage caching entirely.
no_fork_bal: boolDisables parent-block BAL cache prewarming for transaction-hash forks.
initial_balance: Uint<256, 4>The initial balance of each deployed test contract.
sender: AddressThe address which will be executing all tests.
ffi: boolEnables the FFI cheatcode.
always_use_create_2_factory: boolUse the create 2 factory in all cases including tests and non-broadcasting scripts.
verbosity: u8Verbosity mode of EVM output as number of occurrences.
memory_limit: u64The memory limit per EVM execution in bytes.
If this limit is exceeded, a MemoryLimitOOG result is thrown.
isolate: boolWhether to enable isolation of calls.
disable_block_gas_limit: boolWhether to disable block gas limit checks.
enable_tx_gas_limit: boolWhether to enable tx gas limit checks as imposed by Osaka (EIP-7825).
networks: NetworkConfigsNetworks with enabled features.
create2_deployer: AddressThe CREATE2 deployer’s address.
fork_endpoint: Option<ForkEndpointIdentity>Most recently discovered endpoint identity, cached for network dispatch and revalidation.
An identity without Anvil metadata also stands in for later identity snapshots of the same endpoint.
expected_fork_endpoint: Option<ForkEndpointIdentity>Endpoint identity promoted to an invariant that later discovery must match.
fork_network_is_inferred: boolWhether the active network selection was inferred from the fork endpoint.
fork_chain_id_is_inferred: boolWhether env.chain_id was inferred from the fork endpoint.
fork_block_number_is_inferred: boolWhether fork_block_number was pinned from the fork endpoint’s latest block.
Implementations§
Source§impl EvmOpts
impl EvmOpts
Sourcepub fn set_fork_url(&mut self, fork_url: String)
pub fn set_fork_url(&mut self, fork_url: String)
Selects a new fork URL and clears endpoint-derived state from the previous source.
Sourcepub fn invalidate_fork_endpoint_if_source_changed(
&mut self,
fork: &Fork,
) -> bool
pub fn invalidate_fork_endpoint_if_source_changed( &mut self, fork: &Fork, ) -> bool
Invalidates endpoint-derived state when the effective RPC source changed since fork was
resolved.
The effective source consists of the URL, active headers, and JWT. Explicit block, network, and chain-ID selections are retained so the new source is resolved under the same user configuration.
Sourcepub fn set_explicit_network(&mut self, network: NetworkVariant)
pub fn set_explicit_network(&mut self, network: NetworkVariant)
Applies an explicit network override, replacing any endpoint-inferred selection.
Sourcepub fn expect_fork_endpoint(
&mut self,
identity: ForkEndpointIdentity,
network_is_inferred: bool,
)
pub fn expect_fork_endpoint( &mut self, identity: ForkEndpointIdentity, network_is_inferred: bool, )
Requires subsequent local fork construction to use this exact endpoint identity.
Sourcepub async fn pin_fork_block(&mut self) -> Result<Option<u64>, Report>
pub async fn pin_fork_block(&mut self) -> Result<Option<u64>, Report>
Converts an implicit latest selector into a block-number selector in place.
This only reads the endpoint’s current block number; it does not resolve a block hash or
endpoint identity and is therefore not a reorg-safe fork snapshot. Create a
Backend when preflight and execution must share an exact
identity.
Sourcepub fn fork_provider_with_url<N>(
&self,
fork_url: &str,
) -> Result<RootProvider<N>, Report>where
N: Network,
pub fn fork_provider_with_url<N>(
&self,
fork_url: &str,
) -> Result<RootProvider<N>, Report>where
N: Network,
Returns a RootProvider for the given fork URL configured with options in self and
annotated Network type.
Sourcepub async fn infer_network_from_fork(&mut self) -> Result<(), Report>
pub async fn infer_network_from_fork(&mut self) -> Result<(), Report>
Discovers and caches the network configuration and endpoint identity for a fork.
This is the dispatch phase of fork setup: explicit network selections are preserved, while
inferred chain and network settings are applied when no override exists. The method does not
resolve or pin a fork block; block resolution happens during backend creation or through
Self::env_with_fork_context. Repeated calls only inspect the endpoint again as
described by Self::fork_endpoint_identity.
Sourcepub async fn discover_fork_endpoint(
&self,
) -> Result<ForkEndpointIdentity, Report>
pub async fn discover_fork_endpoint( &self, ) -> Result<ForkEndpointIdentity, Report>
Discovers a stable identity snapshot without selecting a fork block.
Each attempt reads eth_chainId and the optional Anvil identity methods before and after,
and returns only when both snapshots agree. Before Anvil is positively identified, a failed
anvil_nodeInfo probe is treated as absence of optional Anvil identity information: the
identity then depends on the chain ID alone and is returned from the first snapshot without
a confirming one. Later probe failures are strict. This method does not mutate or cache the
returned identity in self.
Sourcepub async fn fork_endpoint_identity(
&self,
) -> Result<ForkEndpointIdentity, Report>
pub async fn fork_endpoint_identity( &self, ) -> Result<ForkEndpointIdentity, Report>
Returns the identity of the configured fork endpoint, inspecting it only when necessary.
A cached discovery that found no Anvil identity is returned without new requests. Anvil
endpoints and endpoints without a cached discovery are inspected through
Self::discover_fork_endpoint, so a reset or execution-profile change of an Anvil
endpoint is still observed.
Sourcepub async fn env_with_fork_context<SPEC, BLOCK, TX>(
&self,
) -> Result<(EvmEnv<SPEC, BLOCK>, TX, Option<ForkContext>), Report>where
SPEC: Into<SpecId> + Default + Copy,
BLOCK: FoundryBlock + Default,
TX: FoundryTransaction + Default,
pub async fn env_with_fork_context<SPEC, BLOCK, TX>(
&self,
) -> Result<(EvmEnv<SPEC, BLOCK>, TX, Option<ForkContext>), Report>where
SPEC: Into<SpecId> + Default + Copy,
BLOCK: FoundryBlock + Default,
TX: FoundryTransaction + Default,
Returns standalone execution environments and the remote source context, if any.
Execution workflows with a backend use its selected block through Backend::env.
Sourcepub fn get_fork(
&self,
config: &Config,
chain_id: u64,
fork_block_number: Option<u64>,
) -> Option<CreateFork>
pub fn get_fork( &self, config: &Config, chain_id: u64, fork_block_number: Option<u64>, ) -> Option<CreateFork>
Helper function that returns the CreateFork to use, if any.
storage caching for the CreateFork will be enabled if
fork_urlis presentfork_block_numberis presentStorageCachingConfigallows thefork_url+ source chain ID pair- storage is allowed (
no_storage_caching = false)
If all these criteria are met, then storage caching is enabled and storage info will be
written to <Config::foundry_cache_dir()>/<str(chainid)>/<block>/storage.json.
for mainnet and --fork-block-number 14435000 on mac the corresponding storage cache will
be at ~/.foundry/cache/mainnet/14435000/storage.json.
fork_block_number is the actual block number to pin the fork to. This must be the
real chain block number, not a remapped value. On some L2s (e.g., Arbitrum)
block_env.number is remapped to the L1 block number, so callers must pass the
block number in the context returned by EvmOpts::env_with_fork_context instead.
RPC storage caching uses the source chain ID of the discovered fork endpoint. Discover the
endpoint first, for example with EvmOpts::infer_network_from_fork. Without it,
chain_id decides caching.
Sourcepub async fn get_remote_chain_id(&self) -> Option<Chain>
pub async fn get_remote_chain_id(&self) -> Option<Chain>
Returns the chain ID from the RPC, if any.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for EvmOpts
impl<'de> Deserialize<'de> for EvmOpts
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<EvmOpts, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<EvmOpts, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for EvmOpts
impl Serialize for EvmOpts
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for EvmOpts
impl RefUnwindSafe for EvmOpts
impl Send for EvmOpts
impl Sync for EvmOpts
impl Unpin for EvmOpts
impl UnsafeUnpin for EvmOpts
impl UnwindSafe for EvmOpts
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
impl<'de, T> BorrowedRpcObject<'de> for Twhere
T: RpcBorrow<'de> + RpcSend,
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<T> Conv for T
impl<T> Conv for T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
§fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
TxEnv from a transaction and a sender address.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].impl<T> MaybeCompact for T
impl<T> MaybeSerde for Twhere
T: Serialize + for<'de> Deserialize<'de>,
§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,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
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,
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>
§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>
§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
§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>
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
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 bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
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>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
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 rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
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 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.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
§fn whenever(&self, value: Condition) -> Painted<&T>
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);§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
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) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
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
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
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
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
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
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§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<'de, T> RpcBorrow<'de> for T
impl<T> RpcObject for Twhere
T: RpcSend + RpcRecv,
impl<T> RpcRecv for T
impl<T> RpcSend for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.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
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.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
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> Threaded<T> for T
impl<T> Threaded<T> for T
§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 816 bytes