diff options
Diffstat (limited to 'vendor/time-macros/src/time.rs')
-rw-r--r-- | vendor/time-macros/src/time.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/vendor/time-macros/src/time.rs b/vendor/time-macros/src/time.rs index 719e2051f..96314de1f 100644 --- a/vendor/time-macros/src/time.rs +++ b/vendor/time-macros/src/time.rs @@ -1,6 +1,7 @@ use std::iter::Peekable; use proc_macro::{token_stream, Span, TokenTree}; +use time_core::convert::*; use crate::helpers::{consume_any_ident, consume_number, consume_punct}; use crate::to_tokens::ToTokenTree; @@ -72,21 +73,21 @@ pub(crate) fn parse(chars: &mut Peekable<token_stream::IntoIter>) -> Result<Time (hour, Period::Pm) => hour + 12, }; - if hour >= 24 { + if hour >= Hour.per(Day) { Err(Error::InvalidComponent { name: "hour", value: hour.to_string(), span_start: Some(hour_span), span_end: Some(period_span.unwrap_or(hour_span)), }) - } else if minute >= 60 { + } else if minute >= Minute.per(Hour) { Err(Error::InvalidComponent { name: "minute", value: minute.to_string(), span_start: Some(minute_span), span_end: Some(minute_span), }) - } else if second >= 60. { + } else if second >= Second.per(Minute) as _ { Err(Error::InvalidComponent { name: "second", value: second.to_string(), @@ -98,7 +99,7 @@ pub(crate) fn parse(chars: &mut Peekable<token_stream::IntoIter>) -> Result<Time hour, minute, second: second.trunc() as _, - nanosecond: (second.fract() * 1_000_000_000.).round() as _, + nanosecond: (second.fract() * Nanosecond.per(Second) as f64).round() as _, }) } } |