Skip to main content

Array

Struct Array 

Source
pub struct Array { /* private fields */ }
Expand description

A column of values, in Arrow’s layout.

Implementations§

Source§

impl Array

Source

pub fn of(vector: &Vector) -> Result<Self>

The Arrow array a vector becomes.

The vector is flattened first, so a constant, a sequence and a dictionary all arrive here as the values they stand for. Arrow has a run end encoding and a dictionary array of its own and they are worth having later, but an export that sometimes hands back a dictionary is an export every reader has to have two paths for, and the reader is the one we are trying to make cheap.

§Errors

For a type with no Arrow counterpart, and for a vector whose values are not the layout its type says they are.

Source

pub fn empty(data_type: DataType) -> Self

An array of this type with no values in it.

A variable width type still gets its offsets buffer, holding the single zero that says the first value would start at the beginning. Arrow’s rule is that offsets are one longer than the array, and an array of nothing is the case where forgetting it is easiest and where a reader that trusts the rule reads past the end.

Source

pub fn data_type(&self) -> &DataType

What the column holds.

Source

pub fn len(&self) -> usize

How many values.

Source

pub fn is_empty(&self) -> bool

Whether there are none.

Source

pub fn null_count(&self) -> usize

How many of them are null.

Source

pub fn validity(&self) -> Option<&[u8]>

The validity bitmap, or nothing when nothing is null.

Nothing is what Arrow means by a null pointer in the first buffer slot, and it is the case worth keeping rather than materializing: a reader that sees it can skip the per value check for the whole array, which is the same reason Validity::AllValid exists on our side.

Source

pub fn offsets(&self) -> Option<&[u8]>

The offsets buffer, for the variable width types, as little endian i32.

Source

pub fn values(&self) -> &[u8]

The values buffer.

Source

pub fn buffers(&self) -> Vec<Option<&[u8]>>

The buffers in the order the C data interface lists them.

Two or three of them, and which is which is the type’s business rather than the caller’s, which is why this exists next to the three accessors above.

Trait Implementations§

Source§

impl Clone for Array

Source§

fn clone(&self) -> Array

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Array

Source§

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

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

impl Eq for Array

Source§

impl PartialEq for Array

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Array

Auto Trait Implementations§

§

impl Freeze for Array

§

impl RefUnwindSafe for Array

§

impl Send for Array

§

impl Sync for Array

§

impl Unpin for Array

§

impl UnsafeUnpin for Array

§

impl UnwindSafe for Array

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.