Turn panic to error in SystemTime serialization

This commit is contained in:
ppc 2020-01-02 08:53:12 +08:00 committed by David Tolnay
parent ea2789df0f
commit a81968af3c
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82

View File

@ -616,7 +616,7 @@ impl Serialize for SystemTime {
use super::SerializeStruct; use super::SerializeStruct;
let duration_since_epoch = self let duration_since_epoch = self
.duration_since(UNIX_EPOCH) .duration_since(UNIX_EPOCH)
.expect("SystemTime must be later than UNIX_EPOCH"); .map_err(|_|S::Error::custom("SystemTime must be later than UNIX_EPOCH"))?;
let mut state = try!(serializer.serialize_struct("SystemTime", 2)); let mut state = try!(serializer.serialize_struct("SystemTime", 2));
try!(state.serialize_field("secs_since_epoch", &duration_since_epoch.as_secs())); try!(state.serialize_field("secs_since_epoch", &duration_since_epoch.as_secs()));
try!(state.serialize_field("nanos_since_epoch", &duration_since_epoch.subsec_nanos())); try!(state.serialize_field("nanos_since_epoch", &duration_since_epoch.subsec_nanos()));