mirror of
https://github.com/clap-rs/clap
synced 2024-12-13 22:32:33 +00:00
imp(AppSettings): adds ability to add multiple settings at once
This commit is contained in:
parent
3b020f9e42
commit
4a00e2510d
1 changed files with 26 additions and 6 deletions
32
src/app.rs
32
src/app.rs
|
@ -53,7 +53,7 @@ enum DidYouMeanMessageStyle {
|
|||
EnumValue,
|
||||
}
|
||||
|
||||
/// Some application options
|
||||
/// Some application options
|
||||
pub enum AppSettings {
|
||||
/// Allows subcommands to override all requirements of the parent (this command). For example
|
||||
/// if you had a subcommand or even top level application which had a required arguments that
|
||||
|
@ -685,9 +685,7 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{
|
|||
self
|
||||
}
|
||||
|
||||
/// Enables Application Option, passed as argument
|
||||
///
|
||||
///
|
||||
/// Enables Application level settings, passed as argument
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
|
@ -698,8 +696,13 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{
|
|||
/// .setting(AppSettings::WaitOnError)
|
||||
/// # ;
|
||||
/// ```
|
||||
pub fn setting(mut self, option: AppSettings) -> Self {
|
||||
match option {
|
||||
pub fn setting(mut self, setting: AppSettings) -> Self {
|
||||
self.add_setting(&setting);
|
||||
self
|
||||
}
|
||||
|
||||
fn add_setting(&mut self, s: &AppSettings) {
|
||||
match *s {
|
||||
AppSettings::SubcommandsNegateReqs => self.subcmds_neg_reqs = true,
|
||||
AppSettings::SubcommandRequired => self.no_sc_error = true,
|
||||
AppSettings::ArgRequiredElseHelp => self.help_on_no_args = true,
|
||||
|
@ -709,6 +712,23 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{
|
|||
AppSettings::WaitOnError => self.wait_on_error = true,
|
||||
AppSettings::SubcommandRequiredElseHelp => self.help_on_no_sc = true,
|
||||
}
|
||||
}
|
||||
|
||||
/// Enables multiple Application level settings, passed as argument
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// ```no_run
|
||||
/// # use clap::{App, Arg, AppSettings};
|
||||
/// App::new("myprog")
|
||||
/// .settings( &[AppSettings::SubcommandRequired,
|
||||
/// AppSettings::WaitOnError])
|
||||
/// # ;
|
||||
/// ```
|
||||
pub fn settings(mut self, settings: &[AppSettings]) -> Self {
|
||||
for s in settings {
|
||||
self.add_setting(s);
|
||||
}
|
||||
self
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue