Enum pretty_exec::clap::ArgAction
[−]#[non_exhaustive]
pub enum ArgAction {
Set,
Append,
StoreValue,
IncOccurrence,
SetTrue,
SetFalse,
Count,
Help,
Version,
}Expand description
Behavior of arguments when they are encountered while parsing
Examples
let cmd = Command::new("mycmd")
.arg(
Arg::new("special-help")
.short('?')
.action(clap::ArgAction::Help)
);
// Existing help still exists
let err = cmd.clone().try_get_matches_from(["mycmd", "-h"]).unwrap_err();
assert_eq!(err.kind(), clap::error::ErrorKind::DisplayHelp);
// New help available
let err = cmd.try_get_matches_from(["mycmd", "-?"]).unwrap_err();
assert_eq!(err.kind(), clap::error::ErrorKind::DisplayHelp);Variants (Non-exhaustive)
This enum is marked as non-exhaustive
Set
When encountered, store the associated value(s) in ArgMatches
Examples
let cmd = Command::new("mycmd")
.arg(
Arg::new("flag")
.long("flag")
.action(clap::ArgAction::Set)
);
let matches = cmd.try_get_matches_from(["mycmd", "--flag", "value"]).unwrap();
assert!(matches.contains_id("flag"));
assert_eq!(matches.occurrences_of("flag"), 0);
assert_eq!(
matches.get_many::<String>("flag").unwrap_or_default().map(|v| v.as_str()).collect::<Vec<_>>(),
vec!["value"]
);Append
When encountered, store the associated value(s) in ArgMatches
Examples
let cmd = Command::new("mycmd")
.arg(
Arg::new("flag")
.long("flag")
.action(clap::ArgAction::Append)
);
let matches = cmd.try_get_matches_from(["mycmd", "--flag", "value1", "--flag", "value2"]).unwrap();
assert!(matches.contains_id("flag"));
assert_eq!(matches.occurrences_of("flag"), 0);
assert_eq!(
matches.get_many::<String>("flag").unwrap_or_default().map(|v| v.as_str()).collect::<Vec<_>>(),
vec!["value1", "value2"]
);StoreValue
Deprecated, replaced with ArgAction::Set or ArgAction::Append
IncOccurrence
Deprecated, replaced with ArgAction::SetTrue or ArgAction::Count
SetTrue
When encountered, act as if "true" was encountered on the command-line
If no default_value is set, it will be false.
No value is allowed. To optionally accept a value, see
Arg::default_missing_value
Examples
let cmd = Command::new("mycmd")
.arg(
Arg::new("flag")
.long("flag")
.action(clap::ArgAction::SetTrue)
);
let matches = cmd.clone().try_get_matches_from(["mycmd", "--flag", "--flag"]).unwrap();
assert!(matches.contains_id("flag"));
assert_eq!(matches.occurrences_of("flag"), 0);
assert_eq!(
matches.get_one::<bool>("flag").copied(),
Some(true)
);
let matches = cmd.try_get_matches_from(["mycmd"]).unwrap();
assert!(matches.contains_id("flag"));
assert_eq!(matches.occurrences_of("flag"), 0);
assert_eq!(
matches.get_one::<bool>("flag").copied(),
Some(false)
);SetFalse
When encountered, act as if "false" was encountered on the command-line
If no default_value is set, it will be true.
No value is allowed. To optionally accept a value, see
Arg::default_missing_value
Examples
let cmd = Command::new("mycmd")
.arg(
Arg::new("flag")
.long("flag")
.action(clap::ArgAction::SetFalse)
);
let matches = cmd.clone().try_get_matches_from(["mycmd", "--flag", "--flag"]).unwrap();
assert!(matches.contains_id("flag"));
assert_eq!(matches.occurrences_of("flag"), 0);
assert_eq!(
matches.get_one::<bool>("flag").copied(),
Some(false)
);
let matches = cmd.try_get_matches_from(["mycmd"]).unwrap();
assert!(matches.contains_id("flag"));
assert_eq!(matches.occurrences_of("flag"), 0);
assert_eq!(
matches.get_one::<bool>("flag").copied(),
Some(true)
);Count
When encountered, increment a u8 counter
If no default_value is set, it will be 0.
No value is allowed. To optionally accept a value, see
Arg::default_missing_value
Examples
let cmd = Command::new("mycmd")
.arg(
Arg::new("flag")
.long("flag")
.action(clap::ArgAction::Count)
);
let matches = cmd.clone().try_get_matches_from(["mycmd", "--flag", "--flag"]).unwrap();
assert!(matches.contains_id("flag"));
assert_eq!(matches.occurrences_of("flag"), 0);
assert_eq!(
matches.get_one::<u8>("flag").copied(),
Some(2)
);
let matches = cmd.try_get_matches_from(["mycmd"]).unwrap();
assert!(matches.contains_id("flag"));
assert_eq!(matches.occurrences_of("flag"), 0);
assert_eq!(
matches.get_one::<u8>("flag").copied(),
Some(0)
);Help
When encountered, display Command::print_help
Depending on the flag, Command::print_long_help may be shown
Examples
let cmd = Command::new("mycmd")
.arg(
Arg::new("special-help")
.short('?')
.action(clap::ArgAction::Help)
);
// Existing help still exists
let err = cmd.clone().try_get_matches_from(["mycmd", "-h"]).unwrap_err();
assert_eq!(err.kind(), clap::error::ErrorKind::DisplayHelp);
// New help available
let err = cmd.try_get_matches_from(["mycmd", "-?"]).unwrap_err();
assert_eq!(err.kind(), clap::error::ErrorKind::DisplayHelp);Version
When encountered, display Command::version
Depending on the flag, Command::long_version may be shown
Examples
let cmd = Command::new("mycmd")
.version("1.0.0")
.arg(
Arg::new("special-version")
.long("special-version")
.action(clap::ArgAction::Version)
);
// Existing help still exists
let err = cmd.clone().try_get_matches_from(["mycmd", "--version"]).unwrap_err();
assert_eq!(err.kind(), clap::error::ErrorKind::DisplayVersion);
// New help available
let err = cmd.try_get_matches_from(["mycmd", "--special-version"]).unwrap_err();
assert_eq!(err.kind(), clap::error::ErrorKind::DisplayVersion);Implementations
impl ArgAction
impl ArgAction
pub fn takes_values(&self) -> bool
pub fn takes_values(&self) -> bool
Returns whether this action accepts values on the command-line
default_values and [env][super::Arg::env] may still be
processed.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for ArgAction
impl Send for ArgAction
impl Sync for ArgAction
impl Unpin for ArgAction
impl UnwindSafe for ArgAction
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
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
impl<X> Pipe for X
impl<X> Pipe for X
fn pipe<Return, Function>(self, f: Function) -> Return where
Function: FnOnce(Self) -> Return,
fn pipe<Return, Function>(self, f: Function) -> Return where
Function: FnOnce(Self) -> Return,
Apply f to self. Read more
fn pipe_ref<'a, Return, Function>(&'a self, f: Function) -> Return where
Function: FnOnce(&'a Self) -> Return,
fn pipe_ref<'a, Return, Function>(&'a self, f: Function) -> Return where
Function: FnOnce(&'a Self) -> Return,
Apply f to &self. Read more
fn pipe_mut<'a, Return, Function>(&'a mut self, f: Function) -> Return where
Function: FnOnce(&'a mut Self) -> Return,
fn pipe_mut<'a, Return, Function>(&'a mut self, f: Function) -> Return where
Function: FnOnce(&'a mut Self) -> Return,
Apply f to &mut self. Read more
fn pipe_as_ref<'a, Param, Return, Function>(&'a self, f: Function) -> Return where
Self: AsRef<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a Param) -> Return,
fn pipe_as_ref<'a, Param, Return, Function>(&'a self, f: Function) -> Return where
Self: AsRef<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a Param) -> Return,
Apply f to &self where f takes a single parameter of type Param
and Self implements trait AsRef<Param>. Read more
fn pipe_as_mut<'a, Param, Return, Function>(&'a mut self, f: Function) -> Return where
Self: AsMut<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
fn pipe_as_mut<'a, Param, Return, Function>(&'a mut self, f: Function) -> Return where
Self: AsMut<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
Apply f to &mut self where f takes a single parameter of type Param
and Self implements trait AsMut<Param>. Read more
fn pipe_deref<'a, Param, Return, Function>(&'a self, f: Function) -> Return where
Self: Deref<Target = Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a Param) -> Return,
fn pipe_deref<'a, Param, Return, Function>(&'a self, f: Function) -> Return where
Self: Deref<Target = Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a Param) -> Return,
Apply f to &self where f takes a single parameter of type Param
and Self implements trait Deref<Target = Param>. Read more
fn pipe_deref_mut<'a, Param, Return, Function>(
&'a mut self,
f: Function
) -> Return where
Self: DerefMut<Target = Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
fn pipe_deref_mut<'a, Param, Return, Function>(
&'a mut self,
f: Function
) -> Return where
Self: DerefMut<Target = Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
Apply f to &mut self where f takes a single parameter of type Param
and Self implements trait [DerefMut<Target = Param>]. Read more
fn pipe_borrow<'a, Param, Return, Function>(&'a self, f: Function) -> Return where
Self: Borrow<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a Param) -> Return,
fn pipe_borrow<'a, Param, Return, Function>(&'a self, f: Function) -> Return where
Self: Borrow<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a Param) -> Return,
Apply f to &self where f takes a single parameter of type Param
and Self implements trait Borrow<Param>. Read more
fn pipe_borrow_mut<'a, Param, Return, Function>(
&'a mut self,
f: Function
) -> Return where
Self: BorrowMut<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
fn pipe_borrow_mut<'a, Param, Return, Function>(
&'a mut self,
f: Function
) -> Return where
Self: BorrowMut<Param>,
Param: 'a + ?Sized,
Function: FnOnce(&'a mut Param) -> Return,
Apply f to &mut self where f takes a single parameter of type Param
and Self implements trait BorrowMut<Param>. Read more