Trait arrow2::array::Array

source ·
pub trait Array: Send + Sync + DynClone + 'static {
Show 16 methods // Required methods fn as_any(&self) -> &dyn Any; fn as_any_mut(&mut self) -> &mut dyn Any; fn len(&self) -> usize; fn data_type(&self) -> &DataType; fn validity(&self) -> Option<&Bitmap>; fn slice(&mut self, offset: usize, length: usize); unsafe fn slice_unchecked(&mut self, offset: usize, length: usize); fn with_validity(&self, validity: Option<Bitmap>) -> Box<dyn Array>; fn to_boxed(&self) -> Box<dyn Array>; // Provided methods fn is_empty(&self) -> bool { ... } fn null_count(&self) -> usize { ... } fn is_null(&self, i: usize) -> bool { ... } unsafe fn is_null_unchecked(&self, i: usize) -> bool { ... } fn is_valid(&self, i: usize) -> bool { ... } fn sliced(&self, offset: usize, length: usize) -> Box<dyn Array> { ... } unsafe fn sliced_unchecked( &self, offset: usize, length: usize ) -> Box<dyn Array> { ... }
}
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§

source

fn as_any(&self) -> &dyn Any

Converts itself to a reference of Any, which enables downcasting to concrete types.

source

fn as_any_mut(&mut self) -> &mut dyn Any

Converts itself to a mutable reference of Any, which enables mutable downcasting to concrete types.

source

fn len(&self) -> usize

The length of the Array. Every array has a length corresponding to the number of elements (slots).

source

fn data_type(&self) -> &DataType

The DataType of the Array. In combination with Array::as_any, this can be used to downcast trait objects (dyn Array) to concrete arrays.

source

fn validity(&self) -> Option<&Bitmap>

The validity of the Array: every array has an optional Bitmap that, when available specifies whether the array slot is valid or not (null). When the validity is None, all slots are valid.

source

fn slice(&mut self, offset: usize, length: usize)

Slices this Array.

Implementation

This operation is O(1) over len.

Panic

This function panics iff offset + length > self.len().

source

unsafe fn slice_unchecked(&mut self, offset: usize, length: usize)

Slices the Array.

Implementation

This operation is O(1).

Safety

The caller must ensure that offset + length <= self.len()

source

fn with_validity(&self, validity: Option<Bitmap>) -> Box<dyn Array>

Clones this Array with a new new assigned bitmap.

Panic

This function panics iff validity.len() != self.len().

source

fn to_boxed(&self) -> Box<dyn Array>

Clone a &dyn Array to an owned Box<dyn Array>.

Provided Methods§

source

fn is_empty(&self) -> bool

whether the array is empty

source

fn null_count(&self) -> usize

The number of null slots on this Array.

Implementation

This is O(1) since the number of null elements is pre-computed.

source

fn is_null(&self, i: usize) -> bool

Returns whether slot i is null.

Panic

Panics iff i >= self.len().

source

unsafe fn is_null_unchecked(&self, i: usize) -> bool

Returns whether slot i is null.

Safety

The caller must ensure i < self.len()

source

fn is_valid(&self, i: usize) -> bool

Returns whether slot i is valid.

Panic

Panics iff i >= self.len().

source

fn sliced(&self, offset: usize, length: usize) -> Box<dyn Array>

Returns a slice of this Array.

Implementation

This operation is O(1) over len.

Panic

This function panics iff offset + length > self.len().

source

unsafe fn sliced_unchecked( &self, offset: usize, length: usize ) -> Box<dyn Array>

Returns a slice of this 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()

Trait Implementations§

source§

impl<'a> AsRef<dyn Array + 'a> for dyn Array

source§

fn as_ref(&self) -> &(dyn Array + 'a)

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Debug for dyn Array + '_

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<&(dyn Array + 'static)> for ArrayRef

source§

fn from(value: &dyn Array) -> Self

Converts to this type from the input type.
source§

impl From<&dyn Array> for Box<dyn Array>

source§

fn from(value: &dyn Array) -> Self

Converts to this type from the input type.
source§

impl From<Arc<dyn Array, Global>> for Box<dyn Array>

source§

fn from(value: ArrayRef) -> Self

Converts to this type from the input type.
source§

impl<O: Offset> PartialEq<&(dyn Array + 'static)> for BinaryArray<O>

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq<&(dyn Array + 'static)> for BooleanArray

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<K: DictionaryKey> PartialEq<&(dyn Array + 'static)> for DictionaryArray<K>

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq<&(dyn Array + 'static)> for FixedSizeBinaryArray

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq<&(dyn Array + 'static)> for FixedSizeListArray

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<O: Offset> PartialEq<&(dyn Array + 'static)> for ListArray<O>

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq<&(dyn Array + 'static)> for MapArray

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq<&(dyn Array + 'static)> for NullArray

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: NativeType> PartialEq<&(dyn Array + 'static)> for PrimitiveArray<T>

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq<&(dyn Array + 'static)> for StructArray

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq<&(dyn Array + 'static)> for UnionArray

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<O: Offset> PartialEq<&(dyn Array + 'static)> for Utf8Array<O>

source§

fn eq(&self, other: &&dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<O: Offset> PartialEq<BinaryArray<O>> for &dyn Array

source§

fn eq(&self, other: &BinaryArray<O>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: NativeType> PartialEq<PrimitiveArray<T>> for &dyn Array

source§

fn eq(&self, other: &PrimitiveArray<T>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<O: Offset> PartialEq<Utf8Array<O>> for &dyn Array

source§

fn eq(&self, other: &Utf8Array<O>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq<dyn Array> for Arc<dyn Array + '_>

source§

fn eq(&self, that: &dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq<dyn Array> for Box<dyn Array + '_>

source§

fn eq(&self, that: &dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq<dyn Array + '_> for dyn Array + '_

source§

fn eq(&self, that: &dyn Array) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Implementors§