Skip to content

Commit

Permalink
fix(parser): Clarify get_count/get_flag assertion
Browse files Browse the repository at this point in the history
Fixes #4763
  • Loading branch information
epage committed Mar 16, 2023
1 parent 4fa1ec6 commit c0dc1cd
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/parser/matches/arg_matches.rs
Expand Up @@ -139,9 +139,12 @@ impl ArgMatches {
/// ```
#[cfg_attr(debug_assertions, track_caller)]
pub fn get_count(&self, id: &str) -> u8 {
*self
.get_one::<u8>(id)
.expect("ArgAction::Count is defaulted")
*self.get_one::<u8>(id).unwrap_or_else(|| {
panic!(
"arg `{}`'s `ArgAction` should be `Count` which should provide a default",
id
)
})
}

/// Gets the value of a specific [`ArgAction::SetTrue`][crate::ArgAction::SetTrue] or [`ArgAction::SetFalse`][crate::ArgAction::SetFalse] flag
Expand Down Expand Up @@ -173,7 +176,12 @@ impl ArgMatches {
pub fn get_flag(&self, id: &str) -> bool {
*self
.get_one::<bool>(id)
.expect("ArgAction::SetTrue / ArgAction::SetFalse is defaulted")
.unwrap_or_else(|| {
panic!(
"arg `{}`'s `ArgAction` should be one of `SetTrue`, `SetFalse` which should provide a default",
id
)
})
}

/// Iterate over values of a specific option or positional argument.
Expand Down

0 comments on commit c0dc1cd

Please sign in to comment.