@@ -62,12 +62,12 @@ impl_arrow_assoc!(f64, ArrowDataType::Float64, MutablePrimitiveArray<f64>);
6262impl_arrow_assoc ! ( bool , ArrowDataType :: Boolean , MutableBooleanArray ) ;
6363
6464macro_rules! impl_arrow_assoc_vec {
65- ( $T: ty, $AT: expr) => {
65+ ( $T: ty, $PT : ty , $ AT: expr) => {
6666 impl ArrowAssoc for Vec <$T> {
67- type Builder = MutableListArray <i64 , MutablePrimitiveArray <$T> >;
67+ type Builder = MutableListArray <i64 , $PT >;
6868
6969 fn builder( nrows: usize ) -> Self :: Builder {
70- MutableListArray :: <i64 , MutablePrimitiveArray <$T> >:: with_capacity( nrows)
70+ MutableListArray :: <i64 , $PT >:: with_capacity( nrows)
7171 }
7272
7373 #[ inline]
@@ -86,10 +86,10 @@ macro_rules! impl_arrow_assoc_vec {
8686 }
8787
8888 impl ArrowAssoc for Option <Vec <$T>> {
89- type Builder = MutableListArray <i64 , MutablePrimitiveArray <$T> >;
89+ type Builder = MutableListArray <i64 , $PT >;
9090
9191 fn builder( nrows: usize ) -> Self :: Builder {
92- MutableListArray :: <i64 , MutablePrimitiveArray <$T> >:: with_capacity( nrows)
92+ MutableListArray :: <i64 , $PT >:: with_capacity( nrows)
9393 }
9494
9595 #[ inline]
@@ -114,12 +114,19 @@ macro_rules! impl_arrow_assoc_vec {
114114 } ;
115115}
116116
117- impl_arrow_assoc_vec ! ( i32 , ArrowDataType :: Int32 ) ;
118- impl_arrow_assoc_vec ! ( i64 , ArrowDataType :: Int64 ) ;
119- impl_arrow_assoc_vec ! ( u32 , ArrowDataType :: UInt32 ) ;
120- impl_arrow_assoc_vec ! ( u64 , ArrowDataType :: UInt64 ) ;
121- impl_arrow_assoc_vec ! ( f32 , ArrowDataType :: Float32 ) ;
122- impl_arrow_assoc_vec ! ( f64 , ArrowDataType :: Float64 ) ;
117+ macro_rules! impl_arrow_assoc_primitive_vec {
118+ ( $T: ty, $AT: expr) => {
119+ impl_arrow_assoc_vec!( $T, MutablePrimitiveArray <$T>, $AT) ;
120+ } ;
121+ }
122+
123+ impl_arrow_assoc_vec ! ( bool , MutableBooleanArray , ArrowDataType :: Boolean ) ;
124+ impl_arrow_assoc_primitive_vec ! ( i32 , ArrowDataType :: Int32 ) ;
125+ impl_arrow_assoc_primitive_vec ! ( i64 , ArrowDataType :: Int64 ) ;
126+ impl_arrow_assoc_primitive_vec ! ( u32 , ArrowDataType :: UInt32 ) ;
127+ impl_arrow_assoc_primitive_vec ! ( u64 , ArrowDataType :: UInt64 ) ;
128+ impl_arrow_assoc_primitive_vec ! ( f32 , ArrowDataType :: Float32 ) ;
129+ impl_arrow_assoc_primitive_vec ! ( f64 , ArrowDataType :: Float64 ) ;
123130
124131impl ArrowAssoc for & str {
125132 type Builder = MutableUtf8Array < i64 > ;
0 commit comments