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§
Sourcetype Source<'a>: IndexedSource<Item = Self::Elems<'a>>
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§
Sourceunsafe fn indexed_source<'a>(
views: Self::Views<'a>,
row_count: usize,
) -> Self::Source<'a>
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".