pub struct Opts<Parser, Runner, Writer, Custom = Empty>{
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>
impl<Parser, Runner, Writer, Custom> Args for Opts<Parser, Runner, Writer, Custom>
source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
source§impl<Parser, Runner, Writer, Custom> CommandFactory for Opts<Parser, Runner, Writer, Custom>
impl<Parser, Runner, Writer, Custom> CommandFactory for Opts<Parser, Runner, Writer, Custom>
source§impl<Parser, Runner, Writer, Custom> FromArgMatches for Opts<Parser, Runner, Writer, Custom>
impl<Parser, Runner, Writer, Custom> FromArgMatches for Opts<Parser, Runner, Writer, Custom>
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>
impl<Parser, Runner, Writer, Custom> Parser for Opts<Parser, Runner, Writer, Custom>
source§fn parse_from<I, T>(itr: I) -> Self
fn parse_from<I, T>(itr: I) -> Self
Parse from iterator, exit on error.
source§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
Parse from iterator, return Err on error.
source§fn update_from<I, T>(&mut self, itr: I)
fn update_from<I, T>(&mut self, itr: I)
Update from iterator, exit on error.
Auto Trait Implementations§
impl<Parser, Runner, Writer, Custom> Freeze for Opts<Parser, Runner, Writer, Custom>
impl<Parser, Runner, Writer, Custom> RefUnwindSafe for Opts<Parser, Runner, Writer, Custom>
impl<Parser, Runner, Writer, Custom> Send for Opts<Parser, Runner, Writer, Custom>
impl<Parser, Runner, Writer, Custom> Sync for Opts<Parser, Runner, Writer, Custom>
impl<Parser, Runner, Writer, Custom> Unpin for Opts<Parser, Runner, Writer, Custom>
impl<Parser, Runner, Writer, Custom> UnwindSafe for Opts<Parser, Runner, Writer, Custom>
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
Mutably borrows from an owned value. Read more
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 fail_on_skipped(self) -> FailOnSkipped<T>
source§fn fail_on_skipped_with<F>(self, f: F) -> FailOnSkipped<T, F>
fn fail_on_skipped_with<F>(self, f: F) -> FailOnSkipped<T, F>
source§fn repeat_skipped<W>(self) -> Repeat<W, T>
fn repeat_skipped<W>(self) -> Repeat<W, T>
source§fn repeat_failed<W>(self) -> Repeat<W, T>
fn repeat_failed<W>(self) -> Repeat<W, T>
source§fn repeat_if<W, F>(self, filter: F) -> Repeat<W, T, F>
fn repeat_if<W, F>(self, filter: F) -> Repeat<W, T, F>
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 moresource§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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> ⓘ
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 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> ⓘ
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