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 arrow2 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§

Implementations on Foreign Types§

source§

impl<T> ArrowField for Buffer<T>where T: ArrowField + NativeType + ArrowEnableVecForType,

source§

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

source§

impl ArrowField for Buffer<u8>

source§

impl ArrowField for i32

source§

impl ArrowField for f16

source§

impl ArrowField for i64

source§

impl ArrowField for Vec<u8>

source§

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

source§

impl ArrowField for i16

source§

impl ArrowField for i8

source§

impl ArrowField for bool

source§

impl ArrowField for u8

source§

impl ArrowField for NaiveDateTime

source§

impl ArrowField for u16

source§

impl ArrowField for u32

source§

impl ArrowField for f64

source§

impl ArrowField for f32

source§

impl ArrowField for u64

source§

impl ArrowField for NaiveDate

source§

impl ArrowField for String

Implementors§

source§

impl ArrowField for LargeBinary

§

type Type = Vec<u8, Global>

source§

impl ArrowField for LargeString

§

type Type = String

source§

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

§

type Type = Vec<<T as ArrowField>::Type, Global>

source§

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

§

type Type = Vec<<T as ArrowField>::Type, Global>

source§

impl<const PRECISION: usize, const SCALE: usize> ArrowField for I128<PRECISION, SCALE>

§

type Type = i128

source§

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

§

type Type = Vec<u8, Global>