Struct TypedRunArray
pub struct TypedRunArray<'a, R, V>where
R: RunEndIndexType,{
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>
§values: &'a V
Implementations§
§impl<'a, R, V> TypedRunArray<'a, R, V>where
R: RunEndIndexType,
impl<'a, R, V> TypedRunArray<'a, R, V>where
R: RunEndIndexType,
pub fn run_ends(&self) -> &'a RunEndBuffer<<R as ArrowPrimitiveType>::Native>
pub fn run_ends(&self) -> &'a RunEndBuffer<<R as ArrowPrimitiveType>::Native>
Returns the run_ends of this TypedRunArray
pub fn values(&self) -> &'a V
pub fn values(&self) -> &'a V
Returns the values of this TypedRunArray
pub fn run_array(&self) -> &'a RunArray<R>
pub fn run_array(&self) -> &'a RunArray<R>
Returns the run array of this TypedRunArray
Trait Implementations§
§impl<'a, R, V> Array for TypedRunArray<'a, R, V>where
R: RunEndIndexType,
V: Sync,
impl<'a, R, V> Array for TypedRunArray<'a, R, V>where
R: RunEndIndexType,
V: Sync,
§fn slice(&self, offset: usize, length: usize) -> Arc<dyn Array>
fn slice(&self, offset: usize, length: usize) -> Arc<dyn Array>
Returns a zero-copy slice of this array with the indicated offset and length. Read more
§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 more§fn nulls(&self) -> Option<&NullBuffer>
fn nulls(&self) -> Option<&NullBuffer>
Returns the null buffer of this array if any. Read more
§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 more§fn is_nullable(&self) -> bool
fn is_nullable(&self) -> bool
Returns
false
if the array is guaranteed to not contain any logical nulls Read more§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.
§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.§fn null_count(&self) -> usize
fn null_count(&self) -> usize
Returns the total number of physical null values in this array. Read more
§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,
§type Item = <&'a V as ArrayAccessor>::Item
type Item = <&'a V as ArrayAccessor>::Item
The Arrow type of the element being accessed.
§fn value(
&self,
logical_index: usize,
) -> <TypedRunArray<'a, R, V> as ArrayAccessor>::Item
fn value( &self, logical_index: usize, ) -> <TypedRunArray<'a, R, V> as ArrayAccessor>::Item
Returns the element at index
i
Read more§unsafe fn value_unchecked(
&self,
logical_index: usize,
) -> <TypedRunArray<'a, R, V> as ArrayAccessor>::Item
unsafe fn value_unchecked( &self, logical_index: usize, ) -> <TypedRunArray<'a, R, V> as ArrayAccessor>::Item
Returns the element at index
i
Read more§impl<'a, R, V> Clone for TypedRunArray<'a, R, V>where
R: RunEndIndexType,
impl<'a, R, V> Clone for TypedRunArray<'a, R, V>where
R: RunEndIndexType,
§fn clone(&self) -> TypedRunArray<'a, R, V>
fn clone(&self) -> TypedRunArray<'a, R, V>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more§impl<'a, R, V> Debug for TypedRunArray<'a, R, V>where
R: RunEndIndexType,
impl<'a, R, V> Debug for TypedRunArray<'a, R, V>where
R: RunEndIndexType,
§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,
§type IntoIter = RunArrayIter<'a, R, V>
type IntoIter = RunArrayIter<'a, R, V>
Which kind of iterator are we turning this into?
§fn into_iter(self) -> <TypedRunArray<'a, R, V> as IntoIterator>::IntoIter
fn into_iter(self) -> <TypedRunArray<'a, R, V> as IntoIterator>::IntoIter
Creates an iterator from a value. Read more
impl<'a, R, V> Copy for TypedRunArray<'a, R, V>where
R: RunEndIndexType,
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
)