pub struct Opts<Parser, Runner, Writer, Custom = Empty>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,{
pub re_filter: Option<Regex>,
pub tags_filter: Option<TagOperation>,
pub parser: Parser,
pub runner: Runner,
pub writer: Writer,
pub custom: Custom,
}
Expand description
Root CLI (command line interface) of a top-level Cucumber
executor.
It combines all the nested CLIs of Parser
, Runner
and Writer
,
and may be extended with custom CLI options additionally.
Example
#[derive(clap::Args)] // also re-exported as `cli::Args`
struct CustomOpts {
/// Additional time to wait in before hook.
#[arg(
long,
value_parser = humantime::parse_duration,
)]
pre_pause: Option<Duration>,
}
let opts = cli::Opts::<_, _, _, CustomOpts>::parsed();
let pre_pause = opts.custom.pre_pause.unwrap_or_default();
MyWorld::cucumber()
.before(move |_, _, _, _| time::sleep(pre_pause).boxed_local())
.with_cli(opts)
.run_and_exit("tests/features/readme")
.await;
Fields§
§re_filter: Option<Regex>
Regex to filter scenarios by their name.
Tag expression to filter scenarios by.
Note: Tags from Feature, Rule and Scenario are merged together on filtering, so be careful about conflicting tags on different levels.
parser: Parser
Parser
CLI options.
runner: Runner
Runner
CLI options.
writer: Writer
Writer
CLI options.
custom: Custom
Additional custom CLI options.
Implementations§
Trait Implementations§
source§impl<Parser, Runner, Writer, Custom> Args for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
impl<Parser, Runner, Writer, Custom> Args for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
source§impl<Parser, Runner, Writer, Custom> Clone for Opts<Parser, Runner, Writer, Custom>where
Parser: Args + Clone,
Runner: Args + Clone,
Writer: Args + Clone,
Custom: Args + Clone,
impl<Parser, Runner, Writer, Custom> Clone for Opts<Parser, Runner, Writer, Custom>where
Parser: Args + Clone,
Runner: Args + Clone,
Writer: Args + Clone,
Custom: Args + Clone,
source§impl<Parser, Runner, Writer, Custom> CommandFactory for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
impl<Parser, Runner, Writer, Custom> CommandFactory for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
source§impl<Parser, Runner, Writer, Custom> Debug for Opts<Parser, Runner, Writer, Custom>where
Parser: Args + Debug,
Runner: Args + Debug,
Writer: Args + Debug,
Custom: Args + Debug,
impl<Parser, Runner, Writer, Custom> Debug for Opts<Parser, Runner, Writer, Custom>where
Parser: Args + Debug,
Runner: Args + Debug,
Writer: Args + Debug,
Custom: Args + Debug,
source§impl<Parser, Runner, Writer, Custom> Default for Opts<Parser, Runner, Writer, Custom>where
Parser: Args + Default,
Runner: Args + Default,
Writer: Args + Default,
Custom: Args + Default,
impl<Parser, Runner, Writer, Custom> Default for Opts<Parser, Runner, Writer, Custom>where
Parser: Args + Default,
Runner: Args + Default,
Writer: Args + Default,
Custom: Args + Default,
source§impl<Parser, Runner, Writer, Custom> FromArgMatches for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
impl<Parser, Runner, Writer, Custom> FromArgMatches for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
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>
Assign values from
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>
Assign values from
ArgMatches
to self
.source§impl<Parser, Runner, Writer, Custom> Parser for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
impl<Parser, Runner, Writer, Custom> Parser for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
source§fn try_parse() -> Result<Self, Error<RichFormatter>>
fn try_parse() -> Result<Self, Error<RichFormatter>>
Parse from
std::env::args_os()
, return Err on error.source§fn parse_from<I, T>(itr: I) -> Selfwhere
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn parse_from<I, T>(itr: I) -> Selfwhere
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Parse from iterator, exit on error
source§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error<RichFormatter>>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error<RichFormatter>>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Parse from iterator, return Err on error.
source§fn update_from<I, T>(&mut self, itr: I)where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn update_from<I, T>(&mut self, itr: I)where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Update from iterator, exit on error
source§fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error<RichFormatter>>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error<RichFormatter>>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
Update from iterator, return Err on error.
Auto Trait Implementations§
impl<Parser, Runner, Writer, Custom> RefUnwindSafe for Opts<Parser, Runner, Writer, Custom>where
Custom: RefUnwindSafe,
Parser: RefUnwindSafe,
Runner: RefUnwindSafe,
Writer: RefUnwindSafe,
impl<Parser, Runner, Writer, Custom> Send for Opts<Parser, Runner, Writer, Custom>where
Custom: Send,
Parser: Send,
Runner: Send,
Writer: Send,
impl<Parser, Runner, Writer, Custom> Sync for Opts<Parser, Runner, Writer, Custom>where
Custom: Sync,
Parser: Sync,
Runner: Sync,
Writer: Sync,
impl<Parser, Runner, Writer, Custom> Unpin for Opts<Parser, Runner, Writer, Custom>where
Custom: Unpin,
Parser: Unpin,
Runner: Unpin,
Writer: Unpin,
impl<Parser, Runner, Writer, Custom> UnwindSafe for Opts<Parser, Runner, Writer, Custom>where
Custom: UnwindSafe,
Parser: UnwindSafe,
Runner: UnwindSafe,
Writer: UnwindSafe,
Blanket Implementations§
source§impl<T> Ext for T
impl<T> Ext for T
source§fn assert_normalized(self) -> AssertNormalized<T>
fn assert_normalized(self) -> AssertNormalized<T>
source§fn normalized<W>(self) -> Normalize<W, T>
fn normalized<W>(self) -> Normalize<W, T>
source§fn summarized(self) -> Summarize<T>
fn summarized(self) -> Summarize<T>
source§fn fail_on_skipped(
self
) -> FailOnSkipped<T, fn(_: &Feature, _: Option<&Rule>, _: &Scenario) -> bool>
fn fail_on_skipped(
self
) -> FailOnSkipped<T, fn(_: &Feature, _: Option<&Rule>, _: &Scenario) -> bool>
source§fn fail_on_skipped_with<F>(self, f: F) -> FailOnSkipped<T, F>where
F: Fn(&Feature, Option<&Rule>, &Scenario) -> bool,
fn fail_on_skipped_with<F>(self, f: F) -> FailOnSkipped<T, F>where
F: Fn(&Feature, Option<&Rule>, &Scenario) -> bool,
source§fn repeat_skipped<W>(
self
) -> Repeat<W, T, fn(_: &Result<Event<Cucumber<W>>, Error>) -> bool>
fn repeat_skipped<W>(
self
) -> Repeat<W, T, fn(_: &Result<Event<Cucumber<W>>, Error>) -> bool>
source§fn repeat_failed<W>(
self
) -> Repeat<W, T, fn(_: &Result<Event<Cucumber<W>>, Error>) -> bool>
fn repeat_failed<W>(
self
) -> Repeat<W, T, fn(_: &Result<Event<Cucumber<W>>, Error>) -> bool>
source§fn repeat_if<W, F>(self, filter: F) -> Repeat<W, T, F>where
F: Fn(&Result<Event<Cucumber<W>>, Error>) -> bool,
fn repeat_if<W, F>(self, filter: F) -> Repeat<W, T, F>where
F: Fn(&Result<Event<Cucumber<W>>, Error>) -> bool,
Wraps this
Writer
to re-output filter
ed events at the end of an
output.source§fn tee<W, Wr>(self, other: Wr) -> Tee<T, Wr>where
Wr: Writer<W>,
fn tee<W, Wr>(self, other: Wr) -> Tee<T, Wr>where
Wr: Writer<W>,
Attaches the provided
other
Writer
to the current one for passing
events to both of them simultaneously.source§fn discard_arbitrary_writes(self) -> Arbitrary<T>
fn discard_arbitrary_writes(self) -> Arbitrary<T>
Wraps this
Writer
into a discard::Arbitrary
one, providing a
no-op ArbitraryWriter
implementation. Read moresource§fn discard_stats_writes(self) -> Stats<T>
fn discard_stats_writes(self) -> Stats<T>
Wraps this
Writer
into a discard::Stats
one, providing a no-op
StatsWriter
implementation returning only 0
. Read more