Skip to main content

DynVTable

Trait DynVTable 

Source
pub trait DynVTable:
    'static
    + Send
    + Sync
    + Debug {
    // Required methods
    fn clone_boxed(&self) -> Box<dyn DynVTable>;
    fn build(
        &self,
        id: ArrayId,
        dtype: &DType,
        len: usize,
        metadata: &[u8],
        buffers: &[BufferHandle],
        children: &dyn ArrayChildren,
        session: &VortexSession,
    ) -> VortexResult<ArrayRef>;
    fn with_children(
        &self,
        array: &ArrayRef,
        children: Vec<ArrayRef>,
    ) -> VortexResult<ArrayRef>;
    fn reduce(&self, array: &ArrayRef) -> VortexResult<Option<ArrayRef>>;
    fn reduce_parent(
        &self,
        array: &ArrayRef,
        parent: &ArrayRef,
        child_idx: usize,
    ) -> VortexResult<Option<ArrayRef>>;
    fn execute(
        &self,
        array: ArrayRef,
        ctx: &mut ExecutionCtx,
    ) -> VortexResult<ExecutionResult>;
    fn execute_parent(
        &self,
        array: &ArrayRef,
        parent: &ArrayRef,
        child_idx: usize,
        ctx: &mut ExecutionCtx,
    ) -> VortexResult<Option<ArrayRef>>;
}
Expand description

Dynamically typed vtable trait.

This trait contains the implementation API for Vortex arrays, allowing us to keep the public DynArray trait API to a minimum.

Required Methods§

Source

fn clone_boxed(&self) -> Box<dyn DynVTable>

Clone this vtable into a Box<dyn DynVTable>.

Source

fn build( &self, id: ArrayId, dtype: &DType, len: usize, metadata: &[u8], buffers: &[BufferHandle], children: &dyn ArrayChildren, session: &VortexSession, ) -> VortexResult<ArrayRef>

Source

fn with_children( &self, array: &ArrayRef, children: Vec<ArrayRef>, ) -> VortexResult<ArrayRef>

Source

fn reduce(&self, array: &ArrayRef) -> VortexResult<Option<ArrayRef>>

Source

fn reduce_parent( &self, array: &ArrayRef, parent: &ArrayRef, child_idx: usize, ) -> VortexResult<Option<ArrayRef>>

Source

fn execute( &self, array: ArrayRef, ctx: &mut ExecutionCtx, ) -> VortexResult<ExecutionResult>

Source

fn execute_parent( &self, array: &ArrayRef, parent: &ArrayRef, child_idx: usize, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<ArrayRef>>

Implementors§

Source§

impl<V: VTable> DynVTable for V