diff options
| author | mbartlett21 <29034492+mbartlett21@users.noreply.github.com> | 2021-10-16 18:25:18 +1000 |
|---|---|---|
| committer | mbartlett21 <mjmouse9999@gmail.com> | 2021-10-20 08:48:00 +0000 |
| commit | fe060bf2477313c6621368097e1d41cade8ca163 (patch) | |
| tree | 5beff89c0760b853c930f9c96d74a712cd4667d4 | |
| parent | 6cc0a764e082d9c0abcf37a768d5889247ba13e2 (diff) | |
| download | rust-fe060bf2477313c6621368097e1d41cade8ca163.tar.gz rust-fe060bf2477313c6621368097e1d41cade8ca163.zip | |
Change `Duration::from_secs_*` underflow error
Now explicitly says negative value.
| -rw-r--r-- | library/core/src/time.rs | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/library/core/src/time.rs b/library/core/src/time.rs index 5a74f39e8bc..7114f2d652e 100644 --- a/library/core/src/time.rs +++ b/library/core/src/time.rs @@ -756,7 +756,7 @@ impl Duration { } else if nanos >= MAX_NANOS_F64 { Err(FromSecsError { kind: FromSecsErrorKind::Overflow }) } else if nanos < 0.0 { - Err(FromSecsError { kind: FromSecsErrorKind::Underflow }) + Err(FromSecsError { kind: FromSecsErrorKind::Negative }) } else { let nanos = nanos as u128; Ok(Duration { @@ -818,7 +818,7 @@ impl Duration { } else if nanos >= MAX_NANOS_F32 { Err(FromSecsError { kind: FromSecsErrorKind::Overflow }) } else if nanos < 0.0 { - Err(FromSecsError { kind: FromSecsErrorKind::Underflow }) + Err(FromSecsError { kind: FromSecsErrorKind::Negative }) } else { let nanos = nanos as u128; Ok(Duration { @@ -1274,11 +1274,9 @@ pub struct FromSecsError { impl FromSecsError { const fn description(&self) -> &'static str { match self.kind { - FromSecsErrorKind::NonFinite => { - "got non-finite value when converting float to duration" - } + FromSecsErrorKind::NonFinite => "non-finite value when converting float to duration", FromSecsErrorKind::Overflow => "overflow when converting float to duration", - FromSecsErrorKind::Underflow => "underflow when converting float to duration", + FromSecsErrorKind::Negative => "negative value when converting float to duration", } } } @@ -1292,10 +1290,10 @@ impl fmt::Display for FromSecsError { #[derive(Debug, Clone, PartialEq, Eq)] enum FromSecsErrorKind { - // Value is not a finite value (either infinity or NaN). + // Value is not a finite value (either + or - infinity or NaN). NonFinite, // Value is too large to store in a `Duration`. Overflow, - // Value is less than `0.0`. - Underflow, + // Value is negative. + Negative, } |
