pub struct TypedRunArray<'a, R: RunEndIndexType, V> {
run_array: &'a RunArray<R>,
values: &'a V,
}
Expand description
A RunArray
typed typed on its child values array
Implements ArrayAccessor
and IntoIterator
allowing fast access to its elements
use arrow_array::{RunArray, StringArray, types::Int32Type};
let orig = ["a", "b", "a", "b"];
let ree_array = RunArray::<Int32Type>::from_iter(orig);
// `TypedRunArray` allows you to access the values directly
let typed = ree_array.downcast::<StringArray>().unwrap();
for (maybe_val, orig) in typed.into_iter().zip(orig) {
assert_eq!(maybe_val.unwrap(), orig)
}
Fields§
§run_array: &'a RunArray<R>
The run array
values: &'a V
The values of the run_array
Implementations§
Source§impl<'a, R: RunEndIndexType, V> TypedRunArray<'a, R, V>
impl<'a, R: RunEndIndexType, V> TypedRunArray<'a, R, V>
Sourcepub fn run_ends(&self) -> &'a RunEndBuffer<R::Native>
pub fn run_ends(&self) -> &'a RunEndBuffer<R::Native>
Returns the run_ends of this TypedRunArray
Sourcepub fn values(&self) -> &'a V
pub fn values(&self) -> &'a V
Returns the values of this TypedRunArray
Sourcepub fn run_array(&self) -> &'a RunArray<R>
pub fn run_array(&self) -> &'a RunArray<R>
Returns the run array of this TypedRunArray
Trait Implementations§
Source§impl<R: RunEndIndexType, V: Sync> Array for TypedRunArray<'_, R, V>
impl<R: RunEndIndexType, V: Sync> Array for TypedRunArray<'_, R, V>
Source§fn data_type(&self) -> &DataType
fn data_type(&self) -> &DataType
Returns a reference to the [
DataType
] of this array. Read moreSource§fn slice(&self, offset: usize, length: usize) -> ArrayRef
fn slice(&self, offset: usize, length: usize) -> ArrayRef
Returns a zero-copy slice of this array with the indicated offset and length. Read more
Source§fn offset(&self) -> usize
fn offset(&self) -> usize
Returns the offset into the underlying data used by this array(-slice).
Note that the underlying data can be shared by many arrays.
This defaults to
0
. Read moreSource§fn nulls(&self) -> Option<&NullBuffer>
fn nulls(&self) -> Option<&NullBuffer>
Returns the null buffer of this array if any. Read more
Source§fn logical_nulls(&self) -> Option<NullBuffer>
fn logical_nulls(&self) -> Option<NullBuffer>
Returns a potentially computed [
NullBuffer
] that represents the logical
null values of this array, if any. Read moreSource§fn is_nullable(&self) -> bool
fn is_nullable(&self) -> bool
Returns
false
if the array is guaranteed to not contain any logical nulls Read moreSource§fn get_buffer_memory_size(&self) -> usize
fn get_buffer_memory_size(&self) -> usize
Returns the total number of bytes of memory pointed to by this array.
The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.
Note that this does not always correspond to the exact memory usage of an array,
since multiple arrays can share the same buffers or slices thereof.
Source§fn get_array_memory_size(&self) -> usize
fn get_array_memory_size(&self) -> usize
Returns the total number of bytes of memory occupied physically by this array.
This value will always be greater than returned by
get_buffer_memory_size()
and
includes the overhead of the data structures that contain the pointers to the various buffers.Source§fn null_count(&self) -> usize
fn null_count(&self) -> usize
Returns the total number of physical null values in this array. Read more
Source§fn logical_null_count(&self) -> usize
fn logical_null_count(&self) -> usize
Returns the total number of logical null values in this array. Read more
Source§impl<'a, R, V> ArrayAccessor for TypedRunArray<'a, R, V>where
R: RunEndIndexType,
V: Sync + Send,
&'a V: ArrayAccessor,
<&'a V as ArrayAccessor>::Item: Default,
impl<'a, R, V> ArrayAccessor for TypedRunArray<'a, R, V>where
R: RunEndIndexType,
V: Sync + Send,
&'a V: ArrayAccessor,
<&'a V as ArrayAccessor>::Item: Default,
Source§impl<R: RunEndIndexType, V> Clone for TypedRunArray<'_, R, V>
impl<R: RunEndIndexType, V> Clone for TypedRunArray<'_, R, V>
Source§impl<R: RunEndIndexType, V> Debug for TypedRunArray<'_, R, V>
impl<R: RunEndIndexType, V> Debug for TypedRunArray<'_, R, V>
Source§impl<'a, R, V> IntoIterator for TypedRunArray<'a, R, V>where
R: RunEndIndexType,
V: Sync + Send,
&'a V: ArrayAccessor,
<&'a V as ArrayAccessor>::Item: Default,
impl<'a, R, V> IntoIterator for TypedRunArray<'a, R, V>where
R: RunEndIndexType,
V: Sync + Send,
&'a V: ArrayAccessor,
<&'a V as ArrayAccessor>::Item: Default,
impl<R: RunEndIndexType, V> Copy for TypedRunArray<'_, R, V>
Auto Trait Implementations§
impl<'a, R, V> Freeze for TypedRunArray<'a, R, V>
impl<'a, R, V> !RefUnwindSafe for TypedRunArray<'a, R, V>
impl<'a, R, V> Send for TypedRunArray<'a, R, V>where
V: Sync,
impl<'a, R, V> Sync for TypedRunArray<'a, R, V>where
V: Sync,
impl<'a, R, V> Unpin for TypedRunArray<'a, R, V>
impl<'a, R, V> !UnwindSafe for TypedRunArray<'a, R, V>
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)