ArrowField

Trait ArrowField 

Source
pub trait ArrowField {
    type Type;

    // Required method
    fn data_type() -> DataType;
}
Expand description

Trait implemented by all types that can be used as an Arrow field.

Implementations are provided for types already supported by the arrow crate:

Custom implementations can be provided for other types.

The trait simply requires defining the ArrowField::data_type

Serialize and Deserialize functionality requires implementing the crate::ArrowSerialize and the crate::ArrowDeserialize traits respectively.

Required Associated Types§

Source

type Type

This should be Self except when implementing large offset and fixed placeholder types. For the later, it should refer to the actual type. For example when the placeholder type is LargeString, this should be String.

Required Methods§

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 ArrowField for bool

Source§

impl ArrowField for f32

Source§

impl ArrowField for f64

Source§

impl ArrowField for i8

Source§

impl ArrowField for i16

Source§

impl ArrowField for i32

Source§

impl ArrowField for i64

Source§

impl ArrowField for u8

Source§

impl ArrowField for u16

Source§

impl ArrowField for u32

Source§

impl ArrowField for u64

Source§

impl ArrowField for String

Source§

impl ArrowField for Vec<u8>

Source§

impl ArrowField for Buffer

Source§

impl ArrowField for ScalarBuffer<u8>

Source§

impl ArrowField for NaiveDate

Source§

impl ArrowField for NaiveDateTime

Source§

impl ArrowField for f16

Source§

impl<'a> ArrowField for &'a str

Source§

impl<T> ArrowField for Option<T>
where T: ArrowField,

Source§

impl<T> ArrowField for Vec<T>
where T: ArrowField + ArrowEnableVecForType,

Source§

impl<T> ArrowField for ScalarBuffer<T>
where T: ArrowField + ArrowNativeType + ArrowEnableVecForType,

Source§

impl<T, const SIZE: usize> ArrowField for [T; SIZE]
where T: ArrowField + ArrowEnableVecForType,

Source§

impl<const SIZE: usize> ArrowField for [u8; SIZE]

Implementors§

Source§

impl ArrowField for LargeBinary

Source§

impl ArrowField for LargeString

Source§

impl<T> ArrowField for LargeVec<T>
where T: ArrowField + ArrowEnableVecForType,

Source§

impl<T, const SIZE: i32> ArrowField for FixedSizeVec<T, SIZE>
where T: ArrowField + ArrowEnableVecForType,

Source§

impl<const PRECISION: u8, const SCALE: i8> ArrowField for I128<PRECISION, SCALE>

Source§

impl<const SIZE: i32> ArrowField for FixedSizeBinary<SIZE>