diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2016-05-26 10:35:26 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2016-05-26 10:35:26 +0200 |
commit | bad8e1ced17362cb759c9c1b4c55742a133e6ec7 (patch) | |
tree | 0e30a9d7a156b7fcf9de02033fb6b4e4fd15d354 /libimagentryselect | |
parent | a0b7e9b9801c6c253cbf125e5cb5fe73ff338009 (diff) |
Add id argument helper and getter
Diffstat (limited to 'libimagentryselect')
-rw-r--r-- | libimagentryselect/src/lib.rs | 2 | ||||
-rw-r--r-- | libimagentryselect/src/ui.rs | 35 |
2 files changed, 37 insertions, 0 deletions
diff --git a/libimagentryselect/src/lib.rs b/libimagentryselect/src/lib.rs index c7472aa6..98806550 100644 --- a/libimagentryselect/src/lib.rs +++ b/libimagentryselect/src/lib.rs @@ -4,3 +4,5 @@ extern crate interactor; extern crate libimagstore; +pub mod ui; + diff --git a/libimagentryselect/src/ui.rs b/libimagentryselect/src/ui.rs new file mode 100644 index 00000000..9be677ac --- /dev/null +++ b/libimagentryselect/src/ui.rs @@ -0,0 +1,35 @@ +use clap::{Arg, ArgMatches}; + +use libimagstore::storeid::StoreId; + +pub fn id_argument<'a, 'b>() -> Arg<'a, 'b> { + Arg::with_name(id_argument_name()) + .short(id_argument_short()) + .long(id_argument_long()) + .takes_value(true) + .multiple(true) + .help("Specify the Store-Id") +} + +pub fn id_argument_name() -> &'static str { + "id-argument" +} + +pub fn id_argument_short() -> &'static str { + "i" +} + +pub fn id_argument_long() -> &'static str { + "id" +} + +pub fn get_id(matches: &ArgMatches) -> Option<Vec<StoreId>> { + matches.values_of(id_argument_name()) + .map(|vals| { + vals.into_iter() + .map(String::from) + .map(StoreId::from) + .collect() + }) +} + |