Skip to main content

IndexedElementTuple

Trait IndexedElementTuple 

Source
pub trait IndexedElementTuple: ElementTuple {
    type Source<'a>: IndexedSource<Item = Self::Elems<'a>>;

    // Required method
    unsafe fn indexed_source<'a>(
        views: Self::Views<'a>,
        row_count: usize,
    ) -> Self::Source<'a>;
}
Expand description

An argument tuple that supports a validated dense indexed traversal.

Every ElementTuple implements this trait. Its source delegates each lane read to the tuple’s unchecked view access after batch execution validates every decoded column length once.

Required Associated Types§

Source

type Source<'a>: IndexedSource<Item = Self::Elems<'a>>

The source used when no input is batch-constant.

Its length must be the common view length. For every valid index it must preserve row order, return the same value as ElementTuple::get_from_views, and uphold the unchecked read contract of IndexedSource.

Required Methods§

Source

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

Build a source from views already validated to cover the complete batch.

§Safety

Every view in views must address exactly row_count rows. Violating this requirement can make a safe lane kernel read outside a column’s allocation.

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 IndexedElementTuple for ()

Source§

type Source<'a> = ElementTupleSource<'a, ()>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

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> IndexedElementTuple for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

type Source<'a> = ElementTupleSource<'a, (A, B, C, D, E, F, G, H, I, J, K, L)>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

Source§

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

Source§

type Source<'a> = ElementTupleSource<'a, (A, B, C, D, E, F, G, H, I, J, K)>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

Source§

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

Source§

type Source<'a> = ElementTupleSource<'a, (A, B, C, D, E, F, G, H, I, J)>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

Source§

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

Source§

type Source<'a> = ElementTupleSource<'a, (A, B, C, D, E, F, G, H, I)>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

Source§

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

Source§

type Source<'a> = ElementTupleSource<'a, (A, B, C, D, E, F, G, H)>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

Source§

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

Source§

type Source<'a> = ElementTupleSource<'a, (A, B, C, D, E, F, G)>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

Source§

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

Source§

type Source<'a> = ElementTupleSource<'a, (A, B, C, D, E, F)>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

Source§

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

Source§

type Source<'a> = ElementTupleSource<'a, (A, B, C, D, E)>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

Source§

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

Source§

type Source<'a> = ElementTupleSource<'a, (A, B, C, D)>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

Source§

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

Source§

type Source<'a> = ElementTupleSource<'a, (A, B, C)>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, row_count: usize, ) -> Self::Source<'a>

Source§

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

Source§

type Source<'a> = LaneZip<ElementSource<'a, A>, ElementSource<'a, B>>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, _row_count: usize, ) -> Self::Source<'a>

Source§

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

Source§

type Source<'a> = UnaryTupleSource<ElementSource<'a, A>>

Source§

unsafe fn indexed_source<'a>( views: Self::Views<'a>, _row_count: usize, ) -> Self::Source<'a>

Implementors§