Skip to main content

ElementTuple

Trait ElementTuple 

Source
pub trait ElementTuple: 'static + Sealed {
    type Columns;
    type Views<'a>: ViewLen;
    type Elems<'a>;
    type ConstElems<'a>;

    const ARITY: usize;
    const DENSE_SAFE: bool;
    const DECODE_INFALLIBLE: bool;

    // Required methods
    fn validate(dtypes: &[DType]) -> VortexResult<()>;
    fn decode(
        args: &dyn ExecutionArgs,
        ctx: &mut ExecutionCtx,
    ) -> VortexResult<Self::Columns>;
    fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>;
    fn decode_null_tolerant(
        args: &dyn ExecutionArgs,
        ctx: &mut ExecutionCtx,
    ) -> VortexResult<Option<Self::Columns>>;
    fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>;
    fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>;
    fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool;
    fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool;
    fn get_from_views<'a>(
        views: &Self::Views<'a>,
        index: usize,
    ) -> Self::Elems<'a>;
    unsafe fn get_from_views_unchecked<'a>(
        views: &Self::Views<'a>,
        index: usize,
    ) -> Self::Elems<'a>;
    fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>;
}
Expand description

Typed argument tuples for arities zero through twelve.

This trait is sealed. Add a new row representation by implementing InputElement and placing it in one of the supplied tuples.

Required Associated Constants§

Source

const ARITY: usize

The number of arguments.

Source

const DENSE_SAFE: bool

Whether every argument is InputElement::DENSE_SAFE.

Source

const DECODE_INFALLIBLE: bool

Whether every argument is InputElement::DECODE_INFALLIBLE.

Required Associated Types§

Source

type Columns

The decoded column representations.

Source

type Views<'a>: ViewLen

Borrowed views of decoded columns with no batch constants.

Source

type Elems<'a>

The borrowed row of element values.

Source

type ConstElems<'a>

The batch-constant element values.

Some carries the value of a batch-constant argument. None marks an argument decoded at full batch length. A RowVisitor passes these values to its prepare closure so constant work can leave the row loop.

Required Methods§

Source

fn validate(dtypes: &[DType]) -> VortexResult<()>

Validate the input dtypes and exact arity.

Source

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Decode every input column once for one row-kernel invocation.

Source

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Whether every input can be decoded without assuming that all rows are valid.

The tuple checks this before decoding any column, so a decline does not discard work from earlier arguments.

Source

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Decode every input column once while tolerating null rows.

Return Ok(None) when an argument has no null-tolerant representation. Valid-row execution calls this once per batch.

Source

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Read the row of elements at index. Must be O(1): it is called in the row loop.

Each argument selects either its batch-constant value or row index. Keep that selection visible in the loop so LLVM can unswitch it before vectorizing.

Source

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Borrow the decoded columns only when no argument is batch-constant.

Returns None if any argument is batch-constant. Otherwise, omitting ArgColumn from the returned tuple removes batch-constant checks from the row loop.

Source

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Whether every borrowed view contains exactly row_count rows.

Executors must validate each retained view before unchecked traversal. ViewLen::len on a tuple asserts that component lengths are equal and panics on a mismatch. Rebuilding views from Columns does not prove the lengths of the views passed to get_from_views_unchecked.

Source

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Whether every argument decoded at full batch length contains exactly row_count rows.

Columns cannot implement ViewLen because a batch-constant ArgColumn stores one decoded row while logically addressing the full batch. The batch-constant constructor validates that one-row representation, so this method checks only non-constant columns.

Source

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Read one row from borrowed views.

Source

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Read one row from borrowed views without checking bounds.

§Safety

index must be in bounds for every column.

Source

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Return one optional batch-constant value per argument.

Each tuple position is Some(value) when that argument is batch-constant and None when it was decoded at full batch length. Executors pass the tuple to the prepare closure once before the row loop.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementations on Foreign Types§

Source§

impl ElementTuple for ()

Source§

const ARITY: usize = 0

Source§

const DENSE_SAFE: bool = true

Source§

const DECODE_INFALLIBLE: bool = true

Source§

type Columns = ()

Source§

type Views<'a> = ()

Source§

type Elems<'a> = ()

Source§

type ConstElems<'a> = ()

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( _args: &dyn ExecutionArgs, _ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(_args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( _args: &dyn ExecutionArgs, _ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(_columns: &Self::Columns, _index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(_columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(_views: &Self::Views<'_>, _row_count: usize) -> bool

Source§

fn decoded_lens_match(_columns: &Self::Columns, _row_count: usize) -> bool

Source§

fn get_from_views<'a>( _views: &Self::Views<'a>, _index: usize, ) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( _views: &Self::Views<'a>, _index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(_columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement, B: InputElement, C: InputElement, D: InputElement, E: InputElement, F: InputElement, G: InputElement, H: InputElement, I: InputElement, J: InputElement, K: InputElement, L: InputElement> ElementTuple for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

const ARITY: usize = 12

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>, ArgColumn<B>, ArgColumn<C>, ArgColumn<D>, ArgColumn<E>, ArgColumn<F>, ArgColumn<G>, ArgColumn<H>, ArgColumn<I>, ArgColumn<J>, ArgColumn<K>, ArgColumn<L>)

Source§

type Views<'a> = (<A as InputElement>::View<'a>, <B as InputElement>::View<'a>, <C as InputElement>::View<'a>, <D as InputElement>::View<'a>, <E as InputElement>::View<'a>, <F as InputElement>::View<'a>, <G as InputElement>::View<'a>, <H as InputElement>::View<'a>, <I as InputElement>::View<'a>, <J as InputElement>::View<'a>, <K as InputElement>::View<'a>, <L as InputElement>::View<'a>)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>, <B as InputElement>::Elem<'a>, <C as InputElement>::Elem<'a>, <D as InputElement>::Elem<'a>, <E as InputElement>::Elem<'a>, <F as InputElement>::Elem<'a>, <G as InputElement>::Elem<'a>, <H as InputElement>::Elem<'a>, <I as InputElement>::Elem<'a>, <J as InputElement>::Elem<'a>, <K as InputElement>::Elem<'a>, <L as InputElement>::Elem<'a>)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>, Option<<B as InputElement>::Elem<'a>>, Option<<C as InputElement>::Elem<'a>>, Option<<D as InputElement>::Elem<'a>>, Option<<E as InputElement>::Elem<'a>>, Option<<F as InputElement>::Elem<'a>>, Option<<G as InputElement>::Elem<'a>>, Option<<H as InputElement>::Elem<'a>>, Option<<I as InputElement>::Elem<'a>>, Option<<J as InputElement>::Elem<'a>>, Option<<K as InputElement>::Elem<'a>>, Option<<L as InputElement>::Elem<'a>>)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement, B: InputElement, C: InputElement, D: InputElement, E: InputElement, F: InputElement, G: InputElement, H: InputElement, I: InputElement, J: InputElement, K: InputElement> ElementTuple for (A, B, C, D, E, F, G, H, I, J, K)

Source§

const ARITY: usize = 11

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>, ArgColumn<B>, ArgColumn<C>, ArgColumn<D>, ArgColumn<E>, ArgColumn<F>, ArgColumn<G>, ArgColumn<H>, ArgColumn<I>, ArgColumn<J>, ArgColumn<K>)

Source§

type Views<'a> = (<A as InputElement>::View<'a>, <B as InputElement>::View<'a>, <C as InputElement>::View<'a>, <D as InputElement>::View<'a>, <E as InputElement>::View<'a>, <F as InputElement>::View<'a>, <G as InputElement>::View<'a>, <H as InputElement>::View<'a>, <I as InputElement>::View<'a>, <J as InputElement>::View<'a>, <K as InputElement>::View<'a>)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>, <B as InputElement>::Elem<'a>, <C as InputElement>::Elem<'a>, <D as InputElement>::Elem<'a>, <E as InputElement>::Elem<'a>, <F as InputElement>::Elem<'a>, <G as InputElement>::Elem<'a>, <H as InputElement>::Elem<'a>, <I as InputElement>::Elem<'a>, <J as InputElement>::Elem<'a>, <K as InputElement>::Elem<'a>)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>, Option<<B as InputElement>::Elem<'a>>, Option<<C as InputElement>::Elem<'a>>, Option<<D as InputElement>::Elem<'a>>, Option<<E as InputElement>::Elem<'a>>, Option<<F as InputElement>::Elem<'a>>, Option<<G as InputElement>::Elem<'a>>, Option<<H as InputElement>::Elem<'a>>, Option<<I as InputElement>::Elem<'a>>, Option<<J as InputElement>::Elem<'a>>, Option<<K as InputElement>::Elem<'a>>)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement, B: InputElement, C: InputElement, D: InputElement, E: InputElement, F: InputElement, G: InputElement, H: InputElement, I: InputElement, J: InputElement> ElementTuple for (A, B, C, D, E, F, G, H, I, J)

Source§

const ARITY: usize = 10

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>, ArgColumn<B>, ArgColumn<C>, ArgColumn<D>, ArgColumn<E>, ArgColumn<F>, ArgColumn<G>, ArgColumn<H>, ArgColumn<I>, ArgColumn<J>)

Source§

type Views<'a> = (<A as InputElement>::View<'a>, <B as InputElement>::View<'a>, <C as InputElement>::View<'a>, <D as InputElement>::View<'a>, <E as InputElement>::View<'a>, <F as InputElement>::View<'a>, <G as InputElement>::View<'a>, <H as InputElement>::View<'a>, <I as InputElement>::View<'a>, <J as InputElement>::View<'a>)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>, <B as InputElement>::Elem<'a>, <C as InputElement>::Elem<'a>, <D as InputElement>::Elem<'a>, <E as InputElement>::Elem<'a>, <F as InputElement>::Elem<'a>, <G as InputElement>::Elem<'a>, <H as InputElement>::Elem<'a>, <I as InputElement>::Elem<'a>, <J as InputElement>::Elem<'a>)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>, Option<<B as InputElement>::Elem<'a>>, Option<<C as InputElement>::Elem<'a>>, Option<<D as InputElement>::Elem<'a>>, Option<<E as InputElement>::Elem<'a>>, Option<<F as InputElement>::Elem<'a>>, Option<<G as InputElement>::Elem<'a>>, Option<<H as InputElement>::Elem<'a>>, Option<<I as InputElement>::Elem<'a>>, Option<<J as InputElement>::Elem<'a>>)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement, B: InputElement, C: InputElement, D: InputElement, E: InputElement, F: InputElement, G: InputElement, H: InputElement, I: InputElement> ElementTuple for (A, B, C, D, E, F, G, H, I)

Source§

const ARITY: usize = 9

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>, ArgColumn<B>, ArgColumn<C>, ArgColumn<D>, ArgColumn<E>, ArgColumn<F>, ArgColumn<G>, ArgColumn<H>, ArgColumn<I>)

Source§

type Views<'a> = (<A as InputElement>::View<'a>, <B as InputElement>::View<'a>, <C as InputElement>::View<'a>, <D as InputElement>::View<'a>, <E as InputElement>::View<'a>, <F as InputElement>::View<'a>, <G as InputElement>::View<'a>, <H as InputElement>::View<'a>, <I as InputElement>::View<'a>)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>, <B as InputElement>::Elem<'a>, <C as InputElement>::Elem<'a>, <D as InputElement>::Elem<'a>, <E as InputElement>::Elem<'a>, <F as InputElement>::Elem<'a>, <G as InputElement>::Elem<'a>, <H as InputElement>::Elem<'a>, <I as InputElement>::Elem<'a>)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>, Option<<B as InputElement>::Elem<'a>>, Option<<C as InputElement>::Elem<'a>>, Option<<D as InputElement>::Elem<'a>>, Option<<E as InputElement>::Elem<'a>>, Option<<F as InputElement>::Elem<'a>>, Option<<G as InputElement>::Elem<'a>>, Option<<H as InputElement>::Elem<'a>>, Option<<I as InputElement>::Elem<'a>>)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement, B: InputElement, C: InputElement, D: InputElement, E: InputElement, F: InputElement, G: InputElement, H: InputElement> ElementTuple for (A, B, C, D, E, F, G, H)

Source§

const ARITY: usize = 8

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>, ArgColumn<B>, ArgColumn<C>, ArgColumn<D>, ArgColumn<E>, ArgColumn<F>, ArgColumn<G>, ArgColumn<H>)

Source§

type Views<'a> = (<A as InputElement>::View<'a>, <B as InputElement>::View<'a>, <C as InputElement>::View<'a>, <D as InputElement>::View<'a>, <E as InputElement>::View<'a>, <F as InputElement>::View<'a>, <G as InputElement>::View<'a>, <H as InputElement>::View<'a>)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>, <B as InputElement>::Elem<'a>, <C as InputElement>::Elem<'a>, <D as InputElement>::Elem<'a>, <E as InputElement>::Elem<'a>, <F as InputElement>::Elem<'a>, <G as InputElement>::Elem<'a>, <H as InputElement>::Elem<'a>)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>, Option<<B as InputElement>::Elem<'a>>, Option<<C as InputElement>::Elem<'a>>, Option<<D as InputElement>::Elem<'a>>, Option<<E as InputElement>::Elem<'a>>, Option<<F as InputElement>::Elem<'a>>, Option<<G as InputElement>::Elem<'a>>, Option<<H as InputElement>::Elem<'a>>)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement, B: InputElement, C: InputElement, D: InputElement, E: InputElement, F: InputElement, G: InputElement> ElementTuple for (A, B, C, D, E, F, G)

Source§

const ARITY: usize = 7

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>, ArgColumn<B>, ArgColumn<C>, ArgColumn<D>, ArgColumn<E>, ArgColumn<F>, ArgColumn<G>)

Source§

type Views<'a> = (<A as InputElement>::View<'a>, <B as InputElement>::View<'a>, <C as InputElement>::View<'a>, <D as InputElement>::View<'a>, <E as InputElement>::View<'a>, <F as InputElement>::View<'a>, <G as InputElement>::View<'a>)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>, <B as InputElement>::Elem<'a>, <C as InputElement>::Elem<'a>, <D as InputElement>::Elem<'a>, <E as InputElement>::Elem<'a>, <F as InputElement>::Elem<'a>, <G as InputElement>::Elem<'a>)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>, Option<<B as InputElement>::Elem<'a>>, Option<<C as InputElement>::Elem<'a>>, Option<<D as InputElement>::Elem<'a>>, Option<<E as InputElement>::Elem<'a>>, Option<<F as InputElement>::Elem<'a>>, Option<<G as InputElement>::Elem<'a>>)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement, B: InputElement, C: InputElement, D: InputElement, E: InputElement, F: InputElement> ElementTuple for (A, B, C, D, E, F)

Source§

const ARITY: usize = 6

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>, ArgColumn<B>, ArgColumn<C>, ArgColumn<D>, ArgColumn<E>, ArgColumn<F>)

Source§

type Views<'a> = (<A as InputElement>::View<'a>, <B as InputElement>::View<'a>, <C as InputElement>::View<'a>, <D as InputElement>::View<'a>, <E as InputElement>::View<'a>, <F as InputElement>::View<'a>)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>, <B as InputElement>::Elem<'a>, <C as InputElement>::Elem<'a>, <D as InputElement>::Elem<'a>, <E as InputElement>::Elem<'a>, <F as InputElement>::Elem<'a>)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>, Option<<B as InputElement>::Elem<'a>>, Option<<C as InputElement>::Elem<'a>>, Option<<D as InputElement>::Elem<'a>>, Option<<E as InputElement>::Elem<'a>>, Option<<F as InputElement>::Elem<'a>>)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement, B: InputElement, C: InputElement, D: InputElement, E: InputElement> ElementTuple for (A, B, C, D, E)

Source§

const ARITY: usize = 5

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>, ArgColumn<B>, ArgColumn<C>, ArgColumn<D>, ArgColumn<E>)

Source§

type Views<'a> = (<A as InputElement>::View<'a>, <B as InputElement>::View<'a>, <C as InputElement>::View<'a>, <D as InputElement>::View<'a>, <E as InputElement>::View<'a>)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>, <B as InputElement>::Elem<'a>, <C as InputElement>::Elem<'a>, <D as InputElement>::Elem<'a>, <E as InputElement>::Elem<'a>)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>, Option<<B as InputElement>::Elem<'a>>, Option<<C as InputElement>::Elem<'a>>, Option<<D as InputElement>::Elem<'a>>, Option<<E as InputElement>::Elem<'a>>)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement, B: InputElement, C: InputElement, D: InputElement> ElementTuple for (A, B, C, D)

Source§

const ARITY: usize = 4

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>, ArgColumn<B>, ArgColumn<C>, ArgColumn<D>)

Source§

type Views<'a> = (<A as InputElement>::View<'a>, <B as InputElement>::View<'a>, <C as InputElement>::View<'a>, <D as InputElement>::View<'a>)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>, <B as InputElement>::Elem<'a>, <C as InputElement>::Elem<'a>, <D as InputElement>::Elem<'a>)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>, Option<<B as InputElement>::Elem<'a>>, Option<<C as InputElement>::Elem<'a>>, Option<<D as InputElement>::Elem<'a>>)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement, B: InputElement, C: InputElement> ElementTuple for (A, B, C)

Source§

const ARITY: usize = 3

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>, ArgColumn<B>, ArgColumn<C>)

Source§

type Views<'a> = (<A as InputElement>::View<'a>, <B as InputElement>::View<'a>, <C as InputElement>::View<'a>)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>, <B as InputElement>::Elem<'a>, <C as InputElement>::Elem<'a>)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>, Option<<B as InputElement>::Elem<'a>>, Option<<C as InputElement>::Elem<'a>>)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement, B: InputElement> ElementTuple for (A, B)

Source§

const ARITY: usize = 2

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>, ArgColumn<B>)

Source§

type Views<'a> = (<A as InputElement>::View<'a>, <B as InputElement>::View<'a>)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>, <B as InputElement>::Elem<'a>)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>, Option<<B as InputElement>::Elem<'a>>)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Source§

impl<A: InputElement> ElementTuple for (A,)

Source§

const ARITY: usize = 1

Source§

const DENSE_SAFE: bool

Source§

const DECODE_INFALLIBLE: bool

Source§

type Columns = (ArgColumn<A>,)

Source§

type Views<'a> = (<A as InputElement>::View<'a>,)

Source§

type Elems<'a> = (<A as InputElement>::Elem<'a>,)

Source§

type ConstElems<'a> = (Option<<A as InputElement>::Elem<'a>>,)

Source§

fn validate(dtypes: &[DType]) -> VortexResult<()>

Source§

fn decode( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Self::Columns>

Source§

fn can_decode_null_tolerant(args: &dyn ExecutionArgs) -> VortexResult<bool>

Source§

fn decode_null_tolerant( args: &dyn ExecutionArgs, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Self::Columns>>

Source§

fn get(columns: &Self::Columns, index: usize) -> Self::Elems<'_>

Source§

fn views_if_no_consts(columns: &Self::Columns) -> Option<Self::Views<'_>>

Source§

fn view_lens_match(views: &Self::Views<'_>, row_count: usize) -> bool

Source§

fn decoded_lens_match(columns: &Self::Columns, row_count: usize) -> bool

Source§

fn get_from_views<'a>(views: &Self::Views<'a>, index: usize) -> Self::Elems<'a>

Source§

unsafe fn get_from_views_unchecked<'a>( views: &Self::Views<'a>, index: usize, ) -> Self::Elems<'a>

Source§

fn const_values(columns: &Self::Columns) -> Self::ConstElems<'_>

Implementors§