@@ -240,14 +240,13 @@ pub fn parse_datetime_at_date<S: AsRef<str> + Clone>(
240240 // reference date could be parsed, then try to parse the entire
241241 // string as a time delta. If no time delta could be parsed,
242242 // return an error.
243- let ( ref_date, n) = match parse_reference_date ( date, s. as_ref ( ) ) {
244- Some ( ( ref_date, n) ) => ( ref_date, n) ,
245- None => {
246- let tz = TimeZone :: from_offset ( date. offset ( ) ) ;
247- match date. naive_local ( ) . and_local_timezone ( tz) {
248- MappedLocalTime :: Single ( ref_date) => ( ref_date, 0 ) ,
249- _ => return Err ( ParseDateTimeError :: InvalidInput ) ,
250- }
243+ let ( ref_date, n) = if let Some ( ( ref_date, n) ) = parse_reference_date ( date, s. as_ref ( ) ) {
244+ ( ref_date, n)
245+ } else {
246+ let tz = TimeZone :: from_offset ( date. offset ( ) ) ;
247+ match date. naive_local ( ) . and_local_timezone ( tz) {
248+ MappedLocalTime :: Single ( ref_date) => ( ref_date, 0 ) ,
249+ _ => return Err ( ParseDateTimeError :: InvalidInput ) ,
251250 }
252251 } ;
253252 parse_relative_time_at_date ( ref_date, & s. as_ref ( ) [ n..] )
@@ -619,12 +618,12 @@ mod tests {
619618 for offset in offsets {
620619 // positive offset
621620 let time = Utc . timestamp_opt ( offset, 0 ) . unwrap ( ) ;
622- let dt = parse_datetime ( format ! ( "@{}" , offset ) ) ;
621+ let dt = parse_datetime ( format ! ( "@{offset}" ) ) ;
623622 assert_eq ! ( dt. unwrap( ) , time) ;
624623
625624 // negative offset
626625 let time = Utc . timestamp_opt ( -offset, 0 ) . unwrap ( ) ;
627- let dt = parse_datetime ( format ! ( "@-{}" , offset ) ) ;
626+ let dt = parse_datetime ( format ! ( "@-{offset}" ) ) ;
628627 assert_eq ! ( dt. unwrap( ) , time) ;
629628 }
630629 }
@@ -642,7 +641,7 @@ mod tests {
642641 let parsed_time = parse_datetime_at_date ( test_date, "9:04:30 PM +0530" )
643642 . unwrap ( )
644643 . timestamp ( ) ;
645- assert_eq ! ( parsed_time, 1709480070 )
644+ assert_eq ! ( parsed_time, 1709480070 ) ;
646645 }
647646 }
648647 /// Used to test example code presented in the README.
@@ -862,9 +861,10 @@ mod tests {
862861 let now = Local :: now ( ) ;
863862 let midnight = NaiveTime :: from_hms_opt ( 0 , 0 , 0 ) . unwrap ( ) ;
864863 let today = now. weekday ( ) ;
865- let midnight_today = match now. with_time ( midnight) {
866- MappedLocalTime :: Single ( t) => t,
867- _ => panic ! ( ) ,
864+ let midnight_today = if let MappedLocalTime :: Single ( t) = now. with_time ( midnight) {
865+ t
866+ } else {
867+ panic ! ( )
868868 } ;
869869
870870 for ( s, day) in [
@@ -877,7 +877,7 @@ mod tests {
877877 ( "saturday" , Weekday :: Sat ) ,
878878 ] {
879879 let actual = crate :: parse_datetime ( s) . unwrap ( ) ;
880- let delta = Days :: new ( day. days_since ( today) as u64 ) ;
880+ let delta = Days :: new ( u64 :: from ( day. days_since ( today) ) ) ;
881881 let expected = midnight_today. checked_add_days ( delta) . unwrap ( ) ;
882882 assert_eq ! ( actual, expected) ;
883883 }
0 commit comments