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: boolInternal mode used by forge fuzz to run only fuzz and invariant tests.
auto_fuzz_corpus: boolInternal 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: boolInternal 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: boolRun 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: boolGenerate 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: boolGenerate 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: boolDon’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: boolPrint 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: boolExit with code 0 even if a test fails.
suppress_successful_traces: boolSuppress successful test traces and show only traces for failures.
json_file: Option<PathBuf>Write test results as JSON to the specified file.
junit: boolOutput test results as JUnit XML report.
fail_fast: boolStop running tests after the first failure.
etherscan_api_key: Option<String>The Etherscan (or equivalent) API key.
list: boolList 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: boolRun symbolic check*/prove*/invariant*/statefulFuzz* tests.
replay_symbolic_artifact: Option<PathBuf>Replay a durable symbolic counterexample artifact emitted by forge test --symbolic.
emit_regression: boolEmit Solidity regression tests for confirmed symbolic counterexamples.
regression_out: Option<PathBuf>File or directory for generated symbolic regression tests.
regression_overwrite: boolOverwrite existing generated symbolic regression tests.
symbolic_seed_corpus: boolRun fuzz tests symbolically and persist non-failing concrete inputs to the fuzz corpus.
symbolic_use_fuzz_corpus: boolRun 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: boolRun targeted symbolic solving from existing fuzz branch frontier artifacts.
symbolic_check_invariant_frontiers: boolCheck 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: boolExpand symbolic external call targets over known deployed contracts.
symbolic_dump_smt: boolDump SMT-LIB queries issued by symbolic tests.
symbolic_storage_layout: Option<String>Symbolic storage modelling mode.
show_progress: boolShow test execution progress.
rerun: boolRe-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: boolPrint test summary table.
detailed: boolPrint 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: boolEmit one showmap file per corpus entry (default: one aggregated file per test).
showmap_domain: ShowmapDomainArgCoverage domain(s) to dump.
showmap_approach: StringApproach 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: boolDecode 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: boolEnable 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
impl TestArgs
pub async fn run(self) -> Result<TestOutcome>
pub(crate) fn ensure_mutation_mode_compatible( &self, coverage: bool, ) -> Result<()>
pub(crate) fn ensure_coverage_mode_compatible(&self) -> Result<()>
Sourcefn showmap_config(&self) -> Result<Option<ShowmapConfig>>
fn showmap_config(&self) -> Result<Option<ShowmapConfig>>
Builds a ShowmapConfig from the showmap CLI flags, if --showmap-out is set.
Sourcepub(crate) const fn enable_fuzz_only(&mut self)
pub(crate) const fn enable_fuzz_only(&mut self)
Restricts this test invocation to fuzz and invariant tests.
Sourcepub(crate) const fn enable_fuzz_only_with_auto_fuzz_corpus(&mut self)
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.
fn apply_test_config_overrides(&self, config: &mut Config)
Sourceconst fn apply_gas_report_overrides(
&self,
config: &mut Config,
evm_opts: &mut EvmOpts,
)
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.
Sourcepub(crate) fn set_showmap_override(&mut self, showmap: ShowmapConfig)
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.
Sourcepub(crate) fn set_fuzz_minimize_replay_options(
&mut self,
global: GlobalArgs,
evm: EvmArgs,
build: BuildOpts,
filter: FilterArgs,
)
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.
Sourcepub(crate) const fn enable_fuzz_failure_replay(&mut self)
pub(crate) const fn enable_fuzz_failure_replay(&mut self)
Replays persisted fuzz failures without running a new fuzz campaign.
fn warn_unsupported_engine_flags( &self, output: &ProjectCompileOutput, config: &Config, inline_config: &InlineConfig, filter: &ProjectPathsAwareFilter, multi_network: &MultiNetworkConfig, ) -> Result<()>
Sourcepub(crate) fn from_fuzz_run(args: FuzzRunArgs) -> Self
pub(crate) fn from_fuzz_run(args: FuzzRunArgs) -> Self
Builds the delegated forge test invocation for forge fuzz run.
fn load_symbolic_artifact_replay( &self, ) -> Result<Option<SymbolicArtifactReplayConfig>>
fn load_fuzz_input( &self, output: &ProjectCompileOutput, config: &Config, inline_config: &InlineConfig, filter: &ProjectPathsAwareFilter, ) -> Result<Option<FuzzFailureReplayConfig>>
Sourcefn get_sources_to_compile(
&self,
config: &Config,
test_filter: &ProjectPathsAwareFilter,
symbolic_artifact_replay: Option<&SymbolicArtifactReplayConfig>,
) -> Result<(BTreeSet<PathBuf>, Option<Arc<InlineConfig>>)>
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.
Sourcepub async fn compile_and_run(&mut self) -> Result<TestOutcome>
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.
Sourcefn brutalize_workspace(&self, config: &mut Config) -> Result<TempDir>
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.
async fn compile_project(&mut self) -> Result<CompiledTestProject>
pub(crate) async fn prepare_fuzz_minimize_replay( &mut self, corpus_dir: &Path, ) -> Result<FuzzMinimizeReplaySession>
Sourcepub(crate) async fn run_tests(
&mut self,
project_root: &Path,
config: Config,
evm_opts: EvmOpts,
output: &ProjectCompileOutput,
filter: &ProjectPathsAwareFilter,
execution: TestExecutionOptions,
) -> Result<TestOutcome>
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.
Sourceasync fn render_trace_output(
&self,
trace_output: TraceOutputKind,
outcome: &mut TestOutcome,
) -> Result<()>
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.
Sourceasync 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>>
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.
Sourceasync fn run_network_pass(
&self,
pass: NetworkPass,
output: &ProjectCompileOutput,
filter: &mut ProjectPathsAwareFilter,
execution: TestExecutionOptions,
resolved_fork: Option<&ResolvedFork>,
) -> Result<(Libraries, TestOutcome)>
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.
Sourcefn emit_symbolic_regressions(
&self,
config: &Config,
known_contracts: &ContractsByArtifact,
results: &mut BTreeMap<String, SuiteResult>,
) -> Result<Vec<SymbolicRegression>>
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.
Sourcefn print_summary(&self, outcome: &TestOutcome, duration: Duration) -> Result<()>
fn print_summary(&self, outcome: &TestOutcome, duration: Duration) -> Result<()>
Prints the run summary, or the detailed summary table when --summary is set.
Sourceasync fn run_tests_inner<FEN: FoundryEvmNetwork>(
&self,
runner: MultiContractRunner<FEN>,
config: Arc<Config>,
verbosity: u8,
filter: &mut ProjectPathsAwareFilter,
output: &ProjectCompileOutput,
) -> Result<TestOutcome>
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
Sourcefn check_and_write_gas_snapshots(
&self,
config: &Config,
gas_snapshots: &BTreeMap<String, BTreeMap<String, String>>,
) -> Result<()>
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.
Sourcepub fn filter(&self, config: &Config) -> Result<ProjectPathsAwareFilter>
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.
Sourcepub(crate) fn watchexec_config(&self) -> Result<Config>
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
impl Args for TestArgs
Source§fn group_id() -> Option<Id>
fn group_id() -> Option<Id>
ArgGroup::id][crate::ArgGroup::id] for this set of argumentsSource§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command] so it can instantiate self via
[FromArgMatches::update_from_arg_matches_mut] Read moreSource§impl FromArgMatches for TestArgs
impl FromArgMatches for TestArgs
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§impl Parser for TestArgs
impl Parser for TestArgs
§fn parse_from<I, T>(itr: I) -> Self
fn parse_from<I, T>(itr: I) -> Self
§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
§fn update_from<I, T>(&mut self, itr: I)
fn update_from<I, T>(&mut self, itr: I)
§fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
Auto Trait Implementations§
impl Freeze for TestArgs
impl RefUnwindSafe for TestArgs
impl Send for TestArgs
impl Sync for TestArgs
impl Unpin for TestArgs
impl UnsafeUnpin for TestArgs
impl UnwindSafe for TestArgs
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<T> Conv for T
impl<T> Conv for T
impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
§fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
TxEnv from a transaction and a sender address.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].Source§impl<T> LoadConfig for T
impl<T> LoadConfig for T
Source§fn load_config(&self) -> Result<Config, ExtractConfigError>
fn load_config(&self) -> Result<Config, ExtractConfigError>
Config based on the options provided in self.Source§fn load_config_with_dependencies(&self) -> Result<Config, ExtractConfigError>
fn load_config_with_dependencies(&self) -> Result<Config, ExtractConfigError>
Source§fn install_missing_dependencies(
&self,
config: &mut Config,
) -> Result<(), ExtractConfigError>
fn install_missing_dependencies( &self, config: &mut Config, ) -> Result<(), ExtractConfigError>
Source§fn load_config_no_warnings(&self) -> Result<Config, ExtractConfigError>
fn load_config_no_warnings(&self) -> Result<Config, ExtractConfigError>
LoadConfig::load_config but does not emit warnings.Source§fn load_config_unsanitized(&self) -> Result<Config, ExtractConfigError>
fn load_config_unsanitized(&self) -> Result<Config, ExtractConfigError>
Config but do not sanitize. See Config::sanitized for more information.Source§fn load_config_unsanitized_no_warnings(
&self,
) -> Result<Config, ExtractConfigError>
fn load_config_unsanitized_no_warnings( &self, ) -> Result<Config, ExtractConfigError>
LoadConfig::load_config_unsanitized but also emits warnings generatedSource§fn load_config_and_evm_opts_no_warnings(
&self,
) -> Result<(Config, EvmOpts), Report>
fn load_config_and_evm_opts_no_warnings( &self, ) -> Result<(Config, EvmOpts), Report>
LoadConfig::load_config_and_evm_opts but also emits warnings generatedimpl<T> MaybeCompact for T
§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> Threaded<T> for T
impl<T> Threaded<T> for T
§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 2912 bytes