Skip to content

Commit

Permalink
fmt
Browse files Browse the repository at this point in the history
  • Loading branch information
Awpteamoose committed Jul 17, 2024
1 parent f3f66ee commit dfe5349
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions src/time_delta.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,25 +64,24 @@ pub struct TimeDelta {

#[cfg(feature = "serde")]
impl serde::Serialize for TimeDelta {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
<(i64, i32) as serde::Serialize>::serialize(&(self.secs, self.nanos), serializer)
}
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
<(i64, i32) as serde::Serialize>::serialize(&(self.secs, self.nanos), serializer)
}
}

#[cfg(feature = "serde")]
impl<'de> serde::Deserialize<'de> for TimeDelta {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let (secs, nanos) = <(i64, i32) as serde::Deserialize>::deserialize(deserializer)?;
if secs < MIN.secs
|| secs > MAX.secs
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let (secs, nanos) = <(i64, i32) as serde::Deserialize>::deserialize(deserializer)?;
if !(MIN.secs..=MAX.secs).contains(&secs)
|| nanos >= 1_000_000_000
|| (secs == MAX.secs && nanos > MAX.nanos)
|| (secs == MIN.secs && nanos < MIN.nanos)
{
return Err(serde::de::Error::custom("TimeDelta out of bounds"));

Check warning on line 81 in src/time_delta.rs

View check run for this annotation

Codecov / codecov/patch

src/time_delta.rs#L81

Added line #L81 was not covered by tests
}
Ok(TimeDelta { secs, nanos })
}
Ok(TimeDelta { secs, nanos })
}
}

/// The minimum possible `TimeDelta`: `-i64::MAX` milliseconds.
Expand Down Expand Up @@ -1333,6 +1332,9 @@ mod tests {
#[cfg(feature = "serde")]
fn test_serde() {
let duration = TimeDelta::new(123, 456).unwrap();
assert_eq!(serde_json::from_value::<TimeDelta>(serde_json::to_value(&duration).unwrap()).unwrap(), duration);
assert_eq!(
serde_json::from_value::<TimeDelta>(serde_json::to_value(duration).unwrap()).unwrap(),
duration
);
}
}

0 comments on commit dfe5349

Please sign in to comment.