clap_builder

Trait Subcommand

Source
pub trait Subcommand: FromArgMatches + Sized {
    // 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 impl Subcommand.
  • #[command(flatten)] Variant(SubCmd): Attribute can only be used with enum variants that impl Subcommand.

NOTE: Deriving requires the derive feature flag

Required Methods§

Source

fn augment_subcommands(cmd: Command) -> Command

Append to Command so it can instantiate Self.

See also CommandFactory.

Source

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.

Source

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.

Implementations on Foreign Types§

Source§

impl<T: Subcommand> Subcommand for Box<T>

Implementors§