From 78ac7b3bf1373f4c3e15d2a88bd873eccbc8de80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20M=2E=20Bezerra?= Date: Mon, 5 Apr 2021 17:20:46 -0300 Subject: [PATCH] Fixing short flags not receiving values --- oof/src/lib.rs | 9 ++++----- oof/src/util.rs | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/oof/src/lib.rs b/oof/src/lib.rs index 327d53e..ccd4364 100644 --- a/oof/src/lib.rs +++ b/oof/src/lib.rs @@ -126,7 +126,7 @@ pub fn filter_flags( // For each letter in the short arg, except the last one for (i, letter) in letters.iter().copied().enumerate() { - // Safety: this loop only runs when len >= 1 + // Safety: this loop only runs when len >= 1, so this subtraction is safe let is_last_letter = i == letters.len() - 1; let flag_info = short_flags_info.get(&letter).unwrap_or_else(|| { @@ -149,16 +149,15 @@ pub fn filter_flags( } // pop the next one - let flag_argument = iter.next(); - flag_argument.unwrap_or_else(|| { + let flag_argument = iter.next().unwrap_or_else(|| { panic!( "USer errror: argument flag `argument_flag` came at last, but it \ requires an argument" ) }); - // Otherwise, insert it (TODO: grab next one and add it) - // result_flags.argument_flags.insert(flag_info.long); + // Otherwise, insert it. + result_flags.argument_flags.insert(flag_name, flag_argument); } else { // If it was already inserted if result_flags.boolean_flags.contains(flag_name) { diff --git a/oof/src/util.rs b/oof/src/util.rs index dddfb3d..00d874b 100644 --- a/oof/src/util.rs +++ b/oof/src/util.rs @@ -5,6 +5,7 @@ pub fn trim_double_hyphen(flag_text: &str) -> &str { chars.as_str() } +// Currently unused /// Util function to skip the single leading short flag hyphen. pub fn trim_single_hyphen(flag_text: &str) -> &str { let mut chars = flag_text.chars();