Skip to main content

ArrowBindingView

Trait ArrowBindingView 

Source
pub trait ArrowBindingView {
    type Array: Array;
    type View<'a>
       where Self: 'a;

    // Required method
    fn get_view(
        array: &Self::Array,
        index: usize,
    ) -> Result<Self::View<'_>, ViewAccessError>;
}
Expand description

View binding from an Arrow array to borrowed Rust reference types.

Implementations of this trait provide zero-copy access to Arrow array values by returning borrowed references with a lifetime tied to the array.

Note: This trait is separate from ArrowBinding to allow types to opt-in to view support. Complex types like List, Map, etc. may not implement this.

Required Associated Types§

Source

type Array: Array

The Arrow array type this view reads from.

Source

type View<'a> where Self: 'a

The borrowed view type returned when accessing array elements. For example: &'a str for StringArray, i64 for Int64Array.

Required Methods§

Source

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Extract a view at the given index from the array.

§Errors
  • Returns ViewAccessError::OutOfBounds if index >= array.len()
  • Returns ViewAccessError::UnexpectedNull if the value is null
  • Returns ViewAccessError::TypeMismatch if array downcast fails

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl ArrowBindingView for bool

Available on crate feature views only.
Source§

type Array = BooleanArray

Source§

type View<'a> = bool

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for f32

Available on crate feature views only.
Source§

type Array = PrimitiveArray<Float32Type>

Source§

type View<'a> = f32

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for f64

Available on crate feature views only.
Source§

type Array = PrimitiveArray<Float64Type>

Source§

type View<'a> = f64

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for i8

Available on crate feature views only.
Source§

type Array = PrimitiveArray<Int8Type>

Source§

type View<'a> = i8

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for i16

Available on crate feature views only.
Source§

type Array = PrimitiveArray<Int16Type>

Source§

type View<'a> = i16

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for i32

Available on crate feature views only.
Source§

type Array = PrimitiveArray<Int32Type>

Source§

type View<'a> = i32

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for i64

Available on crate feature views only.
Source§

type Array = PrimitiveArray<Int64Type>

Source§

type View<'a> = i64

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for u8

Available on crate feature views only.
Source§

type Array = PrimitiveArray<UInt8Type>

Source§

type View<'a> = u8

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for u16

Available on crate feature views only.
Source§

type Array = PrimitiveArray<UInt16Type>

Source§

type View<'a> = u16

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for u32

Available on crate feature views only.
Source§

type Array = PrimitiveArray<UInt32Type>

Source§

type View<'a> = u32

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for u64

Available on crate feature views only.
Source§

type Array = PrimitiveArray<UInt64Type>

Source§

type View<'a> = u64

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for String

Available on crate feature views only.
Source§

type Array = GenericByteArray<GenericStringType<i32>>

Source§

type View<'a> = &'a str

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for Vec<u8>

Available on crate feature views only.
Source§

type Array = GenericByteArray<GenericBinaryType<i32>>

Source§

type View<'a> = &'a [u8]

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl ArrowBindingView for f16

Available on crate feature views only.
Source§

type Array = PrimitiveArray<Float16Type>

Source§

type View<'a> = f16

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl<T> ArrowBindingView for Option<T>

Available on crate feature views only.

Implement ArrowBindingView for Option where T implements ArrowBindingView.

This allows nullable fields to properly handle null values by returning Ok(None) instead of Err(UnexpectedNull), making the type system enforce correct null handling.

Source§

type Array = <T as ArrowBindingView>::Array

Source§

type View<'a> = Option<<T as ArrowBindingView>::View<'a>> where Self: 'a

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Source§

impl<const N: usize> ArrowBindingView for [u8; N]

Available on crate feature views only.
Source§

type Array = FixedSizeBinaryArray

Source§

type View<'a> = &'a [u8]

Source§

fn get_view( array: &Self::Array, index: usize, ) -> Result<Self::View<'_>, ViewAccessError>

Implementors§

Source§

impl ArrowBindingView for Date32

Available on crate feature views only.
Source§

impl ArrowBindingView for Date64

Available on crate feature views only.
Source§

impl ArrowBindingView for IntervalDayTime

Available on crate feature views only.
Source§

impl ArrowBindingView for IntervalMonthDayNano

Available on crate feature views only.
Source§

impl ArrowBindingView for IntervalYearMonth

Available on crate feature views only.
Source§

impl ArrowBindingView for LargeBinary

Available on crate feature views only.
Source§

impl ArrowBindingView for LargeUtf8

Available on crate feature views only.
Source§

impl ArrowBindingView for Null

Available on crate feature views only.
Source§

impl<K, V> ArrowBindingView for Dictionary<K, V>
where K: DictKey + 'static, V: ArrowBinding + ArrowBindingView + 'static, <K as DictKey>::ArrowKey: ArrowDictionaryKeyType,

Available on crate feature views only.
Source§

type Array = DictionaryArray<<K as DictKey>::ArrowKey>

Source§

type View<'a> = <V as ArrowBindingView>::View<'a> where Self: 'a

Source§

impl<K, V> ArrowBindingView for OrderedMap<K, Option<V>>
where K: ArrowBinding + Ord + ArrowBindingView + 'static, V: ArrowBinding + ArrowBindingView + 'static,

Available on crate feature views only.
Source§

type Array = MapArray

Source§

type View<'a> = MapViewNullable<'a, K, V, true>

Source§

impl<K, V> ArrowBindingView for OrderedMap<K, V>
where K: ArrowBinding + Ord + ArrowBindingView + 'static, V: ArrowBinding + ArrowBindingView + 'static,

Available on crate feature views only.
Source§

type Array = MapArray

Source§

type View<'a> = MapView<'a, K, V, true>

Source§

impl<K, V, const SORTED: bool> ArrowBindingView for Map<K, Option<V>, SORTED>
where K: ArrowBinding + ArrowBindingView + 'static, V: ArrowBinding + ArrowBindingView + 'static,

Available on crate feature views only.
Source§

type Array = MapArray

Source§

type View<'a> = MapViewNullable<'a, K, V, SORTED>

Source§

impl<K, V, const SORTED: bool> ArrowBindingView for Map<K, V, SORTED>
where K: ArrowBinding + ArrowBindingView + 'static, V: ArrowBinding + ArrowBindingView + 'static,

Available on crate feature views only.
Source§

type Array = MapArray

Source§

type View<'a> = MapView<'a, K, V, SORTED>

Source§

impl<T> ArrowBindingView for LargeList<Option<T>>
where T: ArrowBinding + ArrowBindingView + 'static,

Available on crate feature views only.
Source§

type Array = GenericListArray<i64>

Source§

type View<'a> = LargeListViewNullable<'a, T>

Source§

impl<T> ArrowBindingView for LargeList<T>
where T: ArrowBinding + ArrowBindingView + 'static,

Available on crate feature views only.
Source§

type Array = GenericListArray<i64>

Source§

type View<'a> = LargeListView<'a, T>

Source§

impl<T> ArrowBindingView for List<Option<T>>
where T: ArrowBinding + ArrowBindingView + 'static,

Available on crate feature views only.
Source§

type Array = GenericListArray<i32>

Source§

type View<'a> = ListViewNullable<'a, T>

Source§

impl<T> ArrowBindingView for List<T>
where T: ArrowBinding + ArrowBindingView + 'static,

Available on crate feature views only.
Source§

type Array = GenericListArray<i32>

Source§

type View<'a> = ListView<'a, T>

Source§

impl<T> ArrowBindingView for T
where T: Record + StructView + 'static,

Available on crate feature views only.
Source§

type Array = StructArray

Source§

type View<'a> = <T as StructView>::View<'a> where T: 'a

Source§

impl<T, const N: usize> ArrowBindingView for FixedSizeList<T, N>
where T: ArrowBinding + ArrowBindingView + 'static,

Available on crate feature views only.
Source§

type Array = FixedSizeListArray

Source§

type View<'a> = FixedSizeListView<'a, T, N>

Source§

impl<T, const N: usize> ArrowBindingView for FixedSizeListNullable<T, N>
where T: ArrowBinding + ArrowBindingView + 'static,

Available on crate feature views only.
Source§

type Array = FixedSizeListArray

Source§

type View<'a> = FixedSizeListViewNullable<'a, T, N>

Source§

impl<U: DurationUnitSpec + 'static> ArrowBindingView for Duration<U>
where U::Arrow: ArrowPrimitiveType<Native = i64>,

Available on crate feature views only.
Source§

type Array = PrimitiveArray<<U as DurationUnitSpec>::Arrow>

Source§

type View<'a> = Duration<U>

Source§

impl<U: Time32UnitSpec + 'static> ArrowBindingView for Time32<U>
where U::Arrow: ArrowPrimitiveType<Native = i32>,

Available on crate feature views only.
Source§

type Array = PrimitiveArray<<U as Time32UnitSpec>::Arrow>

Source§

type View<'a> = Time32<U>

Source§

impl<U: Time64UnitSpec + 'static> ArrowBindingView for Time64<U>
where U::Arrow: ArrowPrimitiveType<Native = i64>,

Available on crate feature views only.
Source§

type Array = PrimitiveArray<<U as Time64UnitSpec>::Arrow>

Source§

type View<'a> = Time64<U>

Source§

impl<U: TimeUnitSpec + 'static> ArrowBindingView for Timestamp<U>

Available on crate feature views only.
Source§

type Array = PrimitiveArray<<U as TimeUnitSpec>::Arrow>

Source§

type View<'a> = Timestamp<U>

Source§

impl<U: TimeUnitSpec + 'static, Z: TimeZoneSpec + 'static> ArrowBindingView for TimestampTz<U, Z>

Available on crate feature views only.
Source§

type Array = PrimitiveArray<<U as TimeUnitSpec>::Arrow>

Source§

type View<'a> = TimestampTz<U, Z>

Source§

impl<const P: u8, const S: i8> ArrowBindingView for Decimal128<P, S>

Available on crate feature views only.
Source§

impl<const P: u8, const S: i8> ArrowBindingView for Decimal256<P, S>

Available on crate feature views only.