pub trait Array: Send + Sync {
fn as_any(&self) -> &dyn Any;
fn len(&self) -> usize;
fn data_type(&self) -> &DataType;
fn validity(&self) -> Option<&Bitmap>;
fn slice(&self, offset: usize, length: usize) -> Box<dyn Array>;
unsafe fn slice_unchecked(
&self,
offset: usize,
length: usize
) -> Box<dyn Array>;
fn with_validity(&self, validity: Option<Bitmap>) -> Box<dyn Array>;
fn is_empty(&self) -> bool { ... }
fn null_count(&self) -> usize { ... }
fn is_null(&self, i: usize) -> bool { ... }
fn is_valid(&self, i: usize) -> bool { ... }
}Expand description
A trait representing an immutable Arrow array. Arrow arrays are trait objects
that are infallibly downcasted to concrete types according to the Array::data_type.
Required methods
The length of the Array. Every array has a length corresponding to the number of
elements (slots).
The DataType of the Array. In combination with Array::as_any, this can be
used to downcast trait objects (dyn Array) to concrete arrays.
Slices the Array, returning a new Box<dyn Array>.
Implementation
This operation is O(1) over len, as it amounts to increase two ref counts
and moving the struct to the heap.
Panic
This function panics iff offset + length > self.len().
Slices the Array, returning a new Box<dyn Array>.
Implementation
This operation is O(1) over len, as it amounts to increase two ref counts
and moving the struct to the heap.
Safety
The caller must ensure that offset + length <= self.len()