Skip to main content

TestArgs

Struct TestArgs 

Source
pub struct TestArgs {
Show 120 fields fuzz_only: FuzzOnlyMode, pub(crate) showmap_override: Option<ShowmapConfig>, pub(crate) fuzz_failure_replay: bool, pub(crate) invariant_runs_override: Option<u64>, pub(crate) invariant_timeout_override: Option<u32>, pub global: GlobalArgs, pub path: Option<GlobMatcher>, debug: bool, debug_layout: Option<DebuggerLayout>, flamegraph: bool, flamechart: bool, evm_profile: Option<EvmProfileFormat>, no_open: bool, decode_internal: bool, dump: Option<PathBuf>, gas_report: bool, gas_snapshot_check: Option<bool>, gas_snapshot_emit: Option<bool>, allow_failure: bool, suppress_successful_traces: bool, trace_depth: Option<usize>, pub junit: bool, pub fail_fast: bool, etherscan_api_key: Option<String>, list: bool, pub fuzz_seed: Option<U256>, pub fuzz_runs: Option<u64>, pub invariant_workers: Option<InvariantWorkers>, pub fuzz_run: Option<u32>, pub fuzz_worker: Option<u32>, pub fuzz_timeout: Option<u64>, pub fuzz_dictionary_weight: Option<u32>, pub fuzz_dictionary_addresses: Option<String>, pub fuzz_dictionary_values: Option<String>, pub fuzz_dictionary_literals: Option<String>, pub fuzz_corpus_random_sequence_weight: Option<u32>, pub fuzz_corpus_dir: Option<PathBuf>, pub fuzz_frontier_dir: Option<PathBuf>, pub fuzz_frontier_limit: Option<usize>, pub fuzz_payable_value_weight: Option<u32>, pub fuzz_mutation_weight_splice: Option<u32>, pub fuzz_mutation_weight_repeat: Option<u32>, pub fuzz_mutation_weight_interleave: Option<u32>, pub fuzz_mutation_weight_prefix: Option<u32>, pub fuzz_mutation_weight_suffix: Option<u32>, pub fuzz_mutation_weight_abi: Option<u32>, pub fuzz_mutation_weight_cmp: Option<u32>, pub fuzz_input_file: Option<String>, pub invariant_depth: Option<u32>, pub invariant_min_depth: Option<u32>, pub invariant_depth_mode: Option<InvariantDepthMode>, pub invariant_dictionary_weight: Option<u32>, pub invariant_dictionary_addresses: Option<String>, pub invariant_dictionary_values: Option<String>, pub invariant_dictionary_literals: Option<String>, pub invariant_corpus_random_sequence_weight: Option<u32>, pub invariant_corpus_dir: Option<PathBuf>, pub invariant_payable_value_weight: Option<u32>, pub invariant_mutation_weight_splice: Option<u32>, pub invariant_mutation_weight_repeat: Option<u32>, pub invariant_mutation_weight_interleave: Option<u32>, pub invariant_mutation_weight_prefix: Option<u32>, pub invariant_mutation_weight_suffix: Option<u32>, pub invariant_mutation_weight_abi: Option<u32>, pub invariant_mutation_weight_cmp: Option<u32>, pub symbolic: bool, pub replay_symbolic_artifact: Option<PathBuf>, pub emit_regression: bool, pub regression_out: Option<PathBuf>, pub regression_overwrite: bool, pub symbolic_seed_corpus: bool, pub symbolic_use_fuzz_corpus: bool, pub symbolic_corpus_seed_limit: Option<usize>, pub symbolic_use_fuzz_frontiers: bool, pub symbolic_frontier_limit: Option<usize>, pub symbolic_frontier_ids: Option<Vec<u64>>, pub symbolic_frontier_pcs: Option<Vec<usize>>, pub symbolic_frontier_selectors: Option<Vec<String>>, pub symbolic_solver: Option<String>, pub symbolic_solver_command: Option<String>, pub symbolic_solver_portfolio: Option<Vec<String>>, pub symbolic_timeout: Option<u32>, pub symbolic_loop: Option<u32>, pub symbolic_depth: Option<u32>, pub symbolic_width: Option<u32>, pub symbolic_max_depth: Option<u32>, pub symbolic_max_paths: Option<u32>, pub symbolic_invariant_depth: Option<u32>, pub symbolic_max_solver_queries: Option<u32>, pub symbolic_default_dynamic_length: Option<u32>, pub symbolic_max_dynamic_length: Option<u32>, pub symbolic_array_lengths: Option<Vec<u32>>, pub symbolic_max_calldata_bytes: Option<u32>, pub symbolic_call_targets: bool, pub symbolic_dump_smt: bool, pub symbolic_storage_layout: Option<String>, pub show_progress: bool, pub rerun: bool, pub opcodes: Vec<OpCode>, pub summary: bool, pub detailed: bool, pub disable_labels: bool, pub showmap_out: Option<PathBuf>, pub showmap_per_input: bool, pub showmap_domain: ShowmapDomainArg, pub showmap_approach: String, pub showmap_trial: Option<String>, pub showmap_corpus_dir: Option<PathBuf>, filter: FilterArgs, evm: EvmArgs, pub build: BuildOpts, pub watch: WatchArgs, pub mutate: Option<Vec<PathBuf>>, pub mutate_path: Option<GlobMatcher>, pub mutate_contract: Option<Regex>, pub mutation_jobs: Option<usize>, pub mutation_timeout: Option<u32>, pub mutation_optimizer_runs: Option<u32>, pub mutation_via_ir: Option<bool>, pub brutalize: bool,
}
Expand description

CLI arguments for forge test.

Fields§

§fuzz_only: FuzzOnlyMode

Internal mode used by forge fuzz.

§showmap_override: Option<ShowmapConfig>

Internal showmap/replay override used by forge fuzz replay.

§fuzz_failure_replay: bool

Internal mode used by forge fuzz replay to replay persisted fuzz failures.

§invariant_runs_override: Option<u64>

Internal override used by forge fuzz run --runs for invariant campaigns.

§invariant_timeout_override: Option<u32>

Internal override used by forge fuzz run --timeout for invariant campaigns.

§global: GlobalArgs§path: Option<GlobMatcher>

The contract file you want to test, it’s a shortcut for –match-path.

§debug: bool

Run a single test in the debugger.

The matching test will be opened in the debugger regardless of the outcome of the test.

If the matching test is a fuzz test, then it will open the debugger on the first failure case. If the fuzz test does not fail, it will open the debugger on the last fuzz case.

§debug_layout: Option<DebuggerLayout>

Debugger layout to use.

§flamegraph: bool

Generate a flamegraph for a single test. Implies --decode-internal.

A flame graph is used to visualize which functions or operations within the smart contract are consuming the most gas overall in a sorted manner.

§flamechart: bool

Generate a flamechart for a single test. Implies --decode-internal.

A flame chart shows the gas usage over time, illustrating when each function is called (execution order) and how much gas it consumes at each point in the timeline.

§evm_profile: Option<EvmProfileFormat>

Generate an execution profile for a single test.

Creates a profile where each EVM call is recorded with gas consumption. Opens the profile in speedscope.app unless --no-open is passed. Implies --decode-internal.

§no_open: bool

Don’t open the profile in the browser (for --evm-profile).

The profile is saved to disk without starting the local viewer server.

§decode_internal: bool

Identify internal functions in traces.

This will trace internal functions and decode stack parameters.

Parameters stored in memory (such as bytes or arrays) are currently decoded only when a single function is matched, similarly to --debug, for performance reasons.

§dump: Option<PathBuf>

Dumps all debugger steps to file.

§gas_report: bool

Print a gas report.

§gas_snapshot_check: Option<bool>

Check gas snapshots against previous runs.

§gas_snapshot_emit: Option<bool>

Enable/disable recording of gas snapshot results.

§allow_failure: bool

Exit with code 0 even if a test fails.

§suppress_successful_traces: bool

Suppress successful test traces and show only traces for failures.

§trace_depth: Option<usize>

Defines the depth of a trace

§junit: bool

Output test results as JUnit XML report.

§fail_fast: bool

Stop running tests after the first failure.

§etherscan_api_key: Option<String>

The Etherscan (or equivalent) API key.

§list: bool

List tests instead of running them.

§fuzz_seed: Option<U256>

Set seed used to generate randomness during your fuzz runs.

§fuzz_runs: Option<u64>§invariant_workers: Option<InvariantWorkers>

Number of workers to use for invariant test campaigns, or auto to derive from --jobs.

§fuzz_run: Option<u32>

Run only the fuzz case at the given 1-based run index.

§fuzz_worker: Option<u32>

Run the fuzz case from the given worker. Requires --fuzz-run.

§fuzz_timeout: Option<u64>

Timeout for each fuzz run in seconds.

§fuzz_dictionary_weight: Option<u32>

Percent of fuzz calldata generated from the dictionary.

§fuzz_dictionary_addresses: Option<String>

Maximum fuzz dictionary addresses, or max.

§fuzz_dictionary_values: Option<String>

Maximum fuzz dictionary values, or max.

§fuzz_dictionary_literals: Option<String>

Maximum fuzz dictionary literals, or max.

§fuzz_corpus_random_sequence_weight: Option<u32>

Percent chance that coverage-guided fuzzing generates fresh input instead of mutating corpus input.

§fuzz_corpus_dir: Option<PathBuf>

Directory for fuzz corpus persistence.

§fuzz_frontier_dir: Option<PathBuf>

Directory for fuzz branch frontier artifacts.

§fuzz_frontier_limit: Option<usize>

Maximum number of fuzz branch frontier records to write per test.

§fuzz_payable_value_weight: Option<u32>

Percent chance that fuzzed payable calls carry non-zero msg.value.

§fuzz_mutation_weight_splice: Option<u32>

Corpus mutation weight for splice.

§fuzz_mutation_weight_repeat: Option<u32>

Corpus mutation weight for repeat.

§fuzz_mutation_weight_interleave: Option<u32>

Corpus mutation weight for interleave.

§fuzz_mutation_weight_prefix: Option<u32>

Corpus mutation weight for prefix replacement.

§fuzz_mutation_weight_suffix: Option<u32>

Corpus mutation weight for suffix replacement.

§fuzz_mutation_weight_abi: Option<u32>

Corpus mutation weight for ABI argument mutation.

§fuzz_mutation_weight_cmp: Option<u32>

Corpus mutation weight for comparison-operand mutation.

§fuzz_input_file: Option<String>

File to rerun fuzz failures from.

§invariant_depth: Option<u32>

Number of calls executed to try to break invariants in one run.

§invariant_min_depth: Option<u32>

Minimum sampled invariant depth when --invariant-depth-mode random is active.

§invariant_depth_mode: Option<InvariantDepthMode>

How invariant run depth is selected.

§invariant_dictionary_weight: Option<u32>

Percent of invariant calldata/senders generated from the dictionary.

§invariant_dictionary_addresses: Option<String>

Maximum invariant dictionary addresses, or max.

§invariant_dictionary_values: Option<String>

Maximum invariant dictionary values, or max.

§invariant_dictionary_literals: Option<String>

Maximum invariant dictionary literals, or max.

§invariant_corpus_random_sequence_weight: Option<u32>

Percent chance that coverage-guided invariant fuzzing injects fresh calls while extending corpus sequences.

§invariant_corpus_dir: Option<PathBuf>

Directory for invariant corpus persistence.

§invariant_payable_value_weight: Option<u32>

Percent chance that fuzzed payable invariant calls carry non-zero msg.value.

§invariant_mutation_weight_splice: Option<u32>

Corpus mutation weight for splice.

§invariant_mutation_weight_repeat: Option<u32>

Corpus mutation weight for repeat.

§invariant_mutation_weight_interleave: Option<u32>

Corpus mutation weight for interleave.

§invariant_mutation_weight_prefix: Option<u32>

Corpus mutation weight for prefix replacement.

§invariant_mutation_weight_suffix: Option<u32>

Corpus mutation weight for suffix replacement.

§invariant_mutation_weight_abi: Option<u32>

Corpus mutation weight for ABI argument mutation.

§invariant_mutation_weight_cmp: Option<u32>

Corpus mutation weight for comparison-operand mutation.

§symbolic: bool

Run symbolic check*/prove*/invariant*/statefulFuzz* tests.

§replay_symbolic_artifact: Option<PathBuf>

Replay a durable symbolic counterexample artifact emitted by forge test --symbolic.

§emit_regression: bool

Emit Solidity regression tests for confirmed symbolic counterexamples.

§regression_out: Option<PathBuf>

File or directory for generated symbolic regression tests.

§regression_overwrite: bool

Overwrite existing generated symbolic regression tests.

§symbolic_seed_corpus: bool

Run fuzz tests symbolically and persist non-failing concrete inputs to the fuzz corpus.

§symbolic_use_fuzz_corpus: bool

Run fuzz tests symbolically using existing fuzz corpus entries as path-priority hints.

§symbolic_corpus_seed_limit: Option<usize>

Maximum number of fuzz corpus entries to import for one symbolic test.

§symbolic_use_fuzz_frontiers: bool

Run targeted symbolic solving from existing fuzz branch frontier artifacts.

§symbolic_frontier_limit: Option<usize>

Maximum number of fuzz branch frontiers to try for one symbolic test.

§symbolic_frontier_ids: Option<Vec<u64>>

Comma-separated fuzz branch frontier artifact IDs to try.

§symbolic_frontier_pcs: Option<Vec<usize>>

Comma-separated fuzz branch frontier comparison PCs to try.

§symbolic_frontier_selectors: Option<Vec<String>>

Comma-separated fuzz branch frontier calldata selectors to try.

§symbolic_solver: Option<String>

Solver executable used for symbolic tests.

§symbolic_solver_command: Option<String>

Exact solver command used for symbolic tests.

§symbolic_solver_portfolio: Option<Vec<String>>

Comma-separated SMT solver names or commands to race in parallel for symbolic tests.

§symbolic_timeout: Option<u32>

SMT solver timeout in seconds; also bounds symbolic invariant exploration.

§symbolic_loop: Option<u32>

Halmos-compatible symbolic loop bound.

§symbolic_depth: Option<u32>

Halmos-compatible symbolic execution depth alias.

§symbolic_width: Option<u32>

Halmos-compatible symbolic path width alias.

§symbolic_max_depth: Option<u32>

Maximum number of opcodes executed along a symbolic path.

§symbolic_max_paths: Option<u32>

Maximum number of symbolic paths to explore per test.

§symbolic_invariant_depth: Option<u32>

Maximum number of calls in a bounded symbolic invariant sequence.

§symbolic_max_solver_queries: Option<u32>

Maximum number of solver queries per symbolic test.

§symbolic_default_dynamic_length: Option<u32>

Default bounded length for symbolic dynamic ABI inputs.

§symbolic_max_dynamic_length: Option<u32>

Maximum permitted bounded length for symbolic dynamic ABI inputs.

§symbolic_array_lengths: Option<Vec<u32>>

Per-dynamic-input symbolic lengths, applied in ABI traversal order.

§symbolic_max_calldata_bytes: Option<u32>

Maximum symbolic calldata size in bytes.

§symbolic_call_targets: bool

Expand symbolic external call targets over known deployed contracts.

§symbolic_dump_smt: bool

Dump SMT-LIB queries issued by symbolic tests.

§symbolic_storage_layout: Option<String>

Symbolic storage modelling mode.

§show_progress: bool

Show test execution progress.

§rerun: bool

Re-run recorded test failures from last run. If no failure recorded then regular test run is performed.

§opcodes: Vec<OpCode>

Print the given opcodes in trace output, with their gas cost and the storage slot and value, if available.

Accepts a comma-separated list of opcode names, e.g. --opcodes SLOAD,MLOAD,SSTORE. Names are in uppercase. Requires -vvvvv to render.

§summary: bool

Print test summary table.

§detailed: bool

Print detailed test summary table.

§disable_labels: bool

Disables the labels in the traces.

§showmap_out: Option<PathBuf>

Replay the persisted corpus and emit AFL-afl-showmap-style coverage files at the given output directory. Disables the regular fuzz/invariant campaign and skips unit tests.

§showmap_per_input: bool

Emit one showmap file per corpus entry (default: one aggregated file per test).

§showmap_domain: ShowmapDomainArg

Coverage domain(s) to dump.

§showmap_approach: String

Approach name (used as a subdirectory of --showmap-out).

§showmap_trial: Option<String>

Trial identifier embedded in each showmap filename. Defaults to a unique trial-<unix_nanos> so reruns don’t overwrite previous trials.

§showmap_corpus_dir: Option<PathBuf>

Override the corpus directory to replay (defaults to the per-test corpus_dir resolved from config).

§filter: FilterArgs§evm: EvmArgs§build: BuildOpts§watch: WatchArgs§mutate: Option<Vec<PathBuf>>

Enable mutation testing. If passed with file paths, only those files will be tested.

§mutate_path: Option<GlobMatcher>

Specify which files to mutate with glob pattern matching.

Mutually exclusive with passing explicit paths to --mutate; either supply paths to --mutate or use this glob filter, not both.

§mutate_contract: Option<Regex>

Only mutate contracts whose name matches the specified regex pattern.

Mutually exclusive with --mutate-path.

§mutation_jobs: Option<usize>

Number of parallel workers for mutation testing. Defaults to the number of CPU cores.

§mutation_timeout: Option<u32>

Best-effort per-mutant wall-clock timeout in seconds. Mutants that exceed it are recorded as “timed out” and cleanup continues in the background with bounded pending workers.

Analogous to --invariant-timeout for invariant campaigns.

§mutation_optimizer_runs: Option<u32>

Override optimizer runs for mutation testing compile-and-test runs.

§mutation_via_ir: Option<bool>

Override via-ir for mutation testing compile-and-test runs.

§brutalize: bool

Enable brutalization mode.

Catches latent bugs that normal tests miss because the EVM initializes memory to zero and registers to clean values. Applies source-level sanitizers before compiling:

  • Dirties unused bits in sub-256-bit type casts (address, uint8, bytes4, etc.) to catch assembly code that assumes clean upper bits when using legacy codegen. Via-IR may clean these bits before inline assembly observes them.
  • Fills scratch space (0x00-0x3f) and memory beyond the free memory pointer with junk to catch uninitialized memory reads
  • Misaligns the free memory pointer to catch word-alignment assumptions

If forge test passes but forge test --brutalize fails, the code has a robustness issue that could manifest when called in a different context.

Implementations§

Source§

impl TestArgs

Source

pub async fn run(self) -> Result<TestOutcome>

Source

pub(crate) fn ensure_mutation_mode_compatible( &self, coverage: bool, ) -> Result<()>

Source

pub(crate) fn ensure_coverage_mode_compatible(&self) -> Result<()>

Source

fn showmap_config(&self) -> Result<Option<ShowmapConfig>>

Builds a ShowmapConfig from the showmap CLI flags, if --showmap-out is set.

Source

pub(crate) const fn enable_fuzz_only(&mut self)

Restricts this test invocation to fuzz and invariant tests.

Source

pub(crate) const fn enable_fuzz_only_with_auto_fuzz_corpus(&mut self)

Restricts this test invocation to fuzz and invariant tests and enables a default fuzz corpus dir after user config is loaded.

Source

fn apply_auto_fuzz_corpus_dir(&self, config: &mut Config)

Source

pub(crate) fn set_showmap_override(&mut self, showmap: ShowmapConfig)

Overrides showmap config for callers that reuse replay mode without the forge test --showmap-* CLI flags.

Source

pub(crate) fn set_fuzz_minimize_replay_options( &mut self, global: GlobalArgs, evm: EvmArgs, build: BuildOpts, filter: FilterArgs, )

Sets replay-critical options for internal fuzz minimizer callers.

Source

pub(crate) const fn enable_fuzz_failure_replay(&mut self)

Replays persisted fuzz failures without running a new fuzz campaign.

Source

fn warn_unsupported_engine_flags( &self, output: &ProjectCompileOutput, config: &Config, inline_config: &InlineConfig, filter: &ProjectPathsAwareFilter, multi_network: &MultiNetworkConfig, ) -> Result<()>

Source

pub(crate) fn from_fuzz_run(args: FuzzRunArgs) -> Self

Builds the delegated forge test invocation for forge fuzz run.

Source

fn apply_fuzz_run_campaign(&mut self, campaign: CampaignArgs)

Source

fn load_symbolic_artifact_replay( &self, ) -> Result<Option<SymbolicArtifactReplayConfig>>

Source

fn get_sources_to_compile( &self, config: &Config, test_filter: &ProjectPathsAwareFilter, inline_config: Option<Arc<InlineConfig>>, symbolic_artifact_replay: Option<&SymbolicArtifactReplayConfig>, ) -> Result<(BTreeSet<PathBuf>, Option<Arc<InlineConfig>>)>

Returns a list of files that need to be compiled in order to run all the tests that match the given filter.

For filtered runs, this includes all configured source files, non-test artifacts outside script-only paths, and runnable tests that match the filter. Non-test artifacts remain available because tests may resolve them dynamically through cheatcodes.

Source

pub async fn compile_and_run(&mut self) -> Result<TestOutcome>

Executes all the tests in the project.

This will trigger the build process first. On success all test contracts that match the configured filter will be executed

Returns the test results for all matching tests.

Source

async fn compile_and_run_brutalized(&mut self) -> Result<TestOutcome>

Compile and run tests with brutalization applied to source files.

Source

async fn compile_project(&mut self) -> Result<CompiledTestProject>

Source

pub(crate) async fn prepare_fuzz_minimize_replay( &mut self, corpus_dir: &Path, ) -> Result<FuzzMinimizeReplaySession>

Source

pub(crate) async fn run_tests( &mut self, project_root: &Path, config: Config, evm_opts: EvmOpts, output: &ProjectCompileOutput, filter: &ProjectPathsAwareFilter, execution: TestExecutionOptions, ) -> Result<TestOutcome>

Executes all the tests in the project.

See Self::compile_and_run for more details.

Source

async fn build_and_run_tests<FEN: FoundryEvmNetwork>( &self, config: Config, evm_opts: EvmOpts, output: &ProjectCompileOutput, filter: &mut ProjectPathsAwareFilter, execution: TestExecutionOptions, ) -> Result<(Libraries, TestOutcome)>

Build the test runner and execute tests for a specific network type.

Source

async fn build_fuzz_minimize_runner<FEN: FoundryEvmNetwork>( &self, config: Config, evm_opts: EvmOpts, output: &ProjectCompileOutput, options: FuzzMinimizeNetworkPassOptions, ) -> Result<MultiContractRunner<FEN>>

Source

async fn dispatch_network( &self, dispatch_opts: &EvmOpts, config: Config, evm_opts: EvmOpts, output: &ProjectCompileOutput, filter: &mut ProjectPathsAwareFilter, execution: TestExecutionOptions, ) -> Result<(Libraries, TestOutcome)>

Dispatches build_and_run_tests to the correct network type based on evm_opts.networks.

Source

async fn dispatch_fuzz_minimize_network( &self, dispatch_opts: &EvmOpts, config: Config, evm_opts: EvmOpts, output: &ProjectCompileOutput, options: FuzzMinimizeNetworkPassOptions, filter: &ProjectPathsAwareFilter, ) -> Result<FuzzMinimizeReplayPass>

Source

fn symbolic_regression_config( &self, config: &Config, ) -> Option<SymbolicRegressionConfig>

Source

async fn run_tests_inner<FEN: FoundryEvmNetwork>( &self, runner: MultiContractRunner<FEN>, config: Arc<Config>, verbosity: u8, filter: &mut ProjectPathsAwareFilter, output: &ProjectCompileOutput, ) -> Result<TestOutcome>

Run all tests that matches the filter predicate from a test runner

Source

pub fn filter(&self, config: &Config) -> Result<ProjectPathsAwareFilter>

Returns the flattened FilterArgs arguments merged with [Config]. Loads and applies filter from file if only last test run failures performed.

Source

fn filter_with_rerun_failures( &self, config: &Config, loaded_rerun_failures: Option<LastRunFailures>, ) -> Result<ProjectPathsAwareFilter>

Source

pub const fn is_watch(&self) -> bool

Returns whether BuildArgs was configured with --watch

Source

pub(crate) fn watchexec_config(&self) -> Result<Config>

Returns the [watchexec::Config] necessary to bootstrap a new watch loop.

Trait Implementations§

Source§

impl Args for TestArgs

Source§

fn group_id() -> Option<Id>

Report the [ArgGroup::id][crate::ArgGroup::id] for this set of arguments
Source§

fn augment_args<'b>(__clap_app: Command) -> Command

Append to [Command] so it can instantiate Self via [FromArgMatches::from_arg_matches_mut] Read more
Source§

fn augment_args_for_update<'b>(__clap_app: Command) -> Command

Append to [Command] so it can instantiate self via [FromArgMatches::update_from_arg_matches_mut] Read more
Source§

impl Clone for TestArgs

Source§

fn clone(&self) -> TestArgs

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl CommandFactory for TestArgs

Source§

fn command<'b>() -> Command

Build a [Command] that can instantiate Self. Read more
Source§

fn command_for_update<'b>() -> Command

Build a [Command] that can update self. Read more
Source§

impl Debug for TestArgs

Source§

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

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

impl Default for TestArgs

Source§

fn default() -> TestArgs

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

impl<'a> From<&'a TestArgs> for Figment

Source§

fn from(args: &'a TestArgs) -> Self

Converts to this type from the input type.
Source§

impl FromArgMatches for TestArgs

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from [ArgMatches], parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

impl Parser for TestArgs

§

fn parse() -> Self

Parse from std::env::args_os(), [exit][Error::exit] on error.
§

fn try_parse() -> Result<Self, Error>

Parse from std::env::args_os(), return Err on error.
§

fn parse_from<I, T>(itr: I) -> Self
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Parse from iterator, [exit][Error::exit] on error.
§

fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Parse from iterator, return Err on error.
§

fn update_from<I, T>(&mut self, itr: I)
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Update from iterator, [exit][Error::exit] on error. Read more
§

fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,

Update from iterator, return Err on error.
Source§

impl Provider for TestArgs

Source§

fn metadata(&self) -> Metadata

Returns the [Metadata] for this provider, identifying itself and its configuration sources.
Source§

fn data(&self) -> Result<Map<Profile, Dict>, Error>

Returns the configuration data.
§

fn profile(&self) -> Option<Profile>

Optionally returns a profile to set on the Figment this provider is merged into. The profile is only set if self is merged.

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ErasedDestructor for T
where T: 'static,

§

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<TxEnv, T> FromRecoveredTx<&T> for TxEnv
where TxEnv: FromRecoveredTx<T>,

§

fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv

Builds a TxEnv from a transaction and a sender address.
§

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<TxEnv, T> FromTxWithEncoded<&T> for TxEnv
where TxEnv: FromTxWithEncoded<T>,

§

fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv

Builds a TxEnv from a transaction, its sender, and encoded transaction bytes.
§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

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.

§

impl<B> IntoBlock<B> for B
where B: Clone + Send,

§

fn into_block(self) -> B

Convert this cached block into the underlying block type.
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> IntoRequest<T> for T

§

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<L> LayerExt<L> for L

§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in [Layered].
§

impl<T> LoadConfig for T
where Figment: for<'a> From<&'a T>,

§

fn figment(&self) -> Figment

Load the [Config] based on the options provided in self.
§

fn load_config(&self) -> Result<Config, ExtractConfigError>

Load and sanitize the [Config] based on the options provided in self.
§

fn load_config_no_warnings(&self) -> Result<Config, ExtractConfigError>

Same as [LoadConfig::load_config] but does not emit warnings.
§

fn load_config_unsanitized(&self) -> Result<Config, ExtractConfigError>

Load [Config] but do not sanitize. See [Config::sanitized] for more information.
§

fn load_config_unsanitized_no_warnings( &self, ) -> Result<Config, ExtractConfigError>

Same as [LoadConfig::load_config_unsanitized] but also emits warnings generated
§

fn load_config_and_evm_opts(&self) -> Result<(Config, EvmOpts), Report>

Load and sanitize the [Config], as well as extract EvmOpts from self
§

fn load_config_and_evm_opts_no_warnings( &self, ) -> Result<(Config, EvmOpts), Report>

Same as [LoadConfig::load_config_and_evm_opts] but also emits warnings generated
§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either [OwoColorize::fg] or a color-specific method, such as [OwoColorize::green], Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either [OwoColorize::bg] or a color-specific method, such as [OwoColorize::on_yellow], Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

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
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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

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