@@ -3,6 +3,7 @@ use std::io::Cursor;
33use bytemuck:: { cast_slice, cast_slice_mut} ;
44
55use crate :: rust:: cursor:: IncrementCursor ;
6+ use crate :: rust:: integer_compression:: helpers:: AsUsize ;
67use crate :: rust:: { FastPForError , FastPForResult , Integer , Skippable } ;
78
89/// Variable-byte encoding codec for integer compression.
@@ -138,7 +139,7 @@ impl Integer<u32> for VariableByte {
138139 }
139140
140141 // Convert u32 array to byte view
141- let byte_length = ( input_length as usize ) * 4 ;
142+ let byte_length = ( input_length. as_usize ( ) ) * 4 ;
142143 let input_start = input_offset. position ( ) as usize ;
143144
144145 // Create a byte slice view of the input
@@ -232,7 +233,7 @@ impl Integer<i8> for VariableByte {
232233 }
233234 let mut out_pos_tmp = output_offset. position ( ) ;
234235 for k in input_offset. position ( ) as u32 ..( input_offset. position ( ) as u32 + input_length) {
235- let val = input[ k as usize ] ;
236+ let val = input[ k. as_usize ( ) ] ;
236237 if val < ( 1 << 7 ) {
237238 output[ out_pos_tmp as usize ] = Self :: extract_7bits :: < 0 > ( val) as i8 ;
238239 out_pos_tmp += 1 ;
@@ -287,43 +288,43 @@ impl Integer<i8> for VariableByte {
287288 let mut tmp_outpos = output_offset. position ( ) ;
288289
289290 while p < final_p {
290- let mut v = i32:: from ( input[ p as usize ] & 0x7F ) ;
291- if input[ p as usize ] >= 0 {
291+ let mut v = i32:: from ( input[ p. as_usize ( ) ] & 0x7F ) ;
292+ if input[ p. as_usize ( ) ] >= 0 {
292293 // High bit is NOT set, this is the last byte
293294 p += 1 ;
294295 output[ tmp_outpos as usize ] = v as u32 ;
295296 tmp_outpos += 1 ;
296297 continue ;
297298 }
298299
299- v |= i32:: from ( input[ p as usize + 1 ] & 0x7F ) << 7 ;
300- if input[ p as usize + 1 ] >= 0 {
300+ v |= i32:: from ( input[ p. as_usize ( ) + 1 ] & 0x7F ) << 7 ;
301+ if input[ p. as_usize ( ) + 1 ] >= 0 {
301302 // High bit is NOT set, this is the last byte
302303 p += 2 ;
303304 output[ tmp_outpos as usize ] = v as u32 ;
304305 tmp_outpos += 1 ;
305306 continue ;
306307 }
307308
308- v |= i32:: from ( input[ p as usize + 2 ] & 0x7F ) << 14 ;
309- if input[ p as usize + 2 ] >= 0 {
309+ v |= i32:: from ( input[ p. as_usize ( ) + 2 ] & 0x7F ) << 14 ;
310+ if input[ p. as_usize ( ) + 2 ] >= 0 {
310311 // High bit is NOT set, this is the last byte
311312 p += 3 ;
312313 output[ tmp_outpos as usize ] = v as u32 ;
313314 tmp_outpos += 1 ;
314315 continue ;
315316 }
316317
317- v |= i32:: from ( input[ p as usize + 3 ] & 0x7F ) << 21 ;
318- if input[ p as usize + 3 ] >= 0 {
318+ v |= i32:: from ( input[ p. as_usize ( ) + 3 ] & 0x7F ) << 21 ;
319+ if input[ p. as_usize ( ) + 3 ] >= 0 {
319320 // High bit is NOT set, this is the last byte
320321 p += 4 ;
321322 output[ tmp_outpos as usize ] = v as u32 ;
322323 tmp_outpos += 1 ;
323324 continue ;
324325 }
325326
326- v |= i32:: from ( input[ p as usize + 4 ] & 0x0F ) << 28 ;
327+ v |= i32:: from ( input[ p. as_usize ( ) + 4 ] & 0x0F ) << 28 ;
327328 p += 5 ;
328329 output[ tmp_outpos as usize ] = v as u32 ;
329330 tmp_outpos += 1 ;
0 commit comments