@@ -55,44 +55,44 @@ impl PrimitiveArray {
5555 }
5656 Self :: new ( own_values, patched_validity)
5757 }
58+ }
5859
59- /// Patches a chunk of decoded values with the given patches .
60- ///
61- /// # Arguments
62- ///
63- /// * `decoded_values` - Mutable slice of decoded values to be patched
64- /// * `patches_indices` - Indices indicating which positions to patch
65- /// * `patches_values` - Values to apply at the patched indices
66- /// * `patches_offset` - Offset to subtract from patch indices
67- /// * `chunk_offsets_slice` - Slice containing offsets for each chunk
68- /// * `chunk_idx` - Index of the chunk to patch
69- #[ inline]
70- pub fn patch_chunk < T , I , C > (
71- decoded_values : & mut [ T ] ,
72- patches_indices : & [ I ] ,
73- patches_values : & [ T ] ,
74- patches_offset : usize ,
75- chunk_offsets_slice : & [ C ] ,
76- chunk_idx : usize ,
77- ) where
78- T : NativePType ,
79- I : UnsignedPType ,
80- C : UnsignedPType ,
81- {
82- let patches_start_idx = chunk_offsets_slice[ chunk_idx] . as_ ( ) ;
83- let patches_end_idx = if chunk_idx + 1 < chunk_offsets_slice. len ( ) {
84- chunk_offsets_slice[ chunk_idx + 1 ] . as_ ( )
85- } else {
86- patches_indices. len ( )
87- } ;
60+ /// Patches a chunk of decoded values.
61+ ///
62+ /// # Arguments
63+ ///
64+ /// * `decoded_values` - Mutable slice of decoded values to be patched
65+ /// * `patches_indices` - Indices indicating which positions to patch
66+ /// * `patches_values` - Values to apply at the patched indices
67+ /// * `patches_offset` - Offset to subtract from patch indices
68+ /// * `chunk_offsets_slice` - Slice containing offsets for each chunk
69+ /// * `chunk_idx` - Index of the chunk to patch
70+ #[ inline]
71+ pub fn patch_chunk < T , I , C > (
72+ decoded_values : & mut [ T ] ,
73+ patches_indices : & [ I ] ,
74+ patches_values : & [ T ] ,
75+ patches_offset : usize ,
76+ chunk_offsets_slice : & [ C ] ,
77+ chunk_idx : usize ,
78+ ) where
79+ T : NativePType ,
80+ I : UnsignedPType ,
81+ C : UnsignedPType ,
82+ {
83+ let patches_start_idx = chunk_offsets_slice[ chunk_idx] . as_ ( ) ;
84+ let patches_end_idx = if chunk_idx + 1 < chunk_offsets_slice. len ( ) {
85+ chunk_offsets_slice[ chunk_idx + 1 ] . as_ ( )
86+ } else {
87+ patches_indices. len ( )
88+ } ;
8889
89- let chunk_start = chunk_idx * 1024 ;
90- for patches_idx in patches_start_idx..patches_end_idx {
91- let patched_value = patches_values[ patches_idx] ;
92- let absolute_index: usize = patches_indices[ patches_idx] . as_ ( ) - patches_offset;
93- let chunk_relative_index = absolute_index - chunk_start;
94- decoded_values[ chunk_relative_index] = patched_value;
95- }
90+ let chunk_start = chunk_idx * 1024 ;
91+ for patches_idx in patches_start_idx..patches_end_idx {
92+ let patched_value = patches_values[ patches_idx] ;
93+ let absolute_index: usize = patches_indices[ patches_idx] . as_ ( ) - patches_offset;
94+ let chunk_relative_index = absolute_index - chunk_start;
95+ decoded_values[ chunk_relative_index] = patched_value;
9696 }
9797}
9898
0 commit comments