@@ -5,22 +5,22 @@ const NANOS_PER_SEC: i64 = 1_000_000_000;
55const NANOS_PER_MICRO : i64 = 1000 ;
66
77impl Interval {
8- /// Tries to convert from the `Duration` type to a `Interval`. Will
9- /// return `None` on a overflow. This is a lossy conversion in that
8+ /// Tries to convert from the `Duration` type to a `Interval`. Will
9+ /// return `None` on a overflow. This is a lossy conversion in that
1010 /// any units smaller than a microsecond will be lost.
1111 pub fn from_duration ( duration : Duration ) -> Option < Interval > {
12- let mut days = duration. num_days ( ) ;
13- let mut new_dur = duration - Duration :: days ( days) ;
14- let mut hours = duration. num_hours ( ) ;
15- new_dur = new_dur - Duration :: hours ( hours) ;
16- let minutes = new_dur. num_minutes ( ) ;
17- new_dur = new_dur - Duration :: minutes ( minutes) ;
12+ let mut days = duration. num_days ( ) ;
13+ let mut new_dur = duration - Duration :: days ( days) ;
14+ let mut hours = duration. num_hours ( ) ;
15+ new_dur -= Duration :: hours ( hours) ;
16+ let minutes = new_dur. num_minutes ( ) ;
17+ new_dur -= Duration :: minutes ( minutes) ;
1818 let nano_secs = new_dur. num_nanoseconds ( ) ?;
19- if days > ( i32:: max_value ( ) as i64 ) {
20- let overflow_days = days - ( i32:: max_value ( ) as i64 ) ;
19+ if days > ( i32:: MAX as i64 ) {
20+ let overflow_days = days - ( i32:: MAX as i64 ) ;
2121 let added_hours = overflow_days. checked_mul ( 24 ) ?;
22- hours = hours. checked_add ( added_hours) ?;
23- days -= overflow_days;
22+ hours = hours. checked_add ( added_hours) ?;
23+ days -= overflow_days;
2424 }
2525 let ( seconds, remaining_nano) = reduce_by_units ( nano_secs, NANOS_PER_SEC ) ;
2626 // We have to discard any remaining nanoseconds
@@ -39,22 +39,21 @@ impl Interval {
3939}
4040
4141fn reduce_by_units ( nano_secs : i64 , unit : i64 ) -> ( i64 , i64 ) {
42- let new_time_unit = ( nano_secs - ( nano_secs % unit) ) / unit;
42+ let new_time_unit = ( nano_secs - ( nano_secs % unit) ) / unit;
4343 let remaining_nano = nano_secs - ( new_time_unit * unit) ;
44- ( new_time_unit, remaining_nano)
44+ ( new_time_unit, remaining_nano)
4545}
4646
4747#[ cfg( test) ]
4848mod tests {
4949 use super :: * ;
5050 use chrono:: Duration ;
5151
52-
5352 #[ test]
5453 fn can_convert_small_amount_of_days ( ) {
5554 let dur = Duration :: days ( 5 ) ;
5655 let interval = Interval :: from_duration ( dur) ;
57- assert_eq ! ( interval, Some ( Interval :: new( 0 , 5 , 0 ) ) )
56+ assert_eq ! ( interval, Some ( Interval :: new( 0 , 5 , 0 ) ) )
5857 }
5958
6059 #[ test]
@@ -68,13 +67,13 @@ mod tests {
6867 fn can_convert_small_amount_of_secs ( ) {
6968 let dur = Duration :: seconds ( 1 ) ;
7069 let interval = Interval :: from_duration ( dur) ;
71- assert_eq ! ( interval, Some ( Interval :: new( 0 , 0 , 1_000_000 ) ) )
70+ assert_eq ! ( interval, Some ( Interval :: new( 0 , 0 , 1_000_000 ) ) )
7271 }
7372
7473 #[ test]
7574 fn can_convert_one_micro ( ) {
7675 let dur = Duration :: nanoseconds ( 1000 ) ;
7776 let interval = Interval :: from_duration ( dur) ;
78- assert_eq ! ( interval, Some ( Interval :: new( 0 , 0 , 1 ) ) )
77+ assert_eq ! ( interval, Some ( Interval :: new( 0 , 0 , 1 ) ) )
7978 }
80- }
79+ }
0 commit comments