1616// under the License.
1717
1818use crate :: array:: print_long_array;
19- use crate :: builder:: GenericBytesViewBuilder ;
19+ use crate :: builder:: GenericByteViewBuilder ;
2020use crate :: iterator:: ArrayIter ;
2121use crate :: types:: bytes:: ByteArrayNativeType ;
22- use crate :: types:: BytesViewType ;
22+ use crate :: types:: { BinaryViewType , ByteViewType , StringViewType } ;
2323use crate :: { Array , ArrayAccessor , ArrayRef } ;
2424use arrow_buffer:: { Buffer , NullBuffer , ScalarBuffer } ;
25- use arrow_data:: { ArrayData , ArrayDataBuilder , BytesView } ;
25+ use arrow_data:: { ArrayData , ArrayDataBuilder , ByteView } ;
2626use arrow_schema:: { ArrowError , DataType } ;
2727use std:: any:: Any ;
2828use std:: fmt:: Debug ;
2929use std:: marker:: PhantomData ;
3030use std:: sync:: Arc ;
3131
3232/// An array of variable length bytes view arrays
33- pub struct GenericBytesViewArray < T : BytesViewType + ?Sized > {
33+ pub struct GenericByteViewArray < T : ByteViewType + ?Sized > {
3434 data_type : DataType ,
3535 views : ScalarBuffer < u128 > ,
3636 buffers : Vec < Buffer > ,
3737 phantom : PhantomData < T > ,
3838 nulls : Option < NullBuffer > ,
3939}
4040
41- impl < T : BytesViewType + ?Sized > Clone for GenericBytesViewArray < T > {
41+ impl < T : ByteViewType + ?Sized > Clone for GenericByteViewArray < T > {
4242 fn clone ( & self ) -> Self {
4343 Self {
4444 data_type : T :: DATA_TYPE ,
@@ -50,22 +50,22 @@ impl<T: BytesViewType + ?Sized> Clone for GenericBytesViewArray<T> {
5050 }
5151}
5252
53- impl < T : BytesViewType + ?Sized > GenericBytesViewArray < T > {
54- /// Create a new [`GenericBytesViewArray `] from the provided parts, panicking on failure
53+ impl < T : ByteViewType + ?Sized > GenericByteViewArray < T > {
54+ /// Create a new [`GenericByteViewArray `] from the provided parts, panicking on failure
5555 ///
5656 /// # Panics
5757 ///
58- /// Panics if [`GenericBytesViewArray ::try_new`] returns an error
58+ /// Panics if [`GenericByteViewArray ::try_new`] returns an error
5959 pub fn new ( views : ScalarBuffer < u128 > , buffers : Vec < Buffer > , nulls : Option < NullBuffer > ) -> Self {
6060 Self :: try_new ( views, buffers, nulls) . unwrap ( )
6161 }
6262
63- /// Create a new [`GenericBytesViewArray `] from the provided parts, returning an error on failure
63+ /// Create a new [`GenericByteViewArray `] from the provided parts, returning an error on failure
6464 ///
6565 /// # Errors
6666 ///
6767 /// * `views.len() != nulls.len()`
68- /// * [BytesViewType ::validate] fails
68+ /// * [ByteViewType ::validate] fails
6969 pub fn try_new (
7070 views : ScalarBuffer < u128 > ,
7171 buffers : Vec < Buffer > ,
@@ -93,7 +93,7 @@ impl<T: BytesViewType + ?Sized> GenericBytesViewArray<T> {
9393 } )
9494 }
9595
96- /// Create a new [`GenericBytesViewArray `] from the provided parts, without validation
96+ /// Create a new [`GenericByteViewArray `] from the provided parts, without validation
9797 ///
9898 /// # Safety
9999 ///
@@ -112,7 +112,7 @@ impl<T: BytesViewType + ?Sized> GenericBytesViewArray<T> {
112112 }
113113 }
114114
115- /// Create a new [`GenericBytesViewArray `] of length `len` where all values are null
115+ /// Create a new [`GenericByteViewArray `] of length `len` where all values are null
116116 pub fn new_null ( len : usize ) -> Self {
117117 Self {
118118 data_type : T :: DATA_TYPE ,
@@ -123,14 +123,14 @@ impl<T: BytesViewType + ?Sized> GenericBytesViewArray<T> {
123123 }
124124 }
125125
126- /// Creates a [`GenericBytesViewArray `] based on an iterator of values without nulls
126+ /// Creates a [`GenericByteViewArray `] based on an iterator of values without nulls
127127 pub fn from_iter_values < Ptr , I > ( iter : I ) -> Self
128128 where
129129 Ptr : AsRef < T :: Native > ,
130130 I : IntoIterator < Item = Ptr > ,
131131 {
132132 let iter = iter. into_iter ( ) ;
133- let mut builder = GenericBytesViewBuilder :: < T > :: with_capacity ( iter. size_hint ( ) . 0 ) ;
133+ let mut builder = GenericByteViewBuilder :: < T > :: with_capacity ( iter. size_hint ( ) . 0 ) ;
134134 for v in iter {
135135 builder. append_value ( v) ;
136136 }
@@ -179,7 +179,7 @@ impl<T: BytesViewType + ?Sized> GenericBytesViewArray<T> {
179179 let ptr = self . views . as_ptr ( ) as * const u8 ;
180180 std:: slice:: from_raw_parts ( ptr. add ( idx * 16 + 4 ) , len as usize )
181181 } else {
182- let view = BytesView :: from ( * v) ;
182+ let view = ByteView :: from ( * v) ;
183183 let data = self . buffers . get_unchecked ( view. buffer_index as usize ) ;
184184 let offset = view. offset as usize ;
185185 data. get_unchecked ( offset..offset + len as usize )
@@ -204,7 +204,7 @@ impl<T: BytesViewType + ?Sized> GenericBytesViewArray<T> {
204204 }
205205}
206206
207- impl < T : BytesViewType + ?Sized > Debug for GenericBytesViewArray < T > {
207+ impl < T : ByteViewType + ?Sized > Debug for GenericByteViewArray < T > {
208208 fn fmt ( & self , f : & mut std:: fmt:: Formatter ) -> std:: fmt:: Result {
209209 write ! ( f, "{}ViewArray\n [\n " , T :: PREFIX ) ?;
210210 print_long_array ( self , f, |array, index, f| {
@@ -214,7 +214,7 @@ impl<T: BytesViewType + ?Sized> Debug for GenericBytesViewArray<T> {
214214 }
215215}
216216
217- impl < T : BytesViewType + ?Sized > Array for GenericBytesViewArray < T > {
217+ impl < T : ByteViewType + ?Sized > Array for GenericByteViewArray < T > {
218218 fn as_any ( & self ) -> & dyn Any {
219219 self
220220 }
@@ -265,19 +265,19 @@ impl<T: BytesViewType + ?Sized> Array for GenericBytesViewArray<T> {
265265 }
266266}
267267
268- impl < ' a , T : BytesViewType + ?Sized > ArrayAccessor for & ' a GenericBytesViewArray < T > {
268+ impl < ' a , T : ByteViewType + ?Sized > ArrayAccessor for & ' a GenericByteViewArray < T > {
269269 type Item = & ' a T :: Native ;
270270
271271 fn value ( & self , index : usize ) -> Self :: Item {
272- GenericBytesViewArray :: value ( self , index)
272+ GenericByteViewArray :: value ( self , index)
273273 }
274274
275275 unsafe fn value_unchecked ( & self , index : usize ) -> Self :: Item {
276- GenericBytesViewArray :: value_unchecked ( self , index)
276+ GenericByteViewArray :: value_unchecked ( self , index)
277277 }
278278}
279279
280- impl < ' a , T : BytesViewType + ?Sized > IntoIterator for & ' a GenericBytesViewArray < T > {
280+ impl < ' a , T : ByteViewType + ?Sized > IntoIterator for & ' a GenericByteViewArray < T > {
281281 type Item = Option < & ' a T :: Native > ;
282282 type IntoIter = ArrayIter < Self > ;
283283
@@ -286,7 +286,7 @@ impl<'a, T: BytesViewType + ?Sized> IntoIterator for &'a GenericBytesViewArray<T
286286 }
287287}
288288
289- impl < T : BytesViewType + ?Sized > From < ArrayData > for GenericBytesViewArray < T > {
289+ impl < T : ByteViewType + ?Sized > From < ArrayData > for GenericByteViewArray < T > {
290290 fn from ( value : ArrayData ) -> Self {
291291 let views = value. buffers ( ) [ 0 ] . clone ( ) ;
292292 let views = ScalarBuffer :: new ( views, value. offset ( ) , value. len ( ) ) ;
@@ -301,8 +301,8 @@ impl<T: BytesViewType + ?Sized> From<ArrayData> for GenericBytesViewArray<T> {
301301 }
302302}
303303
304- impl < T : BytesViewType + ?Sized > From < GenericBytesViewArray < T > > for ArrayData {
305- fn from ( mut array : GenericBytesViewArray < T > ) -> Self {
304+ impl < T : ByteViewType + ?Sized > From < GenericByteViewArray < T > > for ArrayData {
305+ fn from ( mut array : GenericByteViewArray < T > ) -> Self {
306306 let len = array. len ( ) ;
307307 array. buffers . insert ( 0 , array. views . into_inner ( ) ) ;
308308 let builder = ArrayDataBuilder :: new ( T :: DATA_TYPE )
@@ -314,30 +314,30 @@ impl<T: BytesViewType + ?Sized> From<GenericBytesViewArray<T>> for ArrayData {
314314 }
315315}
316316
317- impl < Ptr , T : BytesViewType + ?Sized > FromIterator < Option < Ptr > > for GenericBytesViewArray < T >
317+ impl < Ptr , T : ByteViewType + ?Sized > FromIterator < Option < Ptr > > for GenericByteViewArray < T >
318318where
319319 Ptr : AsRef < T :: Native > ,
320320{
321321 fn from_iter < I : IntoIterator < Item = Option < Ptr > > > ( iter : I ) -> Self {
322322 let iter = iter. into_iter ( ) ;
323- let mut builder = GenericBytesViewBuilder :: < T > :: with_capacity ( iter. size_hint ( ) . 0 ) ;
323+ let mut builder = GenericByteViewBuilder :: < T > :: with_capacity ( iter. size_hint ( ) . 0 ) ;
324324 builder. extend ( iter) ;
325325 builder. finish ( )
326326 }
327327}
328328
329- /// A [`GenericBytesViewArray `] of `[u8]`
330- pub type BinaryViewArray = GenericBytesViewArray < [ u8 ] > ;
329+ /// A [`GenericByteViewArray `] of `[u8]`
330+ pub type BinaryViewArray = GenericByteViewArray < BinaryViewType > ;
331331
332- /// A [`GenericBytesViewArray `] of `str`
332+ /// A [`GenericByteViewArray `] of `str`
333333///
334334/// ```
335335/// use arrow_array::StringViewArray;
336336/// let array = StringViewArray::from_iter_values(vec!["hello", "world", "lulu", "large payload over 12 bytes"]);
337337/// assert_eq!(array.value(0), "hello");
338338/// assert_eq!(array.value(3), "large payload over 12 bytes");
339339/// ```
340- pub type StringViewArray = GenericBytesViewArray < str > ;
340+ pub type StringViewArray = GenericByteViewArray < StringViewType > ;
341341
342342impl From < Vec < & str > > for StringViewArray {
343343 fn from ( v : Vec < & str > ) -> Self {
@@ -348,7 +348,6 @@ impl From<Vec<&str>> for StringViewArray {
348348#[ cfg( test) ]
349349mod tests {
350350 use crate :: builder:: StringViewBuilder ;
351- use crate :: types:: BytesViewType ;
352351 use crate :: { Array , BinaryViewArray , StringViewArray } ;
353352
354353 #[ test]
@@ -363,10 +362,10 @@ mod tests {
363362 assert_eq ! ( array. value( 3 ) , "large payload over 12 bytes" ) ;
364363
365364 let array = BinaryViewArray :: from_iter_values ( vec ! [
366- b"hello" . to_bytes ( ) ,
367- b"world" . to_bytes ( ) ,
368- b"lulu" . to_bytes ( ) ,
369- b"large payload over 12 bytes" . to_bytes ( ) ,
365+ b"hello" . as_slice ( ) ,
366+ b"world" . as_slice ( ) ,
367+ b"lulu" . as_slice ( ) ,
368+ b"large payload over 12 bytes" . as_slice ( ) ,
370369 ] ) ;
371370 assert_eq ! ( array. value( 0 ) , b"hello" ) ;
372371 assert_eq ! ( array. value( 3 ) , b"large payload over 12 bytes" ) ;
0 commit comments