Struct re_viewer::external::arrow2::array::DictionaryArray
pub struct DictionaryArray<K>where
K: DictionaryKey,{
data_type: DataType,
keys: PrimitiveArray<K>,
values: Box<dyn Array>,
}
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
Fields§
§data_type: DataType
§keys: PrimitiveArray<K>
§values: Box<dyn Array>
Implementations§
§impl<K> DictionaryArray<K>where
K: DictionaryKey,
impl<K> DictionaryArray<K>where
K: DictionaryKey,
pub fn try_new(
data_type: DataType,
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> Result<DictionaryArray<K>, Error>
pub fn try_new( data_type: DataType, keys: PrimitiveArray<K>, values: Box<dyn Array> ) -> Result<DictionaryArray<K>, 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()
pub fn try_from_keys(
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> Result<DictionaryArray<K>, Error>
pub fn try_from_keys( keys: PrimitiveArray<K>, values: Box<dyn Array> ) -> Result<DictionaryArray<K>, 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()
pub unsafe fn try_new_unchecked(
data_type: DataType,
keys: PrimitiveArray<K>,
values: Box<dyn Array>
) -> Result<DictionaryArray<K>, Error>
pub unsafe fn try_new_unchecked( data_type: DataType, keys: PrimitiveArray<K>, values: Box<dyn Array> ) -> Result<DictionaryArray<K>, 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()
pub fn new_empty(data_type: DataType) -> DictionaryArray<K>
pub fn new_empty(data_type: DataType) -> DictionaryArray<K>
Returns a new empty DictionaryArray
.
pub fn new_null(data_type: DataType, length: usize) -> DictionaryArray<K>
pub fn new_null(data_type: DataType, length: usize) -> DictionaryArray<K>
Returns an DictionaryArray
whose all elements are null
pub fn iter(
&self
) -> ZipValidity<Box<dyn Scalar>, DictionaryValuesIter<'_, K>, BitmapIter<'_>> ⓘ
pub fn iter( &self ) -> ZipValidity<Box<dyn Scalar>, DictionaryValuesIter<'_, K>, BitmapIter<'_>> ⓘ
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.
pub 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.
pub fn values_iter_typed<V>(
&self
) -> Result<DictionaryValuesIterTyped<'_, K, V>, Error>where
V: DictValue,
pub fn values_iter_typed<V>(
&self
) -> Result<DictionaryValuesIterTyped<'_, K, V>, Error>where
V: DictValue,
Returns an iterator over the the values [V::IterValue
].
§Panics
Panics if the keys of this DictionaryArray
have any null types.
If they do DictionaryArray::iter_typed
should be called
pub fn iter_typed<V>(
&self
) -> Result<ZipValidity<<V as DictValue>::IterValue<'_>, DictionaryValuesIterTyped<'_, K, V>, BitmapIter<'_>>, Error>where
V: DictValue,
pub fn iter_typed<V>(
&self
) -> Result<ZipValidity<<V as DictValue>::IterValue<'_>, DictionaryValuesIterTyped<'_, K, V>, BitmapIter<'_>>, Error>where
V: DictValue,
Returns an iterator over the the optional values of Option<V::IterValue>
.
§Panics
This function panics if the values
array
pub fn data_type(&self) -> &DataType
pub fn data_type(&self) -> &DataType
Returns the DataType
of this DictionaryArray
pub fn is_ordered(&self) -> bool
pub fn is_ordered(&self) -> bool
Returns whether the values of this DictionaryArray
are ordered
pub unsafe fn slice_unchecked(&mut self, offset: usize, length: usize)
pub unsafe fn slice_unchecked(&mut self, offset: usize, length: usize)
pub fn sliced(self, offset: usize, length: usize) -> DictionaryArray<K>
pub fn sliced(self, offset: usize, length: usize) -> DictionaryArray<K>
pub unsafe fn sliced_unchecked(
self,
offset: usize,
length: usize
) -> DictionaryArray<K>
pub unsafe fn sliced_unchecked( self, offset: usize, length: usize ) -> DictionaryArray<K>
pub fn with_validity(self, validity: Option<Bitmap>) -> DictionaryArray<K>
pub fn with_validity(self, validity: Option<Bitmap>) -> DictionaryArray<K>
Returns this DictionaryArray
with a new validity.
§Panic
This function panics iff validity.len() != self.len()
.
pub 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()
.
pub fn boxed(self) -> Box<dyn Array>
pub fn boxed(self) -> Box<dyn Array>
Boxes this array into a Box<dyn Array>
.
pub fn arced(self) -> Arc<dyn Array>
pub fn arced(self) -> Arc<dyn Array>
Arcs this array into a std::sync::Arc<dyn Array>
.
pub fn validity(&self) -> Option<&Bitmap>
pub fn validity(&self) -> Option<&Bitmap>
The optional validity. Equivalent to self.keys().validity()
.
pub 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
.
pub fn keys_values_iter(&self) -> impl TrustedLen + Clone
pub fn keys_values_iter(&self) -> impl TrustedLen + Clone
Returns an iterator of the keys’ values of the DictionaryArray
as usize
pub fn keys_iter(&self) -> impl TrustedLen + Clone
pub fn keys_iter(&self) -> impl TrustedLen + Clone
Returns an iterator of the keys’ of the DictionaryArray
as usize
pub 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()
pub fn values(&self) -> &Box<dyn Array>
pub fn values(&self) -> &Box<dyn Array>
Returns the values of the DictionaryArray
.
pub 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()
Trait Implementations§
§impl<K> Arrow2Arrow for DictionaryArray<K>where
K: DictionaryKey,
impl<K> Arrow2Arrow for DictionaryArray<K>where
K: DictionaryKey,
§impl<K> Array for DictionaryArray<K>where
K: DictionaryKey,
impl<K> Array for DictionaryArray<K>where
K: DictionaryKey,
§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Any
, which enables downcasting to concrete types.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Any
, which enables mutable downcasting to concrete types.§fn len(&self) -> usize
fn len(&self) -> usize
Array
. Every array has a length corresponding to the number of
elements (slots).§fn data_type(&self) -> &DataType
fn data_type(&self) -> &DataType
DataType
of the Array
. In combination with Array::as_any
, this can be
used to downcast trait objects (dyn Array
) to concrete arrays.§fn null_count(&self) -> usize
fn null_count(&self) -> usize
§unsafe fn is_null_unchecked(&self, i: usize) -> bool
unsafe fn is_null_unchecked(&self, i: usize) -> bool
i
is null. Read more§impl<K> Clone for DictionaryArray<K>where
K: Clone + DictionaryKey,
impl<K> Clone for DictionaryArray<K>where
K: Clone + DictionaryKey,
§fn clone(&self) -> DictionaryArray<K>
fn clone(&self) -> DictionaryArray<K>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl<K> Debug for DictionaryArray<K>where
K: DictionaryKey,
impl<K> Debug for DictionaryArray<K>where
K: DictionaryKey,
§impl<'a, T> From<GrowableDictionary<'a, T>> for DictionaryArray<T>where
T: DictionaryKey,
impl<'a, T> From<GrowableDictionary<'a, T>> for DictionaryArray<T>where
T: DictionaryKey,
§fn from(val: GrowableDictionary<'a, T>) -> DictionaryArray<T>
fn from(val: GrowableDictionary<'a, T>) -> DictionaryArray<T>
§impl<K, M> From<MutableDictionaryArray<K, M>> for DictionaryArray<K>where
K: DictionaryKey,
M: MutableArray,
impl<K, M> From<MutableDictionaryArray<K, M>> for DictionaryArray<K>where
K: DictionaryKey,
M: MutableArray,
§fn from(other: MutableDictionaryArray<K, M>) -> DictionaryArray<K>
fn from(other: MutableDictionaryArray<K, M>) -> DictionaryArray<K>
§impl<'a, K> IntoIterator for &'a DictionaryArray<K>where
K: DictionaryKey,
impl<'a, K> IntoIterator for &'a DictionaryArray<K>where
K: DictionaryKey,
§type IntoIter = ZipValidity<Box<dyn Scalar>, DictionaryValuesIter<'a, K>, BitmapIter<'a>>
type IntoIter = ZipValidity<Box<dyn Scalar>, DictionaryValuesIter<'a, K>, BitmapIter<'a>>
§fn into_iter(self) -> <&'a DictionaryArray<K> as IntoIterator>::IntoIter
fn into_iter(self) -> <&'a DictionaryArray<K> as IntoIterator>::IntoIter
§impl<K> PartialEq<&(dyn Array + 'static)> for DictionaryArray<K>where
K: DictionaryKey,
impl<K> PartialEq<&(dyn Array + 'static)> for DictionaryArray<K>where
K: DictionaryKey,
§impl<K> PartialEq for DictionaryArray<K>where
K: DictionaryKey,
impl<K> PartialEq for DictionaryArray<K>where
K: DictionaryKey,
§fn eq(&self, other: &DictionaryArray<K>) -> bool
fn eq(&self, other: &DictionaryArray<K>) -> bool
self
and other
values to be equal, and is used
by ==
.Auto Trait Implementations§
impl<K> Freeze for DictionaryArray<K>
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§
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
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request