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
1meaning nonnull and0meaning null. - As
super::BytesArray, there is an offsetsVecand a valueArray. The valueArrayhas all items concatenated, and the offsetsVecstores 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<A> ArrayCompactVisExt for Awhere
A: Array,
impl<A> ArrayCompactVisExt for Awhere
A: Array,
Source§fn compact_vis(&self, visibility: &Bitmap, cardinality: usize) -> A
fn compact_vis(&self, visibility: &Bitmap, cardinality: usize) -> A
Select some elements from
Array based on visibility bitmap.
cardinality is only used to decide capacity of the new Array.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,
§impl<T> Downcast for Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere
T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
Forward to the method defined on the type
Any.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
Forward to the method defined on the type
Any.§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<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.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> SameOrElseExt for Twhere
T: Eq,
impl<T> SameOrElseExt for Twhere
T: Eq,
Source§fn same_or_else(self, other: T, f: impl FnOnce() -> T) -> T
fn same_or_else(self, other: T, f: impl FnOnce() -> T) -> T
Check if
self and other are equal, if so, return self, otherwise return the result of f().