Shorten code in get_remove_tags()

This commit is contained in:
Matthias Beyer 2016-05-19 17:33:38 +02:00
parent 227acd492c
commit 397a82f528

View file

@ -75,13 +75,9 @@ pub fn get_add_tags(matches: &ArgMatches) -> Option<Vec<Tag>> {
///
/// Returns none if the argument was not specified
pub fn get_remove_tags(matches: &ArgMatches) -> Option<Vec<Tag>> {
if let Some(v) = extract_tags(matches, tag_subcommand_remove_arg_name(), '-') {
return Some(v);
} else {
matches
.values_of(tag_subcommand_remove_arg_name())
.map(|values| values.map(String::from).collect())
}
let rem = tag_subcommand_remove_arg_name();
extract_tags(matches, rem, '+')
.or_else(|| matches.values_of(rem).map(|values| values.map(String::from).collect()))
}
fn extract_tags(matches: &ArgMatches, specifier: &str, specchar: char) -> Option<Vec<Tag>> {