Enum ArgAction
#[non_exhaustive]
pub enum ArgAction
Behavior of arguments when they are encountered while parsing
Examples
#
Variants
-
Set When encountered, store the associated value(s) in [
ArgMatches][crate::ArgMatches]NOTE: If the argument has previously been seen, it will result in a [
ArgumentConflict][crate::error::ErrorKind::ArgumentConflict] unless [Command::args_override_self(true)][crate::Command::args_override_self] is set.Examples
# use clap_builder as clap; # use Command; # use Arg; let cmd = new .arg; let matches = cmd.try_get_matches_from.unwrap; assert!; assert_eq!;-
Append When encountered, store the associated value(s) in [
ArgMatches][crate::ArgMatches]Examples
# use clap_builder as clap; # use Command; # use Arg; let cmd = new .arg; let matches = cmd.try_get_matches_from.unwrap; assert!; assert_eq!;-
SetTrue When encountered, act as if
"true"was encountered on the command-lineIf no [
default_value][super::Arg::default_value] is set, it will befalse.No value is allowed. To optionally accept a value, see [
Arg::default_missing_value][super::Arg::default_missing_value]NOTE: If the argument has previously been seen, it will result in a [
ArgumentConflict][crate::error::ErrorKind::ArgumentConflict] unless [Command::args_override_self(true)][crate::Command::args_override_self] is set.Examples
# use clap_builder as clap; # use Command; # use Arg; let cmd = new .arg; let matches = cmd.clone.try_get_matches_from.unwrap; assert!; assert_eq!; let matches = cmd.try_get_matches_from.unwrap; assert!; assert_eq!;You can use [
TypedValueParser::map][crate::builder::TypedValueParser::map] to have the flag control an application-specific type:# use clap_builder as clap; # use Command; # use Arg; # use TypedValueParser as _; # use BoolishValueParser; let cmd = new .arg; let matches = cmd.clone.try_get_matches_from.unwrap; assert!; assert_eq!; let matches = cmd.try_get_matches_from.unwrap; assert!; assert_eq!;-
SetFalse When encountered, act as if
"false"was encountered on the command-lineIf no [
default_value][super::Arg::default_value] is set, it will betrue.No value is allowed. To optionally accept a value, see [
Arg::default_missing_value][super::Arg::default_missing_value]NOTE: If the argument has previously been seen, it will result in a [
ArgumentConflict][crate::error::ErrorKind::ArgumentConflict] unless [Command::args_override_self(true)][crate::Command::args_override_self] is set.Examples
# use clap_builder as clap; # use Command; # use Arg; let cmd = new .arg; let matches = cmd.clone.try_get_matches_from.unwrap; assert!; assert_eq!; let matches = cmd.try_get_matches_from.unwrap; assert!; assert_eq!;-
Count When encountered, increment a
u8counter starting from0.If no [
default_value][super::Arg::default_value] is set, it will be0.No value is allowed. To optionally accept a value, see [
Arg::default_missing_value][super::Arg::default_missing_value]Examples
# use clap_builder as clap; # use Command; # use Arg; let cmd = new .arg; let matches = cmd.clone.try_get_matches_from.unwrap; assert!; assert_eq!; let matches = cmd.try_get_matches_from.unwrap; assert!; assert_eq!;-
Help When encountered, display [
Command::print_help][super::Command::print_help]Depending on the flag, [
Command::print_long_help][super::Command::print_long_help] may be shownExamples
#-
HelpShort When encountered, display [
Command::print_help][super::Command::print_help]Examples
#-
HelpLong When encountered, display [
Command::print_long_help][super::Command::print_long_help]Examples
#-
Version When encountered, display [
Command::version][super::Command::version]Depending on the flag, [
Command::long_version][super::Command::long_version] may be shownExamples
# use clap_builder as clap; # use Command; # use Arg; let cmd = new .version .arg; // Existing version still exists let err = cmd.clone.try_get_matches_from.unwrap_err; assert_eq!; // New version available let err = cmd.try_get_matches_from.unwrap_err; assert_eq!;
Implementations
impl ArgAction
fn takes_values(&self) -> boolReturns whether this action accepts values on the command-line
[
default_values][super::Arg::default_values] and [env][super::Arg::env] may still be processed.
Trait Implementations
impl Clone for ArgAction
fn clone(&self) -> ArgAction
impl Debug for ArgAction
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl IntoResettable<ArgAction> for ArgAction
fn into_resettable(self) -> Resettable<ArgAction>
Auto Trait Implementations
impl Freeze for ArgAction
impl RefUnwindSafe for ArgAction
impl Send for ArgAction
impl Sync for ArgAction
impl Unpin for ArgAction
impl UnsafeUnpin for ArgAction
impl UnwindSafe for ArgAction
Blanket Implementations
impl<T> Any for ArgAction
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for ArgAction
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for ArgAction
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for ArgAction
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for ArgAction
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for ArgAction
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T, U> Into<U> for ArgAction
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for ArgAction
where
U: Into<T>,
type Error = Infallible;fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for ArgAction
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>