Skip to main content

LayoutChildren

Trait LayoutChildren 

Source
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§

Source

fn to_arc(&self) -> Arc<dyn LayoutChildren>

Source

fn child(&self, idx: usize, dtype: &DType) -> VortexResult<LayoutRef>

Source

fn child_row_count(&self, idx: usize) -> u64

Source

fn nchildren(&self) -> usize

Provided Methods§

Source

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§

Source§

impl Debug for dyn LayoutChildren

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl LayoutChildren for Arc<dyn LayoutChildren>

Implementors§