Skip to main content

ExecuteParentKernel

Trait ExecuteParentKernel 

Source
pub trait ExecuteParentKernel<V: VTable>:
    Debug
    + Send
    + Sync
    + 'static {
    type Parent: Matcher;

    // Required method
    fn execute_parent(
        &self,
        array: &V::Array,
        parent: <Self::Parent as Matcher>::Match<'_>,
        child_idx: usize,
        ctx: &mut ExecutionCtx,
    ) -> VortexResult<Option<ArrayRef>>;
}
Expand description

A kernel that allows a child encoding V to execute its parent array in a fused manner.

This is the typed trait that encoding authors implement. The associated Parent type specifies which parent array types this kernel can handle. When the parent matches, execute_parent is called with the strongly-typed child and parent views.

Unlike reduce rules, parent kernels may read buffers and perform real computation.

Return Ok(None) to decline handling (the scheduler will try the next kernel or fall through to the encoding’s own execute).

Required Associated Types§

Source

type Parent: Matcher

The parent array type this kernel handles.

Required Methods§

Source

fn execute_parent( &self, array: &V::Array, parent: <Self::Parent as Matcher>::Match<'_>, child_idx: usize, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<ArrayRef>>

Attempt to execute the parent array fused with the child array.

Implementors§

Source§

impl<V> ExecuteParentKernel<V> for TakeExecuteAdaptor<V>
where V: TakeExecute,

Source§

impl<V> ExecuteParentKernel<V> for FilterExecuteAdaptor<V>
where V: FilterKernel,

Source§

impl<V> ExecuteParentKernel<V> for SliceExecuteAdaptor<V>
where V: SliceKernel,

Source§

impl<V> ExecuteParentKernel<V> for BetweenExecuteAdaptor<V>
where V: BetweenKernel,

Source§

impl<V> ExecuteParentKernel<V> for CompareExecuteAdaptor<V>
where V: CompareKernel,

Source§

impl<V> ExecuteParentKernel<V> for CastExecuteAdaptor<V>
where V: CastKernel,

Source§

impl<V> ExecuteParentKernel<V> for FillNullExecuteAdaptor<V>
where V: FillNullKernel,

Source§

impl<V> ExecuteParentKernel<V> for LikeExecuteAdaptor<V>
where V: LikeKernel,

Source§

impl<V> ExecuteParentKernel<V> for ListContainsElementExecuteAdaptor<V>

Source§

impl<V> ExecuteParentKernel<V> for MaskExecuteAdaptor<V>
where V: MaskKernel,

Source§

impl<V> ExecuteParentKernel<V> for NotExecuteAdaptor<V>
where V: NotKernel,

Source§

impl<V> ExecuteParentKernel<V> for ZipExecuteAdaptor<V>
where V: ZipKernel,