Lines Matching refs:ArgGroup

11 /// For instance, you can make an entire `ArgGroup` required. If [`ArgGroup::multiple(true)`] is
13 /// [`ArgGroup::multiple(false)`] is set (the default), one and *only* one must be present.
15 /// You can also do things such as name an entire `ArgGroup` as a [conflict] or [requirement] for
19 /// Perhaps the most common use of `ArgGroup`s is to require one and *only* one argument to be
29 /// Finally, you may use `ArgGroup`s to pull a value from a group of arguments when you don't care
34 /// The following example demonstrates using an `ArgGroup` to ensure that one, and only one, of
38 /// # use clap::{Command, arg, ArgGroup, error::ErrorKind};
44 /// .group(ArgGroup::new("vers")
56 /// # use clap::{Command, arg, ArgGroup, Id};
62 /// .group(ArgGroup::new("vers")
79 /// [`ArgGroup::multiple(true)`]: ArgGroup::multiple()
81 /// [`ArgGroup::multiple(false)`]: ArgGroup::multiple()
86 pub struct ArgGroup {
96 impl ArgGroup {
97 /// Create a `ArgGroup` using a unique name.
105 /// # use clap::{Command, ArgGroup};
106 /// ArgGroup::new("config")
110 ArgGroup::default().id(id)
118 /// # use clap::{Command, ArgGroup};
119 /// ArgGroup::default().id("config")
133 /// # use clap::{Command, Arg, ArgGroup, ArgAction};
141 /// .group(ArgGroup::new("req_flags")
166 /// # use clap::{Command, Arg, ArgGroup, ArgAction};
174 /// .group(ArgGroup::new("req_flags")
196 /// # use clap::{ArgGroup};
198 /// let grp = ArgGroup::new("program").args(&args);
216 /// # use clap::{Command, Arg, ArgGroup, ArgAction};
224 /// .group(ArgGroup::new("req_flags")
235 /// # use clap::{Command, Arg, ArgGroup, error::ErrorKind, ArgAction};
243 /// .group(ArgGroup::new("req_flags")
266 /// # use clap::{ArgGroup};
267 /// let mut group = ArgGroup::new("myprog")
285 /// **NOTE:** By default, [`ArgGroup::multiple`] is set to `false` which when combined with
286 /// `ArgGroup::required(true)` states, "One and *only one* arg must be used from this group.
287 /// Use of more than one arg is an error." Vice setting `ArgGroup::multiple(true)` which
293 /// # use clap::{Command, Arg, ArgGroup, error::ErrorKind, ArgAction};
301 /// .group(ArgGroup::new("req_flags")
312 /// [`ArgGroup::multiple`]: ArgGroup::multiple()
332 /// # use clap::{Command, Arg, ArgGroup, error::ErrorKind, ArgAction};
343 /// .group(ArgGroup::new("req_flags")
353 /// [required group]: ArgGroup::required()
376 /// # use clap::{Command, Arg, ArgGroup, error::ErrorKind, ArgAction};
390 /// .group(ArgGroup::new("req_flags")
400 /// [required group]: ArgGroup::required()
421 /// # use clap::{Command, Arg, ArgGroup, error::ErrorKind, ArgAction};
432 /// .group(ArgGroup::new("req_flags")
462 /// # use clap::{Command, Arg, ArgGroup, error::ErrorKind, ArgAction};
476 /// .group(ArgGroup::new("req_flags")
498 impl ArgGroup {
505 /// Reports whether [`ArgGroup::required`] is set
512 impl From<&'_ ArgGroup> for ArgGroup {
513 fn from(g: &ArgGroup) -> Self {
524 let g = ArgGroup::new("test")
547 let g = ArgGroup::new("test")
563 let g2 = ArgGroup::from(&g);
569 // This test will *fail to compile* if ArgGroup is not Send + Sync
573 foo(ArgGroup::new("test"))
580 let mut grp_multiple = ArgGroup::new("test_multiple").args(&args).multiple(true);
583 let mut grp_not_multiple = ArgGroup::new("test_multiple").args(&args).multiple(false);
590 let grp = ArgGroup::new("program").args(&args);