pub trait Subcommand: Sized + FromArgMatches {
// Required methods
fn augment_subcommands(cmd: Command) -> Command;
fn augment_subcommands_for_update(cmd: Command) -> Command;
fn has_subcommand(name: &str) -> bool;
}
Expand description
Parse a sub-command into a user-defined enum.
Implementing this trait lets a parent container delegate subcommand behavior to Self
.
with:
#[command(subcommand)] field: SubCmd
: Attribute can be used with either struct fields or enum variants that implSubcommand
.#[command(flatten)] Variant(SubCmd)
: Attribute can only be used with enum variants that implSubcommand
.
NOTE: Deriving requires the derive
feature flag
Required Methods§
Sourcefn augment_subcommands(cmd: Command) -> Command
fn augment_subcommands(cmd: Command) -> Command
Append to Command
so it can instantiate Self
.
See also CommandFactory
.
Sourcefn augment_subcommands_for_update(cmd: Command) -> Command
fn augment_subcommands_for_update(cmd: Command) -> Command
Append to Command
so it can update self
.
This is used to implement #[command(flatten)]
See also CommandFactory
.
Sourcefn has_subcommand(name: &str) -> bool
fn has_subcommand(name: &str) -> bool
Test whether Self
can parse a specific subcommand
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.