pub struct Optional<'a, T> { /* private fields */ }
Expand description
An option parameter that maps down to Option
, taking a single value (precisely 1).
Implementations§
source§impl<'a, T> Optional<'a, T>
impl<'a, T> Optional<'a, T>
sourcepub fn new(variable: &'a mut Option<T>) -> Optional<'a, T>
pub fn new(variable: &'a mut Option<T>) -> Optional<'a, T>
Create an optional parameter.
Examples found in repository?
examples/reducer.rs (line 72)
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
fn main() {
let mut _verbose: bool = false;
let mut operand: Operand = Operand::Add;
let mut initial: Option<u32> = None;
let mut _countries: HashSet<Country> = HashSet::default();
let mut items: Vec<u32> = Vec::default();
let ap = CommandLineParser::new("reducer");
let parser = ap
.add(
Parameter::option(Switch::new(&mut _verbose, true), "verbose", Some('v'))
.help("Do dee doo. We're really stretching here HAAAAAAAA HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!"),
)
.add(
Parameter::option(Scalar::new(&mut operand), "operand", Some('o'))
.help("moot")
.choice(Operand::Add, "+")
.choice(Operand::Multiply, "*"),
)
.add(Parameter::option(Optional::new(&mut initial), "initial", None)
.meta(vec!["testing a really long meta.. abcdefghijklmnopqrstuvwxyz"])
)
.add(Parameter::option(Collection::new(&mut _countries, Nargs::AtLeastOne), "country", None))
.add(
Parameter::argument(Collection::new(&mut items, Nargs::AtLeastOne), "item")
.help("The items."),
)
.build();
parser.parse();
println!("Items: {items:?}");
execute(_verbose, operand, initial, _countries, items);
}
More examples
examples/foo_bar.rs (line 76)
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
fn main() {
let mut verbose: bool = false;
let mut foo_bar = FooBar::Foo;
let mut initial: Option<u32> = None;
let mut countries: HashSet<Country> = HashSet::default();
let mut items: Vec<u32> = Vec::default();
let ap = CommandLineParser::new("foo_bar");
let parser = ap
.add(
Parameter::option(Switch::new(&mut verbose, true), "verbose", Some('v'))
.help("Do dee doo."),
)
.branch(
Condition::new(Scalar::new(&mut foo_bar), "foo_bar")
.choice(FooBar::Foo, "123 abc let's make this one medium long.")
.choice(FooBar::Bar, "456 def let's make this one multiple sentences. We're really stretching here HAAAAAAAA HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!")
.help("foo'y bar'y stuff")
.meta(vec!["a", "b", "c"]),
)
.command(FooBar::Foo, |sub| {
sub.add(Parameter::option(
Optional::new(&mut initial),
"initial",
None,
))
.add(
Parameter::argument(Collection::new(&mut items, Nargs::Any), "item")
.help("The items."),
)
})
.command(FooBar::Bar, |sub| {
sub.add(Parameter::option(
Collection::new(&mut countries, Nargs::AtLeastOne),
"country",
None,
))
})
.build();
parser.parse();
println!("Items: {items:?}");
execute(verbose, foo_bar, initial, countries, items);
}
Trait Implementations§
Auto Trait Implementations§
impl<'a, T> !RefUnwindSafe for Optional<'a, T>
impl<'a, T> !Send for Optional<'a, T>
impl<'a, T> !Sync for Optional<'a, T>
impl<'a, T> Unpin for Optional<'a, T>
impl<'a, T> !UnwindSafe for Optional<'a, T>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more