pub trait LayoutChildren:
'static
+ Send
+ Sync {
// Required methods
fn to_arc(&self) -> Arc<dyn LayoutChildren> ⓘ;
fn child(&self, idx: usize, dtype: &DType) -> VortexResult<LayoutRef>;
fn child_row_count(&self, idx: usize) -> u64;
fn nchildren(&self) -> usize;
// Provided method
fn child_is_indivisible(&self, _idx: usize) -> bool { ... }
}Expand description
Abstract way of accessing the children of a layout.
This allows us to abstract over the lazy flatbuffer-based layouts, as well as the in-memory layout trees.
Required Methods§
fn to_arc(&self) -> Arc<dyn LayoutChildren> ⓘ
fn child(&self, idx: usize, dtype: &DType) -> VortexResult<LayoutRef>
fn child_row_count(&self, idx: usize) -> u64
fn nchildren(&self) -> usize
Provided Methods§
Sourcefn child_is_indivisible(&self, _idx: usize) -> bool
fn child_is_indivisible(&self, _idx: usize) -> bool
Returns true if the child at idx is known — without materializing it — to be
indivisible: it registers no split boundaries strictly inside its row range (see
VTable::is_indivisible).
Implementations must conservatively return false when answering would require
materializing the child.
Trait Implementations§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".