diff --git a/src/parse_relative_time.rs b/src/parse_relative_time.rs index 96b9c34..091adcf 100644 --- a/src/parse_relative_time.rs +++ b/src/parse_relative_time.rs @@ -1,7 +1,7 @@ // For the full copyright and license information, please view the LICENSE // file that was distributed with this source code. use crate::ParseDateTimeError; -use chrono::{DateTime, Days, Duration, Months, Utc}; +use chrono::{DateTime, Days, Duration, Months, TimeZone, Utc}; use regex::Regex; /// Parses a relative time string and returns a `Duration` representing the /// relative time. @@ -58,10 +58,10 @@ pub fn parse_relative_time(s: &str) -> Result { /// This function will return `Err(ParseDateTimeError::InvalidInput)` if the input string /// cannot be parsed as a relative time. /// ``` -fn parse_relative_time_at_date( - mut datetime: DateTime, +fn parse_relative_time_at_date( + mut datetime: DateTime, s: &str, -) -> Result, ParseDateTimeError> { +) -> Result, ParseDateTimeError> { let time_pattern: Regex = Regex::new( r"(?x) (?:(?P[-+]?\d*)\s*)? @@ -146,7 +146,11 @@ fn parse_relative_time_at_date( } } -fn add_months(datetime: DateTime, months: i64, mut is_ago: bool) -> Option> { +fn add_months( + datetime: DateTime, + months: i64, + mut is_ago: bool, +) -> Option> { let months = if months < 0 { is_ago = !is_ago; u32::try_from(-months).ok()? @@ -160,7 +164,11 @@ fn add_months(datetime: DateTime, months: i64, mut is_ago: bool) -> Option< } } -fn add_days(datetime: DateTime, days: i64, mut is_ago: bool) -> Option> { +fn add_days( + datetime: DateTime, + days: i64, + mut is_ago: bool, +) -> Option> { let days = if days < 0 { is_ago = !is_ago; u64::try_from(-days).ok()? @@ -174,11 +182,11 @@ fn add_days(datetime: DateTime, days: i64, mut is_ago: bool) -> Option, +fn add_duration( + datetime: DateTime, duration: Duration, is_ago: bool, -) -> Option> { +) -> Option> { let duration = if is_ago { -duration } else { duration }; datetime.checked_add_signed(duration) }