summaryrefslogtreecommitdiffstats
path: root/libimagentryselect
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-05-26 10:35:26 +0200
committerMatthias Beyer <mail@beyermatthias.de>2016-05-26 10:35:26 +0200
commitbad8e1ced17362cb759c9c1b4c55742a133e6ec7 (patch)
tree0e30a9d7a156b7fcf9de02033fb6b4e4fd15d354 /libimagentryselect
parenta0b7e9b9801c6c253cbf125e5cb5fe73ff338009 (diff)
Add id argument helper and getter
Diffstat (limited to 'libimagentryselect')
-rw-r--r--libimagentryselect/src/lib.rs2
-rw-r--r--libimagentryselect/src/ui.rs35
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()
+ })
+}
+