@@ -345,7 +345,7 @@ macro_rules! impl_Exp {
345345
346346 // decode 2 chars at a time
347347 while n >= 100 {
348- let d1 = ( ( n % 100 ) << 1 ) as usize ;
348+ let d1 = ( ( n % 100 ) as usize ) << 1 ;
349349 curr -= 2 ;
350350 // SAFETY: `d1 <= 198`, so we can copy from `lut_ptr[d1..d1 + 2]` since
351351 // `DEC_DIGITS_LUT` has a length of 200.
@@ -494,73 +494,73 @@ fn parse_u64_into<const N: usize>(mut n: u64, buf: &mut [MaybeUninit<u8>; N], cu
494494 n /= 1e16 as u64 ;
495495
496496 // Some of these are nops but it looks more elegant this way.
497- let d1 = ( ( ( to_parse / 1e14 as u64 ) % 100 ) << 1 ) as usize ;
498- let d2 = ( ( ( to_parse / 1e12 as u64 ) % 100 ) << 1 ) as usize ;
499- let d3 = ( ( ( to_parse / 1e10 as u64 ) % 100 ) << 1 ) as usize ;
500- let d4 = ( ( ( to_parse / 1e8 as u64 ) % 100 ) << 1 ) as usize ;
501- let d5 = ( ( ( to_parse / 1e6 as u64 ) % 100 ) << 1 ) as usize ;
502- let d6 = ( ( ( to_parse / 1e4 as u64 ) % 100 ) << 1 ) as usize ;
503- let d7 = ( ( ( to_parse / 1e2 as u64 ) % 100 ) << 1 ) as usize ;
504- let d8 = ( ( ( to_parse / 1e0 as u64 ) % 100 ) << 1 ) as usize ;
497+ let d1 = ( ( to_parse / 1e14 as u64 ) % 100 ) << 1 ;
498+ let d2 = ( ( to_parse / 1e12 as u64 ) % 100 ) << 1 ;
499+ let d3 = ( ( to_parse / 1e10 as u64 ) % 100 ) << 1 ;
500+ let d4 = ( ( to_parse / 1e8 as u64 ) % 100 ) << 1 ;
501+ let d5 = ( ( to_parse / 1e6 as u64 ) % 100 ) << 1 ;
502+ let d6 = ( ( to_parse / 1e4 as u64 ) % 100 ) << 1 ;
503+ let d7 = ( ( to_parse / 1e2 as u64 ) % 100 ) << 1 ;
504+ let d8 = ( ( to_parse / 1e0 as u64 ) % 100 ) << 1 ;
505505
506506 * curr -= 16 ;
507507
508- ptr:: copy_nonoverlapping ( lut_ptr. add ( d1) , buf_ptr. add ( * curr + 0 ) , 2 ) ;
509- ptr:: copy_nonoverlapping ( lut_ptr. add ( d2) , buf_ptr. add ( * curr + 2 ) , 2 ) ;
510- ptr:: copy_nonoverlapping ( lut_ptr. add ( d3) , buf_ptr. add ( * curr + 4 ) , 2 ) ;
511- ptr:: copy_nonoverlapping ( lut_ptr. add ( d4) , buf_ptr. add ( * curr + 6 ) , 2 ) ;
512- ptr:: copy_nonoverlapping ( lut_ptr. add ( d5) , buf_ptr. add ( * curr + 8 ) , 2 ) ;
513- ptr:: copy_nonoverlapping ( lut_ptr. add ( d6) , buf_ptr. add ( * curr + 10 ) , 2 ) ;
514- ptr:: copy_nonoverlapping ( lut_ptr. add ( d7) , buf_ptr. add ( * curr + 12 ) , 2 ) ;
515- ptr:: copy_nonoverlapping ( lut_ptr. add ( d8) , buf_ptr. add ( * curr + 14 ) , 2 ) ;
508+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d1 as usize ) , buf_ptr. add ( * curr + 0 ) , 2 ) ;
509+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d2 as usize ) , buf_ptr. add ( * curr + 2 ) , 2 ) ;
510+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d3 as usize ) , buf_ptr. add ( * curr + 4 ) , 2 ) ;
511+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d4 as usize ) , buf_ptr. add ( * curr + 6 ) , 2 ) ;
512+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d5 as usize ) , buf_ptr. add ( * curr + 8 ) , 2 ) ;
513+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d6 as usize ) , buf_ptr. add ( * curr + 10 ) , 2 ) ;
514+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d7 as usize ) , buf_ptr. add ( * curr + 12 ) , 2 ) ;
515+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d8 as usize ) , buf_ptr. add ( * curr + 14 ) , 2 ) ;
516516 }
517517 if n >= 1e8 as u64 {
518518 let to_parse = n % 1e8 as u64 ;
519519 n /= 1e8 as u64 ;
520520
521521 // Some of these are nops but it looks more elegant this way.
522- let d1 = ( ( ( to_parse / 1e6 as u64 ) % 100 ) << 1 ) as usize ;
523- let d2 = ( ( ( to_parse / 1e4 as u64 ) % 100 ) << 1 ) as usize ;
524- let d3 = ( ( ( to_parse / 1e2 as u64 ) % 100 ) << 1 ) as usize ;
525- let d4 = ( ( ( to_parse / 1e0 as u64 ) % 100 ) << 1 ) as usize ;
522+ let d1 = ( ( to_parse / 1e6 as u64 ) % 100 ) << 1 ;
523+ let d2 = ( ( to_parse / 1e4 as u64 ) % 100 ) << 1 ;
524+ let d3 = ( ( to_parse / 1e2 as u64 ) % 100 ) << 1 ;
525+ let d4 = ( ( to_parse / 1e0 as u64 ) % 100 ) << 1 ;
526526 * curr -= 8 ;
527527
528- ptr:: copy_nonoverlapping ( lut_ptr. add ( d1) , buf_ptr. add ( * curr + 0 ) , 2 ) ;
529- ptr:: copy_nonoverlapping ( lut_ptr. add ( d2) , buf_ptr. add ( * curr + 2 ) , 2 ) ;
530- ptr:: copy_nonoverlapping ( lut_ptr. add ( d3) , buf_ptr. add ( * curr + 4 ) , 2 ) ;
531- ptr:: copy_nonoverlapping ( lut_ptr. add ( d4) , buf_ptr. add ( * curr + 6 ) , 2 ) ;
528+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d1 as usize ) , buf_ptr. add ( * curr + 0 ) , 2 ) ;
529+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d2 as usize ) , buf_ptr. add ( * curr + 2 ) , 2 ) ;
530+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d3 as usize ) , buf_ptr. add ( * curr + 4 ) , 2 ) ;
531+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d4 as usize ) , buf_ptr. add ( * curr + 6 ) , 2 ) ;
532532 }
533533 // `n` < 1e8 < (1 << 32)
534534 let mut n = n as u32 ;
535535 if n >= 1e4 as u32 {
536536 let to_parse = n % 1e4 as u32 ;
537537 n /= 1e4 as u32 ;
538538
539- let d1 = ( ( to_parse / 100 ) << 1 ) as usize ;
540- let d2 = ( ( to_parse % 100 ) << 1 ) as usize ;
539+ let d1 = ( to_parse / 100 ) << 1 ;
540+ let d2 = ( to_parse % 100 ) << 1 ;
541541 * curr -= 4 ;
542542
543- ptr:: copy_nonoverlapping ( lut_ptr. add ( d1) , buf_ptr. add ( * curr + 0 ) , 2 ) ;
544- ptr:: copy_nonoverlapping ( lut_ptr. add ( d2) , buf_ptr. add ( * curr + 2 ) , 2 ) ;
543+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d1 as usize ) , buf_ptr. add ( * curr + 0 ) , 2 ) ;
544+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d2 as usize ) , buf_ptr. add ( * curr + 2 ) , 2 ) ;
545545 }
546546
547547 // `n` < 1e4 < (1 << 16)
548548 let mut n = n as u16 ;
549549 if n >= 100 {
550- let d1 = ( ( n % 100 ) << 1 ) as usize ;
550+ let d1 = ( n % 100 ) << 1 ;
551551 n /= 100 ;
552552 * curr -= 2 ;
553- ptr:: copy_nonoverlapping ( lut_ptr. add ( d1) , buf_ptr. add ( * curr) , 2 ) ;
553+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d1 as usize ) , buf_ptr. add ( * curr) , 2 ) ;
554554 }
555555
556556 // decode last 1 or 2 chars
557557 if n < 10 {
558558 * curr -= 1 ;
559559 * buf_ptr. add ( * curr) = ( n as u8 ) + b'0' ;
560560 } else {
561- let d1 = ( n << 1 ) as usize ;
561+ let d1 = n << 1 ;
562562 * curr -= 2 ;
563- ptr:: copy_nonoverlapping ( lut_ptr. add ( d1) , buf_ptr. add ( * curr) , 2 ) ;
563+ ptr:: copy_nonoverlapping ( lut_ptr. add ( d1 as usize ) , buf_ptr. add ( * curr) , 2 ) ;
564564 }
565565 }
566566}
0 commit comments