@@ -397,13 +397,10 @@ pub fn array_from_json(
397
397
398
398
match ( days, milliseconds) {
399
399
( Value :: Number ( d) , Value :: Number ( m) ) => {
400
- let mut bytes = [ 0_u8 ; 8 ] ;
401
- let m = ( m. as_i64 ( ) . unwrap ( ) as i32 ) . to_le_bytes ( ) ;
402
- let d = ( d. as_i64 ( ) . unwrap ( ) as i32 ) . to_le_bytes ( ) ;
403
-
404
- let c = [ d, m] . concat ( ) ;
405
- bytes. copy_from_slice ( c. as_slice ( ) ) ;
406
- i64:: from_le_bytes ( bytes)
400
+ IntervalDayTimeType :: make_value (
401
+ d. as_i64 ( ) . unwrap ( ) as i32 ,
402
+ m. as_i64 ( ) . unwrap ( ) as i32 ,
403
+ )
407
404
}
408
405
_ => {
409
406
panic ! ( "Unable to parse {value:?} as interval daytime" )
@@ -519,16 +516,11 @@ pub fn array_from_json(
519
516
Value :: Number ( months) ,
520
517
Value :: Number ( days) ,
521
518
Value :: Number ( nanoseconds) ,
522
- ) => {
523
- let months = months. as_i64 ( ) . unwrap ( ) as i32 ;
524
- let days = days. as_i64 ( ) . unwrap ( ) as i32 ;
525
- let nanoseconds = nanoseconds. as_i64 ( ) . unwrap ( ) ;
526
- let months_days_ns: i128 =
527
- ( ( nanoseconds as i128 ) & 0xFFFFFFFFFFFFFFFF ) << 64
528
- | ( ( days as i128 ) & 0xFFFFFFFF ) << 32
529
- | ( ( months as i128 ) & 0xFFFFFFFF ) ;
530
- months_days_ns
531
- }
519
+ ) => IntervalMonthDayNanoType :: make_value (
520
+ months. as_i64 ( ) . unwrap ( ) as i32 ,
521
+ days. as_i64 ( ) . unwrap ( ) as i32 ,
522
+ nanoseconds. as_i64 ( ) . unwrap ( ) ,
523
+ ) ,
532
524
( _, _, _) => {
533
525
panic ! ( "Unable to parse {v:?} as MonthDayNano" )
534
526
}
0 commit comments