Struct arrow2::array::DictionaryArray
source · [−]pub struct DictionaryArray<K: DictionaryKey> { /* private fields */ }
Expand description
An Array
whose values are stored as indices. This Array
is useful when the cardinality of
values is low compared to the length of the Array
.
Safety
This struct guarantees that each item of DictionaryArray::keys
is castable to usize
and
its value is smaller than DictionaryArray::values
.len()
. In other words, you can safely
use unchecked
calls to retrive the values
Implementations
sourceimpl<K: DictionaryKey> DictionaryArray<K>
impl<K: DictionaryKey> DictionaryArray<K>
sourcepub fn try_new(
data_type: DataType,
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> Result<Self, Error>
pub fn try_new(
data_type: DataType,
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> Result<Self, Error>
Returns a new DictionaryArray
.
Implementation
This function is O(N)
where N
is the length of keys
Errors
This function errors iff
- the
data_type
’s logical type is not aDictionaryArray
- the
data_type
’s keys is not compatible withkeys
- the
data_type
’s values’s data_type is not equal withvalues.data_type()
- any of the keys’s values is not represented in
usize
or is>= values.len()
sourcepub fn try_from_keys(
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> Result<Self, Error>
pub fn try_from_keys(
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> Result<Self, Error>
Returns a new DictionaryArray
.
Implementation
This function is O(N)
where N
is the length of keys
Errors
This function errors iff
- any of the keys’s values is not represented in
usize
or is>= values.len()
sourcepub unsafe fn try_new_unchecked(
data_type: DataType,
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> Result<Self, Error>
pub unsafe fn try_new_unchecked(
data_type: DataType,
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> Result<Self, Error>
Returns a new DictionaryArray
.
Errors
This function errors iff
- the
data_type
’s logical type is not aDictionaryArray
- the
data_type
’s keys is not compatible withkeys
- the
data_type
’s values’s data_type is not equal withvalues.data_type()
Safety
The caller must ensure that every keys’s values is represented in usize
and is < values.len()
sourcepub fn new_empty(data_type: DataType) -> Self
pub fn new_empty(data_type: DataType) -> Self
Returns a new empty DictionaryArray
.
sourcepub fn new_null(data_type: DataType, length: usize) -> Self
pub fn new_null(data_type: DataType, length: usize) -> Self
Returns an DictionaryArray
whose all elements are null
sourcepub fn iter(
&self
) -> ZipValidity<'_, Box<dyn Scalar>, DictionaryValuesIter<'_, K>>ⓘNotable traits for ZipValidity<'a, T, I>impl<'a, T, I: Iterator<Item = T>> Iterator for ZipValidity<'a, T, I> type Item = Option<T>;
pub fn iter(
&self
) -> ZipValidity<'_, Box<dyn Scalar>, DictionaryValuesIter<'_, K>>ⓘNotable traits for ZipValidity<'a, T, I>impl<'a, T, I: Iterator<Item = T>> Iterator for ZipValidity<'a, T, I> type Item = Option<T>;
Returns an iterator of Option<Box<dyn Scalar>>
.
Implementation
This function will allocate a new Scalar
per item and is usually not performant.
Consider calling keys_iter
and values
, downcasting values
, and iterating over that.
sourcepub fn values_iter(&self) -> DictionaryValuesIter<'_, K>
pub fn values_iter(&self) -> DictionaryValuesIter<'_, K>
Returns an iterator of Box<dyn Scalar>
Implementation
This function will allocate a new Scalar
per item and is usually not performant.
Consider calling keys_iter
and values
, downcasting values
, and iterating over that.
sourcepub fn data_type(&self) -> &DataType
pub fn data_type(&self) -> &DataType
Returns the DataType
of this DictionaryArray
sourcepub fn is_ordered(&self) -> bool
pub fn is_ordered(&self) -> bool
Returns whether the values of this DictionaryArray
are ordered
sourcepub fn slice(&self, offset: usize, length: usize) -> Self
pub fn slice(&self, offset: usize, length: usize) -> Self
Creates a new DictionaryArray
by slicing the existing DictionaryArray
.
Panics
iff offset + length > self.len()
.
sourcepub unsafe fn slice_unchecked(&self, offset: usize, length: usize) -> Self
pub unsafe fn slice_unchecked(&self, offset: usize, length: usize) -> Self
Creates a new DictionaryArray
by slicing the existing DictionaryArray
.
Safety
Safe iff offset + length <= self.len()
.
sourcepub fn with_validity(self, validity: Option<Bitmap>) -> Self
pub fn with_validity(self, validity: Option<Bitmap>) -> Self
Returns this DictionaryArray
with a new validity.
Panic
This function panics iff validity.len() != self.len()
.
sourcepub fn set_validity(&mut self, validity: Option<Bitmap>)
pub fn set_validity(&mut self, validity: Option<Bitmap>)
Sets the validity of the keys of this DictionaryArray
.
Panics
This function panics iff validity.len() != self.len()
.
sourcepub fn validity(&self) -> Option<&Bitmap>
pub fn validity(&self) -> Option<&Bitmap>
The optional validity. Equivalent to self.keys().validity()
.
sourcepub fn keys(&self) -> &PrimitiveArray<K>
pub fn keys(&self) -> &PrimitiveArray<K>
Returns the keys of the DictionaryArray
. These keys can be used to fetch values
from values
.
sourcepub fn keys_values_iter(&self) -> impl TrustedLen<Item = usize> + Clone + '_
pub fn keys_values_iter(&self) -> impl TrustedLen<Item = usize> + Clone + '_
Returns an iterator of the keys’ values of the DictionaryArray
as usize
sourcepub fn keys_iter(&self) -> impl TrustedLen<Item = Option<usize>> + Clone + '_
pub fn keys_iter(&self) -> impl TrustedLen<Item = Option<usize>> + Clone + '_
Returns an iterator of the keys’ of the DictionaryArray
as usize
sourcepub fn key_value(&self, index: usize) -> usize
pub fn key_value(&self, index: usize) -> usize
Returns the keys’ value of the DictionaryArray
as usize
Panics
This function panics iff index >= self.len()
sourcepub fn values(&self) -> &Box<dyn Array>
pub fn values(&self) -> &Box<dyn Array>
Returns the values of the DictionaryArray
.
sourcepub fn value(&self, index: usize) -> Box<dyn Scalar>
pub fn value(&self, index: usize) -> Box<dyn Scalar>
Returns the value of the DictionaryArray
at position i
.
Implementation
This function will allocate a new Scalar
and is usually not performant.
Consider calling keys
and values
, downcasting values
, and iterating over that.
Panic
This function panics iff index >= self.len()
sourcepub fn boxed(self) -> Box<dyn Array>
pub fn boxed(self) -> Box<dyn Array>
Boxes self into a Box<dyn Array>
.
sourcepub fn arced(self) -> Arc<dyn Array>
pub fn arced(self) -> Arc<dyn Array>
Boxes self into a std::sync::Arc<dyn Array>
.
Trait Implementations
sourceimpl<K: DictionaryKey> Array for DictionaryArray<K>
impl<K: DictionaryKey> Array for DictionaryArray<K>
sourcefn as_any(&self) -> &dyn Any
fn as_any(&self) -> &dyn Any
Converts itself to a reference of Any
, which enables downcasting to concrete types.
sourcefn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Converts itself to a mutable reference of Any
, which enables mutable downcasting to concrete types.
sourcefn data_type(&self) -> &DataType
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. Read more
sourcefn null_count(&self) -> usize
fn null_count(&self) -> usize
sourceimpl<K: Clone + DictionaryKey> Clone for DictionaryArray<K>
impl<K: Clone + DictionaryKey> Clone for DictionaryArray<K>
sourcefn clone(&self) -> DictionaryArray<K>
fn clone(&self) -> DictionaryArray<K>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<K: DictionaryKey> Debug for DictionaryArray<K>
impl<K: DictionaryKey> Debug for DictionaryArray<K>
sourceimpl<'a, T: DictionaryKey> From<GrowableDictionary<'a, T>> for DictionaryArray<T>
impl<'a, T: DictionaryKey> From<GrowableDictionary<'a, T>> for DictionaryArray<T>
sourcefn from(val: GrowableDictionary<'a, T>) -> Self
fn from(val: GrowableDictionary<'a, T>) -> Self
Converts to this type from the input type.
sourceimpl<K: DictionaryKey, M: MutableArray> From<MutableDictionaryArray<K, M>> for DictionaryArray<K>
impl<K: DictionaryKey, M: MutableArray> From<MutableDictionaryArray<K, M>> for DictionaryArray<K>
sourcefn from(other: MutableDictionaryArray<K, M>) -> Self
fn from(other: MutableDictionaryArray<K, M>) -> Self
Converts to this type from the input type.
sourceimpl<'a, K: DictionaryKey> IntoIterator for &'a DictionaryArray<K>
impl<'a, K: DictionaryKey> IntoIterator for &'a DictionaryArray<K>
type IntoIter = ZipValidity<'a, Box<dyn Scalar + 'static, Global>, DictionaryValuesIter<'a, K>>
type IntoIter = ZipValidity<'a, Box<dyn Scalar + 'static, Global>, DictionaryValuesIter<'a, K>>
Which kind of iterator are we turning this into?
sourceimpl<K: DictionaryKey> PartialEq<&(dyn Array + 'static)> for DictionaryArray<K>
impl<K: DictionaryKey> PartialEq<&(dyn Array + 'static)> for DictionaryArray<K>
sourceimpl<K: DictionaryKey> PartialEq<DictionaryArray<K>> for DictionaryArray<K>
impl<K: DictionaryKey> PartialEq<DictionaryArray<K>> for DictionaryArray<K>
Auto Trait Implementations
impl<K> !RefUnwindSafe for DictionaryArray<K>
impl<K> Send for DictionaryArray<K>
impl<K> Sync for DictionaryArray<K>
impl<K> Unpin for DictionaryArray<K>
impl<K> !UnwindSafe for DictionaryArray<K>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more