Skip to main content

TestArgs

Struct TestArgs 

Source
pub struct TestArgs {
Show 124 fields fuzz_only: bool, auto_fuzz_corpus: bool, 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, tracing: TracingArgs, dump: Option<PathBuf>, gas_report: bool, gas_snapshot_check: Option<bool>, gas_snapshot_emit: Option<bool>, allow_failure: bool, suppress_successful_traces: bool, json_file: Option<PathBuf>, 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<PathBuf>, 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_frontier_dir: Option<PathBuf>, pub invariant_frontier_limit: Option<usize>, 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_check_invariant_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 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>, pub decode_external_storage: bool, 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: bool

Internal mode used by forge fuzz to run only fuzz and invariant tests.

§auto_fuzz_corpus: bool

Internal mode used by forge fuzz run to default the fuzz corpus dir.

§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 generated profile, flamegraph, or flamechart.

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

§tracing: TracingArgs§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.

§json_file: Option<PathBuf>

Write test results as JSON to the specified file.

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

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_frontier_dir: Option<PathBuf>

Directory for invariant branch frontier artifacts.

§invariant_frontier_limit: Option<usize>

Maximum number of invariant branch frontier records to write per campaign.

§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_check_invariant_frontiers: bool

Check invariants from imported stateful fuzz frontier prefixes before flipping comparisons.

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

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

§decode_external_storage: bool

Decode the storage layouts of contracts outside the local project in state diffs, by compiling the verified source a block explorer has for them.

§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_test_config_overrides(&self, config: &mut Config)

Source

const fn apply_gas_report_overrides( &self, config: &mut Config, evm_opts: &mut EvmOpts, )

Disables gas report sampling unless a gas report is requested, in which case isolation is enabled for more correct gas accounting.

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 load_symbolic_artifact_replay( &self, ) -> Result<Option<SymbolicArtifactReplayConfig>>

Source

fn load_fuzz_input( &self, output: &ProjectCompileOutput, config: &Config, inline_config: &InlineConfig, filter: &ProjectPathsAwareFilter, ) -> Result<Option<FuzzFailureReplayConfig>>

Source

fn get_sources_to_compile( &self, config: &Config, test_filter: &ProjectPathsAwareFilter, 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, and the inline config parsed from the ABI-only compilation when one was needed.

For filtered runs, this includes all configured source roots, non-test fixture roots, and runnable tests that match the filter. Imported dependencies remain attached to those roots so compiler profiles and restrictions apply to the complete source graph.

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

fn brutalize_workspace(&self, config: &mut Config) -> Result<TempDir>

Copies the project into a temporary workspace, brutalizes its sources and rebases config onto that workspace.

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 render_trace_output( &self, trace_output: TraceOutputKind, outcome: &mut TestOutcome, ) -> Result<()>

Renders the flamegraph, flamechart or EVM profile of the single executed test.

Source

async fn build_runner<FEN: FoundryEvmNetwork>( &self, config: Arc<Config>, evm_opts: EvmOpts, output: &ProjectCompileOutput, execution: TestExecutionOptions, resolved_fork: Option<&ResolvedFork>, executor_builder: ExecutorBuilder<FEN>, ) -> Result<MultiContractRunner<FEN>>

Builds the test runner for the network selected by evm_opts.

Source

async fn run_network_pass( &self, pass: NetworkPass, output: &ProjectCompileOutput, filter: &mut ProjectPathsAwareFilter, execution: TestExecutionOptions, resolved_fork: Option<&ResolvedFork>, ) -> Result<(Libraries, TestOutcome)>

Builds the runner for one network pass and runs its tests.

Source

fn emit_symbolic_regressions( &self, config: &Config, known_contracts: &ContractsByArtifact, results: &mut BTreeMap<String, SuiteResult>, ) -> Result<Vec<SymbolicRegression>>

Emits symbolic regression tests for the counterexample artifacts in results when --emit-regression is set, and attaches them to the results.

Source

fn print_summary(&self, outcome: &TestOutcome, duration: Duration) -> Result<()>

Prints the run summary, or the detailed summary table when --summary is set.

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

fn check_and_write_gas_snapshots( &self, config: &Config, gas_snapshots: &BTreeMap<String, BTreeMap<String, String>>, ) -> Result<()>

Compares the collected gas snapshots against the ones on disk and writes them back, depending on --gas-snapshot-check / --gas-snapshot-emit and their config defaults.

The CLI flags override the config and environment, so --gas-snapshot-check=false disables a check enabled in the config. Exits with code 1 if differences are found.

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

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> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

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

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> 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].
Source§

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

Source§

fn figment(&self) -> Figment

Load the Config based on the options provided in self.
Source§

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

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

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

Loads config and installs missing project dependencies.
Source§

fn install_missing_dependencies( &self, config: &mut Config, ) -> Result<(), ExtractConfigError>

Installs missing dependencies, reloading config only for automatic remapping discovery.
Source§

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

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

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

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

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

Same as LoadConfig::load_config_unsanitized but also emits warnings generated
Source§

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

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

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<T> MaybeCompact for T

§

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

impl<T> Threaded<T> for T

§

type Rest = ()

The outputs beyond the threaded value.
§

fn split(self) -> (T, ())

Splits into the threaded value and the extra outputs.
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 = !

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

fn try_from(value: U) -> Result<T, !>

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