Skip to content

Commit a9320db

Browse files
committed
Consistently avoid '?' throughout serde crate
This makes it easy to redefine a 'try' macro to compare compile-time between `$expr?` and `match $expr { Ok=>v, Err=>return }`.
1 parent d208762 commit a9320db

File tree

5 files changed

+11
-10
lines changed

5 files changed

+11
-10
lines changed

serde/src/de/ignored_any.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ impl<'de> Visitor<'de> for IgnoredAny {
228228
where
229229
A: EnumAccess<'de>,
230230
{
231-
data.variant::<IgnoredAny>()?.1.newtype_variant()
231+
try!(data.variant::<IgnoredAny>()).1.newtype_variant()
232232
}
233233
}
234234

serde/src/de/impls.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2268,14 +2268,14 @@ where
22682268
where
22692269
D: Deserializer<'de>,
22702270
{
2271-
let (start, end) = deserializer.deserialize_struct(
2271+
let (start, end) = try!(deserializer.deserialize_struct(
22722272
"Range",
22732273
range::FIELDS,
22742274
range::RangeVisitor {
22752275
expecting: "struct Range",
22762276
phantom: PhantomData,
22772277
},
2278-
)?;
2278+
));
22792279
Ok(start..end)
22802280
}
22812281
}
@@ -2289,14 +2289,14 @@ where
22892289
where
22902290
D: Deserializer<'de>,
22912291
{
2292-
let (start, end) = deserializer.deserialize_struct(
2292+
let (start, end) = try!(deserializer.deserialize_struct(
22932293
"RangeInclusive",
22942294
range::FIELDS,
22952295
range::RangeVisitor {
22962296
expecting: "struct RangeInclusive",
22972297
phantom: PhantomData,
22982298
},
2299-
)?;
2299+
));
23002300
Ok(RangeInclusive::new(start, end))
23012301
}
23022302
}

serde/src/de/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,7 @@ pub trait Deserialize<'de>: Sized {
565565
D: Deserializer<'de>,
566566
{
567567
// Default implementation just delegates to `deserialize` impl.
568-
*place = Deserialize::deserialize(deserializer)?;
568+
*place = try!(Deserialize::deserialize(deserializer));
569569
Ok(())
570570
}
571571
}

serde/src/de/value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1501,7 +1501,7 @@ where
15011501
where
15021502
T: de::DeserializeSeed<'de>,
15031503
{
1504-
match self.map.next_key_seed(seed)? {
1504+
match try!(self.map.next_key_seed(seed)) {
15051505
Some(key) => Ok((key, private::map_as_enum(self.map))),
15061506
None => Err(de::Error::invalid_type(de::Unexpected::Map, &"enum")),
15071507
}

serde/src/ser/impls.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -614,9 +614,10 @@ impl Serialize for SystemTime {
614614
S: Serializer,
615615
{
616616
use super::SerializeStruct;
617-
let duration_since_epoch = self
618-
.duration_since(UNIX_EPOCH)
619-
.map_err(|_| S::Error::custom("SystemTime must be later than UNIX_EPOCH"))?;
617+
let duration_since_epoch = match self.duration_since(UNIX_EPOCH) {
618+
Ok(duration_since_epoch) => duration_since_epoch,
619+
Err(_) => return Err(S::Error::custom("SystemTime must be later than UNIX_EPOCH")),
620+
};
620621
let mut state = try!(serializer.serialize_struct("SystemTime", 2));
621622
try!(state.serialize_field("secs_since_epoch", &duration_since_epoch.as_secs()));
622623
try!(state.serialize_field("nanos_since_epoch", &duration_since_epoch.subsec_nanos()));

0 commit comments

Comments
 (0)