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
sourceimpl<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,
sourcefn group_id() -> Option<Id>
fn group_id() -> Option<Id>
Report the
ArgGroup::id
for this set of argumentssourcefn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
sourceimpl<Parser: Clone, Runner: Clone, Writer: Clone, Custom: Clone> Clone for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
impl<Parser: Clone, Runner: Clone, Writer: Clone, Custom: Clone> Clone for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
sourceimpl<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,
sourceimpl<Parser: Debug, Runner: Debug, Writer: Debug, Custom: Debug> Debug for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
impl<Parser: Debug, Runner: Debug, Writer: Debug, Custom: Debug> Debug for Opts<Parser, Runner, Writer, Custom>where
Parser: Args,
Runner: Args,
Writer: Args,
Custom: Args,
sourceimpl<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,
sourcefn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
sourcefn 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>
sourcefn 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
.sourcefn 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
.sourceimpl<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,
sourcefn try_parse() -> Result<Self, Error<RichFormatter>>
fn try_parse() -> Result<Self, Error<RichFormatter>>
Parse from
std::env::args_os()
, return Err on error.sourcefn 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
sourcefn 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.
sourcefn 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
sourcefn 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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Ext for T
impl<T> Ext for T
sourcefn assert_normalized(self) -> AssertNormalized<T>
fn assert_normalized(self) -> AssertNormalized<T>
sourcefn normalized<W>(self) -> Normalize<W, T>
fn normalized<W>(self) -> Normalize<W, T>
sourcefn summarized(self) -> Summarize<T>
fn summarized(self) -> Summarize<T>
sourcefn 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>
sourcefn 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,
sourcefn 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,
sourcefn 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 moresourcefn 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