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§
Required Methods§
Sourcefn get_view(
array: &Self::Array,
index: usize,
) -> Result<Self::View<'_>, ViewAccessError>
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::OutOfBoundsif index >= array.len() - Returns
ViewAccessError::UnexpectedNullif the value is null - Returns
ViewAccessError::TypeMismatchif 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.
impl ArrowBindingView for bool
views only.Source§impl ArrowBindingView for f32
Available on crate feature views only.
impl ArrowBindingView for f32
views only.Source§impl ArrowBindingView for f64
Available on crate feature views only.
impl ArrowBindingView for f64
views only.Source§impl ArrowBindingView for i8
Available on crate feature views only.
impl ArrowBindingView for i8
views only.Source§impl ArrowBindingView for i16
Available on crate feature views only.
impl ArrowBindingView for i16
views only.Source§impl ArrowBindingView for i32
Available on crate feature views only.
impl ArrowBindingView for i32
views only.Source§impl ArrowBindingView for i64
Available on crate feature views only.
impl ArrowBindingView for i64
views only.Source§impl ArrowBindingView for u8
Available on crate feature views only.
impl ArrowBindingView for u8
views only.Source§impl ArrowBindingView for u16
Available on crate feature views only.
impl ArrowBindingView for u16
views only.Source§impl ArrowBindingView for u32
Available on crate feature views only.
impl ArrowBindingView for u32
views only.Source§impl ArrowBindingView for u64
Available on crate feature views only.
impl ArrowBindingView for u64
views only.Source§impl ArrowBindingView for String
Available on crate feature views only.
impl ArrowBindingView for String
views only.Source§impl ArrowBindingView for Vec<u8>
Available on crate feature views only.
impl ArrowBindingView for Vec<u8>
views only.Source§impl ArrowBindingView for f16
Available on crate feature views only.
impl ArrowBindingView for f16
views only.Source§impl<T> ArrowBindingView for Option<T>where
T: ArrowBindingView,
Available on crate feature views only.Implement ArrowBindingView for Option where T implements ArrowBindingView.
impl<T> ArrowBindingView for Option<T>where
T: ArrowBindingView,
views only.Implement ArrowBindingView for Option
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.
Implementors§
Source§impl ArrowBindingView for Date32
Available on crate feature views only.
impl ArrowBindingView for Date32
views only.type Array = PrimitiveArray<Date32Type>
type View<'a> = Date32
Source§impl ArrowBindingView for Date64
Available on crate feature views only.
impl ArrowBindingView for Date64
views only.type Array = PrimitiveArray<Date64Type>
type View<'a> = Date64
Source§impl ArrowBindingView for IntervalDayTime
Available on crate feature views only.
impl ArrowBindingView for IntervalDayTime
views only.type Array = PrimitiveArray<IntervalDayTimeType>
type View<'a> = IntervalDayTime
Source§impl ArrowBindingView for IntervalMonthDayNano
Available on crate feature views only.
impl ArrowBindingView for IntervalMonthDayNano
views only.type Array = PrimitiveArray<IntervalMonthDayNanoType>
type View<'a> = IntervalMonthDayNano
Source§impl ArrowBindingView for IntervalYearMonth
Available on crate feature views only.
impl ArrowBindingView for IntervalYearMonth
views only.type Array = PrimitiveArray<IntervalYearMonthType>
type View<'a> = IntervalYearMonth
Source§impl ArrowBindingView for LargeBinary
Available on crate feature views only.
impl ArrowBindingView for LargeBinary
views only.type Array = GenericByteArray<GenericBinaryType<i64>>
type View<'a> = &'a [u8]
Source§impl ArrowBindingView for LargeUtf8
Available on crate feature views only.
impl ArrowBindingView for LargeUtf8
views only.type Array = GenericByteArray<GenericStringType<i64>>
type View<'a> = &'a str
Source§impl ArrowBindingView for Null
Available on crate feature views only.
impl ArrowBindingView for Null
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.
impl<K, V> ArrowBindingView for Dictionary<K, V>where
K: DictKey + 'static,
V: ArrowBinding + ArrowBindingView + 'static,
<K as DictKey>::ArrowKey: ArrowDictionaryKeyType,
views only.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.
impl<K, V> ArrowBindingView for OrderedMap<K, Option<V>>where
K: ArrowBinding + Ord + ArrowBindingView + 'static,
V: ArrowBinding + ArrowBindingView + 'static,
views only.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.
impl<K, V> ArrowBindingView for OrderedMap<K, V>where
K: ArrowBinding + Ord + ArrowBindingView + 'static,
V: ArrowBinding + ArrowBindingView + 'static,
views only.Source§impl<K, V, const SORTED: bool> ArrowBindingView for Map<K, Option<V>, SORTED>
Available on crate feature views only.
impl<K, V, const SORTED: bool> ArrowBindingView for Map<K, Option<V>, SORTED>
views only.Source§impl<K, V, const SORTED: bool> ArrowBindingView for Map<K, V, SORTED>
Available on crate feature views only.
impl<K, V, const SORTED: bool> ArrowBindingView for Map<K, V, SORTED>
views only.Source§impl<T> ArrowBindingView for LargeList<Option<T>>where
T: ArrowBinding + ArrowBindingView + 'static,
Available on crate feature views only.
impl<T> ArrowBindingView for LargeList<Option<T>>where
T: ArrowBinding + ArrowBindingView + 'static,
views only.Source§impl<T> ArrowBindingView for LargeList<T>where
T: ArrowBinding + ArrowBindingView + 'static,
Available on crate feature views only.
impl<T> ArrowBindingView for LargeList<T>where
T: ArrowBinding + ArrowBindingView + 'static,
views only.Source§impl<T> ArrowBindingView for List<Option<T>>where
T: ArrowBinding + ArrowBindingView + 'static,
Available on crate feature views only.
impl<T> ArrowBindingView for List<Option<T>>where
T: ArrowBinding + ArrowBindingView + 'static,
views only.Source§impl<T> ArrowBindingView for List<T>where
T: ArrowBinding + ArrowBindingView + 'static,
Available on crate feature views only.
impl<T> ArrowBindingView for List<T>where
T: ArrowBinding + ArrowBindingView + 'static,
views only.Source§impl<T> ArrowBindingView for Twhere
T: Record + StructView + 'static,
Available on crate feature views only.
impl<T> ArrowBindingView for Twhere
T: Record + StructView + 'static,
views only.type Array = StructArray
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.
impl<T, const N: usize> ArrowBindingView for FixedSizeList<T, N>where
T: ArrowBinding + ArrowBindingView + 'static,
views only.Source§impl<T, const N: usize> ArrowBindingView for FixedSizeListNullable<T, N>where
T: ArrowBinding + ArrowBindingView + 'static,
Available on crate feature views only.
impl<T, const N: usize> ArrowBindingView for FixedSizeListNullable<T, N>where
T: ArrowBinding + ArrowBindingView + 'static,
views only.Source§impl<U: DurationUnitSpec + 'static> ArrowBindingView for Duration<U>where
U::Arrow: ArrowPrimitiveType<Native = i64>,
Available on crate feature views only.
impl<U: DurationUnitSpec + 'static> ArrowBindingView for Duration<U>where
U::Arrow: ArrowPrimitiveType<Native = i64>,
views only.Source§impl<U: Time32UnitSpec + 'static> ArrowBindingView for Time32<U>where
U::Arrow: ArrowPrimitiveType<Native = i32>,
Available on crate feature views only.
impl<U: Time32UnitSpec + 'static> ArrowBindingView for Time32<U>where
U::Arrow: ArrowPrimitiveType<Native = i32>,
views only.Source§impl<U: Time64UnitSpec + 'static> ArrowBindingView for Time64<U>where
U::Arrow: ArrowPrimitiveType<Native = i64>,
Available on crate feature views only.
impl<U: Time64UnitSpec + 'static> ArrowBindingView for Time64<U>where
U::Arrow: ArrowPrimitiveType<Native = i64>,
views only.Source§impl<U: TimeUnitSpec + 'static> ArrowBindingView for Timestamp<U>
Available on crate feature views only.
impl<U: TimeUnitSpec + 'static> ArrowBindingView for Timestamp<U>
views only.Source§impl<U: TimeUnitSpec + 'static, Z: TimeZoneSpec + 'static> ArrowBindingView for TimestampTz<U, Z>
Available on crate feature views only.
impl<U: TimeUnitSpec + 'static, Z: TimeZoneSpec + 'static> ArrowBindingView for TimestampTz<U, Z>
views only.type Array = PrimitiveArray<<U as TimeUnitSpec>::Arrow>
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.
impl<const P: u8, const S: i8> ArrowBindingView for Decimal128<P, S>
views only.type Array = PrimitiveArray<Decimal128Type>
type View<'a> = Decimal128<P, S>
Source§impl<const P: u8, const S: i8> ArrowBindingView for Decimal256<P, S>
Available on crate feature views only.
impl<const P: u8, const S: i8> ArrowBindingView for Decimal256<P, S>
views only.