Skip to content

Commit c4b3a4f

Browse files
committed
refactor: Remove use of '?'
1 parent 18ed37e commit c4b3a4f

File tree

16 files changed

+140
-125
lines changed

16 files changed

+140
-125
lines changed

src/builder/command.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -822,7 +822,7 @@ impl Command {
822822
let mut styled = StyledStr::new();
823823
let usage = Usage::new(self);
824824
write_help(&mut styled, self, &usage, false);
825-
write!(w, "{}", styled)?;
825+
ok!(write!(w, "{}", styled));
826826
w.flush()
827827
}
828828

@@ -837,7 +837,7 @@ impl Command {
837837
let mut styled = StyledStr::new();
838838
let usage = Usage::new(self);
839839
write_help(&mut styled, self, &usage, true);
840-
write!(w, "{}", styled)?;
840+
ok!(write!(w, "{}", styled));
841841
w.flush()
842842
}
843843

@@ -3896,7 +3896,7 @@ impl Command {
38963896
}
38973897
let is_multicall_set = self.is_multicall_set();
38983898

3899-
let sc = self.subcommands.iter_mut().find(|s| s.name == name)?;
3899+
let sc = some!(self.subcommands.iter_mut().find(|s| s.name == name));
39003900

39013901
// Display subcommand name, short and long in usage
39023902
let mut sc_names = String::new();

src/builder/range.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,10 +172,10 @@ impl From<std::ops::RangeToInclusive<usize>> for ValueRange {
172172

173173
impl std::fmt::Display for ValueRange {
174174
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
175-
self.start_inclusive.fmt(f)?;
175+
ok!(self.start_inclusive.fmt(f));
176176
if !self.is_fixed() {
177-
"..=".fmt(f)?;
178-
self.end_inclusive.fmt(f)?;
177+
ok!("..=".fmt(f));
178+
ok!(self.end_inclusive.fmt(f));
179179
}
180180
Ok(())
181181
}

src/builder/styled_str.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -223,9 +223,9 @@ impl StyledStr {
223223
None => {}
224224
}
225225

226-
buffer.set_color(&color)?;
227-
buffer.write_all(content.as_bytes())?;
228-
buffer.reset()?;
226+
ok!(buffer.set_color(&color));
227+
ok!(buffer.write_all(content.as_bytes()));
228+
ok!(buffer.reset());
229229
}
230230

231231
Ok(())
@@ -291,7 +291,7 @@ fn cmp_key(c: (Option<Style>, &str)) -> (Option<usize>, &str) {
291291
impl std::fmt::Display for StyledStr {
292292
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
293293
for (_, content) in self.iter() {
294-
std::fmt::Display::fmt(content, f)?;
294+
ok!(std::fmt::Display::fmt(content, f));
295295
}
296296

297297
Ok(())
@@ -307,12 +307,13 @@ struct AnsiDisplay<'s> {
307307
impl std::fmt::Display for AnsiDisplay<'_> {
308308
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
309309
let mut buffer = termcolor::Buffer::ansi();
310-
self.styled
310+
ok!(self
311+
.styled
311312
.write_colored(&mut buffer)
312-
.map_err(|_| std::fmt::Error)?;
313+
.map_err(|_| std::fmt::Error));
313314
let buffer = buffer.into_inner();
314-
let buffer = String::from_utf8(buffer).map_err(|_| std::fmt::Error)?;
315-
std::fmt::Display::fmt(&buffer, f)?;
315+
let buffer = ok!(String::from_utf8(buffer).map_err(|_| std::fmt::Error));
316+
ok!(std::fmt::Display::fmt(&buffer, f));
316317

317318
Ok(())
318319
}

src/builder/value_parser.rs

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,7 @@ where
569569
arg: Option<&crate::Arg>,
570570
value: &std::ffi::OsStr,
571571
) -> Result<AnyValue, crate::Error> {
572-
let value = TypedValueParser::parse_ref(self, cmd, arg, value)?;
572+
let value = ok!(TypedValueParser::parse_ref(self, cmd, arg, value));
573573
Ok(AnyValue::new(value))
574574
}
575575

@@ -579,7 +579,7 @@ where
579579
arg: Option<&crate::Arg>,
580580
value: std::ffi::OsString,
581581
) -> Result<AnyValue, crate::Error> {
582-
let value = TypedValueParser::parse(self, cmd, arg, value)?;
582+
let value = ok!(TypedValueParser::parse(self, cmd, arg, value));
583583
Ok(AnyValue::new(value))
584584
}
585585

@@ -694,18 +694,18 @@ where
694694
arg: Option<&crate::Arg>,
695695
value: &std::ffi::OsStr,
696696
) -> Result<Self::Value, crate::Error> {
697-
let value = value.to_str().ok_or_else(|| {
697+
let value = ok!(value.to_str().ok_or_else(|| {
698698
crate::Error::invalid_utf8(
699699
cmd,
700700
crate::output::Usage::new(cmd).create_usage_with_title(&[]),
701701
)
702-
})?;
703-
let value = (self)(value).map_err(|e| {
702+
}));
703+
let value = ok!((self)(value).map_err(|e| {
704704
let arg = arg
705705
.map(|a| a.to_string())
706706
.unwrap_or_else(|| "...".to_owned());
707707
crate::Error::value_validation(arg, value.to_owned(), e.into()).with_cmd(cmd)
708-
})?;
708+
}));
709709
Ok(value)
710710
}
711711
}
@@ -742,12 +742,12 @@ impl TypedValueParser for StringValueParser {
742742
_arg: Option<&crate::Arg>,
743743
value: std::ffi::OsString,
744744
) -> Result<Self::Value, crate::Error> {
745-
let value = value.into_string().map_err(|_| {
745+
let value = ok!(value.into_string().map_err(|_| {
746746
crate::Error::invalid_utf8(
747747
cmd,
748748
crate::output::Usage::new(cmd).create_usage_with_title(&[]),
749749
)
750-
})?;
750+
}));
751751
Ok(value)
752752
}
753753
}
@@ -939,16 +939,16 @@ impl<E: crate::ValueEnum + Clone + Send + Sync + 'static> TypedValueParser for E
939939
.collect::<Vec<_>>()
940940
};
941941

942-
let value = value.to_str().ok_or_else(|| {
942+
let value = ok!(value.to_str().ok_or_else(|| {
943943
crate::Error::invalid_value(
944944
cmd,
945945
value.to_string_lossy().into_owned(),
946946
&possible_vals(),
947947
arg.map(ToString::to_string)
948948
.unwrap_or_else(|| "...".to_owned()),
949949
)
950-
})?;
951-
let value = E::value_variants()
950+
}));
951+
let value = ok!(E::value_variants()
952952
.iter()
953953
.find(|v| {
954954
v.to_possible_value()
@@ -963,7 +963,7 @@ impl<E: crate::ValueEnum + Clone + Send + Sync + 'static> TypedValueParser for E
963963
arg.map(ToString::to_string)
964964
.unwrap_or_else(|| "...".to_owned()),
965965
)
966-
})?
966+
}))
967967
.clone();
968968
Ok(value)
969969
}
@@ -1049,12 +1049,12 @@ impl TypedValueParser for PossibleValuesParser {
10491049
arg: Option<&crate::Arg>,
10501050
value: std::ffi::OsString,
10511051
) -> Result<String, crate::Error> {
1052-
let value = value.into_string().map_err(|_| {
1052+
let value = ok!(value.into_string().map_err(|_| {
10531053
crate::Error::invalid_utf8(
10541054
cmd,
10551055
crate::output::Usage::new(cmd).create_usage_with_title(&[]),
10561056
)
1057-
})?;
1057+
}));
10581058

10591059
let ignore_case = arg.map(|a| a.is_ignore_case_set()).unwrap_or(false);
10601060
if self.0.iter().any(|v| v.matches(&value, ignore_case)) {
@@ -1233,13 +1233,13 @@ where
12331233
arg: Option<&crate::Arg>,
12341234
raw_value: &std::ffi::OsStr,
12351235
) -> Result<Self::Value, crate::Error> {
1236-
let value = raw_value.to_str().ok_or_else(|| {
1236+
let value = ok!(raw_value.to_str().ok_or_else(|| {
12371237
crate::Error::invalid_utf8(
12381238
cmd,
12391239
crate::output::Usage::new(cmd).create_usage_with_title(&[]),
12401240
)
1241-
})?;
1242-
let value = value.parse::<i64>().map_err(|err| {
1241+
}));
1242+
let value = ok!(value.parse::<i64>().map_err(|err| {
12431243
let arg = arg
12441244
.map(|a| a.to_string())
12451245
.unwrap_or_else(|| "...".to_owned());
@@ -1249,7 +1249,7 @@ where
12491249
err.into(),
12501250
)
12511251
.with_cmd(cmd)
1252-
})?;
1252+
}));
12531253
if !self.bounds.contains(&value) {
12541254
let arg = arg
12551255
.map(|a| a.to_string())
@@ -1263,7 +1263,7 @@ where
12631263
}
12641264

12651265
let value: Result<Self::Value, _> = value.try_into();
1266-
let value = value.map_err(|err| {
1266+
let value = ok!(value.map_err(|err| {
12671267
let arg = arg
12681268
.map(|a| a.to_string())
12691269
.unwrap_or_else(|| "...".to_owned());
@@ -1273,7 +1273,7 @@ where
12731273
err.into(),
12741274
)
12751275
.with_cmd(cmd)
1276-
})?;
1276+
}));
12771277

12781278
Ok(value)
12791279
}
@@ -1431,13 +1431,13 @@ where
14311431
arg: Option<&crate::Arg>,
14321432
raw_value: &std::ffi::OsStr,
14331433
) -> Result<Self::Value, crate::Error> {
1434-
let value = raw_value.to_str().ok_or_else(|| {
1434+
let value = ok!(raw_value.to_str().ok_or_else(|| {
14351435
crate::Error::invalid_utf8(
14361436
cmd,
14371437
crate::output::Usage::new(cmd).create_usage_with_title(&[]),
14381438
)
1439-
})?;
1440-
let value = value.parse::<u64>().map_err(|err| {
1439+
}));
1440+
let value = ok!(value.parse::<u64>().map_err(|err| {
14411441
let arg = arg
14421442
.map(|a| a.to_string())
14431443
.unwrap_or_else(|| "...".to_owned());
@@ -1447,7 +1447,7 @@ where
14471447
err.into(),
14481448
)
14491449
.with_cmd(cmd)
1450-
})?;
1450+
}));
14511451
if !self.bounds.contains(&value) {
14521452
let arg = arg
14531453
.map(|a| a.to_string())
@@ -1461,7 +1461,7 @@ where
14611461
}
14621462

14631463
let value: Result<Self::Value, _> = value.try_into();
1464-
let value = value.map_err(|err| {
1464+
let value = ok!(value.map_err(|err| {
14651465
let arg = arg
14661466
.map(|a| a.to_string())
14671467
.unwrap_or_else(|| "...".to_owned());
@@ -1471,7 +1471,7 @@ where
14711471
err.into(),
14721472
)
14731473
.with_cmd(cmd)
1474-
})?;
1474+
}));
14751475

14761476
Ok(value)
14771477
}
@@ -1622,12 +1622,12 @@ impl TypedValueParser for FalseyValueParser {
16221622
_arg: Option<&crate::Arg>,
16231623
value: &std::ffi::OsStr,
16241624
) -> Result<Self::Value, crate::Error> {
1625-
let value = value.to_str().ok_or_else(|| {
1625+
let value = ok!(value.to_str().ok_or_else(|| {
16261626
crate::Error::invalid_utf8(
16271627
cmd,
16281628
crate::output::Usage::new(cmd).create_usage_with_title(&[]),
16291629
)
1630-
})?;
1630+
}));
16311631
let value = if value.is_empty() {
16321632
false
16331633
} else {
@@ -1719,19 +1719,19 @@ impl TypedValueParser for BoolishValueParser {
17191719
arg: Option<&crate::Arg>,
17201720
value: &std::ffi::OsStr,
17211721
) -> Result<Self::Value, crate::Error> {
1722-
let value = value.to_str().ok_or_else(|| {
1722+
let value = ok!(value.to_str().ok_or_else(|| {
17231723
crate::Error::invalid_utf8(
17241724
cmd,
17251725
crate::output::Usage::new(cmd).create_usage_with_title(&[]),
17261726
)
1727-
})?;
1728-
let value = crate::util::str_to_bool(value).ok_or_else(|| {
1727+
}));
1728+
let value = ok!(crate::util::str_to_bool(value).ok_or_else(|| {
17291729
let arg = arg
17301730
.map(|a| a.to_string())
17311731
.unwrap_or_else(|| "...".to_owned());
17321732
crate::Error::value_validation(arg, value.to_owned(), "value was not a boolean".into())
17331733
.with_cmd(cmd)
1734-
})?;
1734+
}));
17351735
Ok(value)
17361736
}
17371737

@@ -1808,12 +1808,12 @@ impl TypedValueParser for NonEmptyStringValueParser {
18081808
.unwrap_or_else(|| "...".to_owned()),
18091809
));
18101810
}
1811-
let value = value.to_str().ok_or_else(|| {
1811+
let value = ok!(value.to_str().ok_or_else(|| {
18121812
crate::Error::invalid_utf8(
18131813
cmd,
18141814
crate::output::Usage::new(cmd).create_usage_with_title(&[]),
18151815
)
1816-
})?;
1816+
}));
18171817
Ok(value.to_owned())
18181818
}
18191819
}
@@ -1860,7 +1860,7 @@ where
18601860
arg: Option<&crate::Arg>,
18611861
value: &std::ffi::OsStr,
18621862
) -> Result<Self::Value, crate::Error> {
1863-
let value = self.parser.parse_ref(cmd, arg, value)?;
1863+
let value = ok!(self.parser.parse_ref(cmd, arg, value));
18641864
let value = (self.func)(value);
18651865
Ok(value)
18661866
}
@@ -1871,7 +1871,7 @@ where
18711871
arg: Option<&crate::Arg>,
18721872
value: std::ffi::OsString,
18731873
) -> Result<Self::Value, crate::Error> {
1874-
let value = self.parser.parse(cmd, arg, value)?;
1874+
let value = ok!(self.parser.parse(cmd, arg, value));
18751875
let value = (self.func)(value);
18761876
Ok(value)
18771877
}

src/derive.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ pub trait Parser: FromArgMatches + CommandFactory + Sized {
9494

9595
/// Parse from `std::env::args_os()`, return Err on error.
9696
fn try_parse() -> Result<Self, Error> {
97-
let mut matches = <Self as CommandFactory>::command().try_get_matches()?;
97+
let mut matches = ok!(<Self as CommandFactory>::command().try_get_matches());
9898
<Self as FromArgMatches>::from_arg_matches_mut(&mut matches).map_err(format_error::<Self>)
9999
}
100100

@@ -123,7 +123,7 @@ pub trait Parser: FromArgMatches + CommandFactory + Sized {
123123
I: IntoIterator<Item = T>,
124124
T: Into<OsString> + Clone,
125125
{
126-
let mut matches = <Self as CommandFactory>::command().try_get_matches_from(itr)?;
126+
let mut matches = ok!(<Self as CommandFactory>::command().try_get_matches_from(itr));
127127
<Self as FromArgMatches>::from_arg_matches_mut(&mut matches).map_err(format_error::<Self>)
128128
}
129129

@@ -150,7 +150,7 @@ pub trait Parser: FromArgMatches + CommandFactory + Sized {
150150
T: Into<OsString> + Clone,
151151
{
152152
let mut matches =
153-
<Self as CommandFactory>::command_for_update().try_get_matches_from(itr)?;
153+
ok!(<Self as CommandFactory>::command_for_update().try_get_matches_from(itr));
154154
<Self as FromArgMatches>::update_from_arg_matches_mut(self, &mut matches)
155155
.map_err(format_error::<Self>)
156156
}

src/error/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -694,11 +694,11 @@ impl<F: ErrorFormatter> error::Error for Error<F> {
694694
impl<F: ErrorFormatter> Display for Error<F> {
695695
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
696696
// Assuming `self.message` already has a trailing newline, from `try_help` or similar
697-
write!(f, "{}", self.formatted())?;
697+
ok!(write!(f, "{}", self.formatted()));
698698
if let Some(backtrace) = self.inner.backtrace.as_ref() {
699-
writeln!(f)?;
700-
writeln!(f, "Backtrace:")?;
701-
writeln!(f, "{}", backtrace)?;
699+
ok!(writeln!(f));
700+
ok!(writeln!(f, "Backtrace:"));
701+
ok!(writeln!(f, "{}", backtrace));
702702
}
703703
Ok(())
704704
}

src/macros.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,3 +661,15 @@ macro_rules! debug {
661661
macro_rules! debug {
662662
($($arg:tt)*) => {};
663663
}
664+
665+
macro_rules! ok {
666+
($expr:expr) => {
667+
$expr?
668+
};
669+
}
670+
671+
macro_rules! some {
672+
($expr:expr) => {
673+
$expr?
674+
};
675+
}

0 commit comments

Comments
 (0)