pub struct SparseLayout {
pub value_compression: Option<CompressiveEncoding>,
pub num_buffers: u64,
pub num_items: u64,
pub num_visible_items: u64,
pub has_large_chunk: bool,
pub structural_layers: Vec<SparseStructuralLayer>,
}Expand description
A layout used for sparse flat or nested pages where Arrow structure is represented directly in layer-local slot domains instead of as dense repetition / definition events.
Structural layers are ordered from outer-most to inner-most. Values remain mini-block compressed and are split into independently readable chunks.
Fields§
§value_compression: Option<CompressiveEncoding>Description of the compression of values.
num_buffers: u64Number of value buffers in each mini-block chunk. This does not include structural buffers.
num_items: u64Number of entries in the equivalent dense repetition / definition stream. This equals num_visible_items plus one structural placeholder for every list slot without children. Null leaf slots count as visible items because they still occupy positions in Arrow’s leaf value buffer. For example, a nullable primitive with 100 slots, 30 of them null, has num_items = num_visible_items = 100.
num_visible_items: u64Number of leaf value slots encoded in the value chunks, including null leaf slots.
has_large_chunk: boolIf true, chunk-local value buffer sizes use u32. Otherwise they use u16.
structural_layers: Vec<SparseStructuralLayer>Structural layers ordered from outer-most to inner-most. This may be empty for a flat, non-nullable leaf page whose scheduling domain equals num_visible_items.
Trait Implementations§
Source§impl Clone for SparseLayout
impl Clone for SparseLayout
Source§fn clone(&self) -> SparseLayout
fn clone(&self) -> SparseLayout
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SparseLayout
impl Debug for SparseLayout
Source§impl Default for SparseLayout
impl Default for SparseLayout
Source§impl Message for SparseLayout
impl Message for SparseLayout
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for SparseLayout
impl PartialEq for SparseLayout
impl StructuralPartialEq for SparseLayout
Auto Trait Implementations§
impl Freeze for SparseLayout
impl RefUnwindSafe for SparseLayout
impl Send for SparseLayout
impl Sync for SparseLayout
impl Unpin for SparseLayout
impl UnsafeUnpin for SparseLayout
impl UnwindSafe for SparseLayout
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.