aboutsummaryrefslogtreecommitdiff
path: root/mingling/src/parser/args.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mingling/src/parser/args.rs')
-rw-r--r--mingling/src/parser/args.rs40
1 files changed, 21 insertions, 19 deletions
diff --git a/mingling/src/parser/args.rs b/mingling/src/parser/args.rs
index 2dc0feb..23275c2 100644
--- a/mingling/src/parser/args.rs
+++ b/mingling/src/parser/args.rs
@@ -11,7 +11,10 @@ pub struct Argument {
impl From<Vec<&str>> for Argument {
fn from(vec: Vec<&str>) -> Self {
Argument {
- vec: vec.into_iter().map(|s| s.to_string()).collect(),
+ vec: vec
+ .into_iter()
+ .map(std::string::ToString::to_string)
+ .collect(),
}
}
}
@@ -85,18 +88,17 @@ impl Argument {
}
let flag: Flag = flag.into();
- if !flag.is_empty() {
- // Has any flag
- for argument in flag.iter() {
- let value = special_argument!(self.vec, argument);
- if value.is_some() {
- return value;
- }
- }
- } else {
+ if flag.is_empty() {
// No flag
return Some(self.vec.remove(0));
}
+ // Has any flag
+ for argument in flag.iter() {
+ let value = special_argument!(self.vec, argument);
+ if value.is_some() {
+ return value;
+ }
+ }
None
}
@@ -135,15 +137,7 @@ impl Argument {
}
let flag: Flag = flag.into();
- if !flag.is_empty() {
- // Has any flag
- for argument in flag.iter() {
- let enabled = special_flag!(self.vec, argument);
- if enabled {
- return enabled;
- }
- }
- } else {
+ if flag.is_empty() {
let first = self.vec.remove(0);
let first_lower = first.to_lowercase();
let trimmed = first_lower.trim();
@@ -154,6 +148,13 @@ impl Argument {
};
return result;
}
+ // Has any flag
+ for argument in flag.iter() {
+ let enabled = special_flag!(self.vec, argument);
+ if enabled {
+ return enabled;
+ }
+ }
false
}
@@ -167,6 +168,7 @@ impl Argument {
///
/// This method filters out all command-line style flags from the arguments,
/// returning a new `Argument` instance containing only non-flag arguments.
+ #[must_use]
pub fn strip_all_flags(mut self) -> Self {
self.vec.retain(|f| !f.starts_with('-'));
self