1616// under the License.
1717
1818use arrow:: array:: {
19- Array , ArrayRef , AsArray , FixedSizeListArray , GenericBinaryArray , GenericListArray ,
20- GenericListViewArray , GenericStringArray , OffsetSizeTrait , PrimitiveArray ,
19+ Array , AsArray , FixedSizeListArray , GenericBinaryArray , GenericListArray , GenericListViewArray ,
20+ GenericStringArray , ListLikeArray , OffsetSizeTrait , PrimitiveArray ,
2121} ;
2222use arrow:: compute:: { CastOptions , kernels:: cast} ;
2323use arrow:: datatypes:: {
@@ -32,7 +32,6 @@ use parquet_variant::{
3232 VariantDecimal16 , VariantDecimalType ,
3333} ;
3434use std:: collections:: HashMap ;
35- use std:: ops:: Range ;
3635
3736// ============================================================================
3837// Row-oriented builders for efficient Arrow-to-Variant conversion
@@ -552,54 +551,6 @@ impl<'a, L: ListLikeArray> ListArrowToVariantBuilder<'a, L> {
552551 }
553552}
554553
555- /// Trait for list-like arrays that can provide element ranges
556- pub ( crate ) trait ListLikeArray : Array {
557- /// Get the values array
558- fn values ( & self ) -> & ArrayRef ;
559-
560- /// Get the start and end indices for a list element
561- fn element_range ( & self , index : usize ) -> Range < usize > ;
562- }
563-
564- impl < O : OffsetSizeTrait > ListLikeArray for GenericListArray < O > {
565- fn values ( & self ) -> & ArrayRef {
566- self . values ( )
567- }
568-
569- fn element_range ( & self , index : usize ) -> Range < usize > {
570- let offsets = self . offsets ( ) ;
571- let start = offsets[ index] . as_usize ( ) ;
572- let end = offsets[ index + 1 ] . as_usize ( ) ;
573- start..end
574- }
575- }
576-
577- impl < O : OffsetSizeTrait > ListLikeArray for GenericListViewArray < O > {
578- fn values ( & self ) -> & ArrayRef {
579- self . values ( )
580- }
581-
582- fn element_range ( & self , index : usize ) -> Range < usize > {
583- let offsets = self . value_offsets ( ) ;
584- let sizes = self . value_sizes ( ) ;
585- let offset = offsets[ index] . as_usize ( ) ;
586- let size = sizes[ index] . as_usize ( ) ;
587- offset..( offset + size)
588- }
589- }
590-
591- impl ListLikeArray for FixedSizeListArray {
592- fn values ( & self ) -> & ArrayRef {
593- self . values ( )
594- }
595-
596- fn element_range ( & self , index : usize ) -> Range < usize > {
597- let value_length = self . value_length ( ) . as_usize ( ) ;
598- let offset = index * value_length;
599- offset..( offset + value_length)
600- }
601- }
602-
603554/// Struct builder for StructArray
604555pub ( crate ) struct StructArrowToVariantBuilder < ' a > {
605556 struct_array : & ' a arrow:: array:: StructArray ,
0 commit comments