use ? operator instead of match
This commit is contained in:
parent
86ef38b3b7
commit
f2106d0746
@ -46,25 +46,18 @@ fn add_duration(&self, other: &Duration) -> Timespec {
|
||||
}
|
||||
|
||||
fn checked_add_duration(&self, other: &Duration) -> Option<Timespec> {
|
||||
let mut secs = match other
|
||||
let mut secs = other
|
||||
.as_secs()
|
||||
.try_into() // <- target type would be `i64`
|
||||
.ok()
|
||||
.and_then(|secs| self.t.tv_sec.checked_add(secs))
|
||||
{
|
||||
Some(ts) => ts,
|
||||
None => return None,
|
||||
};
|
||||
.and_then(|secs| self.t.tv_sec.checked_add(secs))?;
|
||||
|
||||
// Nano calculations can't overflow because nanos are <1B which fit
|
||||
// in a u32.
|
||||
let mut nsec = other.subsec_nanos() + self.t.tv_nsec as u32;
|
||||
if nsec >= NSEC_PER_SEC as u32 {
|
||||
nsec -= NSEC_PER_SEC as u32;
|
||||
secs = match secs.checked_add(1) {
|
||||
Some(ts) => ts,
|
||||
None => return None,
|
||||
}
|
||||
secs = secs.checked_add(1)?;
|
||||
}
|
||||
Some(Timespec {
|
||||
t: syscall::TimeSpec {
|
||||
|
@ -47,25 +47,18 @@ fn add_duration(&self, other: &Duration) -> Timespec {
|
||||
}
|
||||
|
||||
fn checked_add_duration(&self, other: &Duration) -> Option<Timespec> {
|
||||
let mut secs = match other
|
||||
let mut secs = other
|
||||
.as_secs()
|
||||
.try_into() // <- target type would be `libc::time_t`
|
||||
.ok()
|
||||
.and_then(|secs| self.t.tv_sec.checked_add(secs))
|
||||
{
|
||||
Some(ts) => ts,
|
||||
None => return None,
|
||||
};
|
||||
.and_then(|secs| self.t.tv_sec.checked_add(secs))?;
|
||||
|
||||
// Nano calculations can't overflow because nanos are <1B which fit
|
||||
// in a u32.
|
||||
let mut nsec = other.subsec_nanos() + self.t.tv_nsec as u32;
|
||||
if nsec >= NSEC_PER_SEC as u32 {
|
||||
nsec -= NSEC_PER_SEC as u32;
|
||||
secs = match secs.checked_add(1) {
|
||||
Some(ts) => ts,
|
||||
None => return None,
|
||||
}
|
||||
secs = secs.checked_add(1)?;
|
||||
}
|
||||
Some(Timespec {
|
||||
t: libc::timespec {
|
||||
|
Loading…
Reference in New Issue
Block a user