pub struct ListArray {
pub(super) bitmap: Bitmap,
pub(super) offsets: Box<[u32]>,
pub(super) value: Box<ArrayImpl>,
}
Expand description
Each item of this ListArray
is a List<T>
, or called T[]
(T array).
- As other arrays, there is a null bitmap, with
1
meaning nonnull and0
meaning null. - As
super::BytesArray
, there is an offsetsVec
and a valueArray
. The valueArray
has all items concatenated, and the offsetsVec
stores start and end indices into it for slicing. Effectively, the inner array is the flattened form, andoffsets.len() == n + 1
.
For example, values (array[1]), (array[]::int[]), (null), (array[2, 3]);
stores an inner
I32Array
with [1, 2, 3]
, along with offsets [0, 1, 1, 1, 3]
and null bitmap TTFT
.
Fields§
§bitmap: Bitmap
§offsets: Box<[u32]>
§value: Box<ArrayImpl>
Implementations§
source§impl ListArray
impl ListArray
sourcepub fn flatten(&self) -> ArrayImpl
pub fn flatten(&self) -> ArrayImpl
Flatten the list array into a single array.
§Example
[[1,2,3],NULL,[4,5]] => [1,2,3,4,5]
[[[1],[2]],[[3],[4]]] => [1,2,3,4]
pub fn from_protobuf(array: &PbArray) -> ArrayResult<ArrayImpl>
Trait Implementations§
source§impl Array for ListArray
impl Array for ListArray
source§type Builder = ListArrayBuilder
type Builder = ListArrayBuilder
Corresponding builder of this array, which is reciprocal to
Array
.source§type RefItem<'a> = ListRef<'a>
type RefItem<'a> = ListRef<'a>
A reference to item in array, as well as return type of
value_at
, which is
reciprocal to Self::OwnedItem
.source§unsafe fn raw_value_at_unchecked(&self, idx: usize) -> Self::RefItem<'_>
unsafe fn raw_value_at_unchecked(&self, idx: usize) -> Self::RefItem<'_>
Retrieve a reference to value regardless of whether it is null
without checking the index boundary. Read more
source§fn to_protobuf(&self) -> PbArray
fn to_protobuf(&self) -> PbArray
Serialize to protobuf
source§fn null_bitmap(&self) -> &Bitmap
fn null_bitmap(&self) -> &Bitmap
Get the null
Bitmap
from Array
.source§fn into_null_bitmap(self) -> Bitmap
fn into_null_bitmap(self) -> Bitmap
Get the owned null
Bitmap
from Array
.fn set_bitmap(&mut self, bitmap: Bitmap)
fn data_type(&self) -> DataType
source§fn iter(&self) -> ArrayIterator<'_, Self> ⓘ
fn iter(&self) -> ArrayIterator<'_, Self> ⓘ
Get iterator of current array.
source§fn raw_iter(&self) -> impl ExactSizeIterator<Item = Self::RefItem<'_>>
fn raw_iter(&self) -> impl ExactSizeIterator<Item = Self::RefItem<'_>>
Get raw iterator of current array. Read more
source§fn hash_at<H: Hasher>(&self, idx: usize, state: &mut H)
fn hash_at<H: Hasher>(&self, idx: usize, state: &mut H)
Feed the value at
idx
into the given Hasher
.fn hash_vec<H: Hasher>(&self, hashers: &mut [H], vis: &Bitmap)
fn is_empty(&self) -> bool
fn create_builder(&self, capacity: usize) -> Self::Builder
source§impl EstimateSize for ListArray
impl EstimateSize for ListArray
source§fn estimated_heap_size(&self) -> usize
fn estimated_heap_size(&self) -> usize
The estimated heap size of the current struct in bytes.
source§fn estimated_size(&self) -> usizewhere
Self: Sized,
fn estimated_size(&self) -> usizewhere
Self: Sized,
The estimated total size of the current struct in bytes, including the
estimated_heap_size
and the size of Self
.source§impl FromIterator<ListValue> for ListArray
impl FromIterator<ListValue> for ListArray
source§impl<T, L> FromIterator<Option<L>> for ListArraywhere
T: PrimitiveArrayItemType,
L: IntoIterator<Item = T>,
impl<T, L> FromIterator<Option<L>> for ListArraywhere
T: PrimitiveArrayItemType,
L: IntoIterator<Item = T>,
impl Eq for ListArray
impl StructuralPartialEq for ListArray
Auto Trait Implementations§
impl Freeze for ListArray
impl RefUnwindSafe for ListArray
impl Send for ListArray
impl Sync for ListArray
impl Unpin for ListArray
impl UnwindSafe for ListArray
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§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>
Converts
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>
Converts
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>
Wrap the input message
T
in a tonic::Request
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
source§fn relabel(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level
.source§fn relabel_n(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
relabel_num: usize,
) -> RelabeledMetricVec<M>
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
.source§fn relabel_debug_1(
self,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
with metric_level
set to
MetricLevel::Debug
and relabel_num
set to 1.