pub struct GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,{ /* private fields */ }Expand description
Different from crate::GenericListArray as it stores both an offset and length
meaning that take / filter operations can be implemented without copying the underlying data.
Implementations§
Source§impl<OffsetSize> GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
impl<OffsetSize> GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
Sourcepub const DATA_TYPE_CONSTRUCTOR: fn(_: Arc<Field>) -> DataType
pub const DATA_TYPE_CONSTRUCTOR: fn(_: Arc<Field>) -> DataType
The data type constructor of listview array.
The input is the schema of the child array and
the output is the DataType, ListView or LargeListView.
Sourcepub fn try_new(
field: Arc<Field>,
offsets: ScalarBuffer<OffsetSize>,
sizes: ScalarBuffer<OffsetSize>,
values: Arc<dyn Array>,
nulls: Option<NullBuffer>,
) -> Result<GenericListViewArray<OffsetSize>, ArrowError>
pub fn try_new( field: Arc<Field>, offsets: ScalarBuffer<OffsetSize>, sizes: ScalarBuffer<OffsetSize>, values: Arc<dyn Array>, nulls: Option<NullBuffer>, ) -> Result<GenericListViewArray<OffsetSize>, ArrowError>
Create a new GenericListViewArray from the provided parts
§Errors
Errors if
offsets.len() != sizes.len()offsets.len() != nulls.len()offsets[i] > values.len()!field.is_nullable() && values.is_nullable()field.data_type() != values.data_type()0 <= offsets[i] <= length of the child array0 <= offsets[i] + size[i] <= length of the child array
Sourcepub fn new(
field: Arc<Field>,
offsets: ScalarBuffer<OffsetSize>,
sizes: ScalarBuffer<OffsetSize>,
values: Arc<dyn Array>,
nulls: Option<NullBuffer>,
) -> GenericListViewArray<OffsetSize>
pub fn new( field: Arc<Field>, offsets: ScalarBuffer<OffsetSize>, sizes: ScalarBuffer<OffsetSize>, values: Arc<dyn Array>, nulls: Option<NullBuffer>, ) -> GenericListViewArray<OffsetSize>
Create a new GenericListViewArray from the provided parts
§Panics
Panics if Self::try_new returns an error
Sourcepub fn new_null(
field: Arc<Field>,
len: usize,
) -> GenericListViewArray<OffsetSize>
pub fn new_null( field: Arc<Field>, len: usize, ) -> GenericListViewArray<OffsetSize>
Create a new GenericListViewArray of length len where all values are null
Sourcepub fn into_parts(
self,
) -> (Arc<Field>, ScalarBuffer<OffsetSize>, ScalarBuffer<OffsetSize>, Arc<dyn Array>, Option<NullBuffer>)
pub fn into_parts( self, ) -> (Arc<Field>, ScalarBuffer<OffsetSize>, ScalarBuffer<OffsetSize>, Arc<dyn Array>, Option<NullBuffer>)
Deconstruct this array into its constituent parts
Sourcepub fn offsets(&self) -> &ScalarBuffer<OffsetSize>
pub fn offsets(&self) -> &ScalarBuffer<OffsetSize>
Returns a reference to the offsets of this list
Unlike Self::value_offsets this returns the ScalarBuffer
allowing for zero-copy cloning
Sourcepub fn sizes(&self) -> &ScalarBuffer<OffsetSize>
pub fn sizes(&self) -> &ScalarBuffer<OffsetSize>
Returns a reference to the sizes of this list
Unlike Self::value_sizes this returns the ScalarBuffer
allowing for zero-copy cloning
Sourcepub fn value_type(&self) -> DataType
pub fn value_type(&self) -> DataType
Returns a clone of the value type of this list.
Sourcepub unsafe fn value_unchecked(&self, i: usize) -> Arc<dyn Array>
pub unsafe fn value_unchecked(&self, i: usize) -> Arc<dyn Array>
Returns ith value of this list view array.
§Safety
Caller must ensure that the index is within the array bounds
Sourcepub fn value_offsets(&self) -> &[OffsetSize]
pub fn value_offsets(&self) -> &[OffsetSize]
Returns the offset values in the offsets buffer
Sourcepub fn value_sizes(&self) -> &[OffsetSize]
pub fn value_sizes(&self) -> &[OffsetSize]
Returns the sizes values in the offsets buffer
Sourcepub fn value_size(&self, i: usize) -> OffsetSize
pub fn value_size(&self, i: usize) -> OffsetSize
Returns the size for value at index i.
Sourcepub fn value_offset(&self, i: usize) -> OffsetSize
pub fn value_offset(&self, i: usize) -> OffsetSize
Returns the offset for value at index i.
Sourcepub fn iter(&self) -> ArrayIter<&GenericListViewArray<OffsetSize>> ⓘ
pub fn iter(&self) -> ArrayIter<&GenericListViewArray<OffsetSize>> ⓘ
Constructs a new iterator
Sourcepub fn slice(
&self,
offset: usize,
length: usize,
) -> GenericListViewArray<OffsetSize>
pub fn slice( &self, offset: usize, length: usize, ) -> GenericListViewArray<OffsetSize>
Returns a zero-copy slice of this array with the indicated offset and length.
Trait Implementations§
Source§impl<OffsetSize> Array for GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
impl<OffsetSize> Array for GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
Source§fn slice(&self, offset: usize, length: usize) -> Arc<dyn Array>
fn slice(&self, offset: usize, length: usize) -> Arc<dyn Array>
Source§fn shrink_to_fit(&mut self)
fn shrink_to_fit(&mut self)
Source§fn offset(&self) -> usize
fn offset(&self) -> usize
0. Read moreSource§fn nulls(&self) -> Option<&NullBuffer>
fn nulls(&self) -> Option<&NullBuffer>
Source§fn logical_null_count(&self) -> usize
fn logical_null_count(&self) -> usize
Source§fn get_buffer_memory_size(&self) -> usize
fn get_buffer_memory_size(&self) -> usize
Source§fn get_array_memory_size(&self) -> usize
fn get_array_memory_size(&self) -> usize
get_buffer_memory_size() and
includes the overhead of the data structures that contain the pointers to the various buffers.Source§fn logical_nulls(&self) -> Option<NullBuffer>
fn logical_nulls(&self) -> Option<NullBuffer>
NullBuffer that represents the logical
null values of this array, if any. Read moreSource§fn null_count(&self) -> usize
fn null_count(&self) -> usize
Source§fn is_nullable(&self) -> bool
fn is_nullable(&self) -> bool
false if the array is guaranteed to not contain any logical nulls Read moreSource§impl<OffsetSize> ArrayAccessor for &GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
impl<OffsetSize> ArrayAccessor for &GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
Source§fn value(
&self,
index: usize,
) -> <&GenericListViewArray<OffsetSize> as ArrayAccessor>::Item
fn value( &self, index: usize, ) -> <&GenericListViewArray<OffsetSize> as ArrayAccessor>::Item
i Read moreSource§unsafe fn value_unchecked(
&self,
index: usize,
) -> <&GenericListViewArray<OffsetSize> as ArrayAccessor>::Item
unsafe fn value_unchecked( &self, index: usize, ) -> <&GenericListViewArray<OffsetSize> as ArrayAccessor>::Item
i Read moreSource§impl<OffsetSize> Clone for GenericListViewArray<OffsetSize>where
OffsetSize: Clone + OffsetSizeTrait,
impl<OffsetSize> Clone for GenericListViewArray<OffsetSize>where
OffsetSize: Clone + OffsetSizeTrait,
Source§fn clone(&self) -> GenericListViewArray<OffsetSize>
fn clone(&self) -> GenericListViewArray<OffsetSize>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<OffsetSize> Debug for GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
impl<OffsetSize> Debug for GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
Source§impl<OffsetSize> From<ArrayData> for GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
impl<OffsetSize> From<ArrayData> for GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
Source§fn from(data: ArrayData) -> GenericListViewArray<OffsetSize>
fn from(data: ArrayData) -> GenericListViewArray<OffsetSize>
Source§impl<OffsetSize> From<FixedSizeListArray> for GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
impl<OffsetSize> From<FixedSizeListArray> for GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
Source§fn from(value: FixedSizeListArray) -> GenericListViewArray<OffsetSize>
fn from(value: FixedSizeListArray) -> GenericListViewArray<OffsetSize>
Source§impl<OffsetSize> From<GenericListViewArray<OffsetSize>> for ArrayDatawhere
OffsetSize: OffsetSizeTrait,
impl<OffsetSize> From<GenericListViewArray<OffsetSize>> for ArrayDatawhere
OffsetSize: OffsetSizeTrait,
Source§fn from(array: GenericListViewArray<OffsetSize>) -> ArrayData
fn from(array: GenericListViewArray<OffsetSize>) -> ArrayData
Source§impl<OffsetSize> PartialEq for GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
impl<OffsetSize> PartialEq for GenericListViewArray<OffsetSize>where
OffsetSize: OffsetSizeTrait,
Source§fn eq(&self, other: &GenericListViewArray<OffsetSize>) -> bool
fn eq(&self, other: &GenericListViewArray<OffsetSize>) -> bool
self and other values to be equal, and is used by ==.Auto Trait Implementations§
impl<OffsetSize> Freeze for GenericListViewArray<OffsetSize>
impl<OffsetSize> !RefUnwindSafe for GenericListViewArray<OffsetSize>
impl<OffsetSize> Send for GenericListViewArray<OffsetSize>
impl<OffsetSize> Sync for GenericListViewArray<OffsetSize>
impl<OffsetSize> Unpin for GenericListViewArray<OffsetSize>where
OffsetSize: Unpin,
impl<OffsetSize> !UnwindSafe for GenericListViewArray<OffsetSize>
Blanket Implementations§
Source§impl<T> AlignerFor<1> for T
impl<T> AlignerFor<1> for T
Source§impl<T> AlignerFor<1024> for T
impl<T> AlignerFor<1024> for T
Source§type Aligner = AlignTo1024<T>
type Aligner = AlignTo1024<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<128> for T
impl<T> AlignerFor<128> for T
Source§type Aligner = AlignTo128<T>
type Aligner = AlignTo128<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<16> for T
impl<T> AlignerFor<16> for T
Source§impl<T> AlignerFor<16384> for T
impl<T> AlignerFor<16384> for T
Source§type Aligner = AlignTo16384<T>
type Aligner = AlignTo16384<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<2> for T
impl<T> AlignerFor<2> for T
Source§impl<T> AlignerFor<2048> for T
impl<T> AlignerFor<2048> for T
Source§type Aligner = AlignTo2048<T>
type Aligner = AlignTo2048<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<256> for T
impl<T> AlignerFor<256> for T
Source§type Aligner = AlignTo256<T>
type Aligner = AlignTo256<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<32> for T
impl<T> AlignerFor<32> for T
Source§impl<T> AlignerFor<32768> for T
impl<T> AlignerFor<32768> for T
Source§type Aligner = AlignTo32768<T>
type Aligner = AlignTo32768<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<4> for T
impl<T> AlignerFor<4> for T
Source§impl<T> AlignerFor<4096> for T
impl<T> AlignerFor<4096> for T
Source§type Aligner = AlignTo4096<T>
type Aligner = AlignTo4096<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<512> for T
impl<T> AlignerFor<512> for T
Source§type Aligner = AlignTo512<T>
type Aligner = AlignTo512<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> AlignerFor<64> for T
impl<T> AlignerFor<64> for T
Source§impl<T> AlignerFor<8> for T
impl<T> AlignerFor<8> for T
Source§impl<T> AlignerFor<8192> for T
impl<T> AlignerFor<8192> for T
Source§type Aligner = AlignTo8192<T>
type Aligner = AlignTo8192<T>
AlignTo* type which aligns Self to ALIGNMENT.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<'a, T> RCowCompatibleRef<'a> for Twhere
T: Clone + 'a,
impl<'a, T> RCowCompatibleRef<'a> for Twhere
T: Clone + 'a,
Source§fn as_c_ref(from: &'a T) -> <T as RCowCompatibleRef<'a>>::RefC
fn as_c_ref(from: &'a T) -> <T as RCowCompatibleRef<'a>>::RefC
Source§fn as_rust_ref(from: <T as RCowCompatibleRef<'a>>::RefC) -> &'a T
fn as_rust_ref(from: <T as RCowCompatibleRef<'a>>::RefC) -> &'a T
Source§impl<S> ROExtAcc for S
impl<S> ROExtAcc for S
Source§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
offset. Read moreSource§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
offset. Read moreSource§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
offset. Read moreSource§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
offset. Read moreSource§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
offset) with value,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
Source§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
offset) with value,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
Source§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere
T: ?Sized,
Source§fn piped<F, U>(self, f: F) -> U
fn piped<F, U>(self, f: F) -> U
Source§fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
piped except that the function takes &Self
Useful for functions that take &Self instead of Self. Read moreSource§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
piped, except that the function takes &mut Self.
Useful for functions that take &mut Self instead of Self.Source§fn mutated<F>(self, f: F) -> Self
fn mutated<F>(self, f: F) -> Self
Source§fn observe<F>(self, f: F) -> Self
fn observe<F>(self, f: F) -> Self
Source§fn as_ref_<T>(&self) -> &T
fn as_ref_<T>(&self) -> &T
AsRef,
using the turbofish .as_ref_::<_>() syntax. Read more