pub trait ArrowNativeType: Debug + Send + Sync + Copy + PartialOrd + FromStr + Default + JsonSerializable + Sealed {
    fn from_usize(_: usize) -> Option<Self> { ... }
    fn to_usize(&self) -> Option<usize> { ... }
    fn to_isize(&self) -> Option<isize> { ... }
    fn from_i32(_: i32) -> Option<Self> { ... }
    fn from_i64(_: i64) -> Option<Self> { ... }
    fn from_i128(_: i128) -> Option<Self> { ... }
}
Expand description

Trait expressing a Rust type that has the same in-memory representation as Arrow. This includes i16, f32, but excludes bool (which in arrow is represented in bits).

In little endian machines, types that implement ArrowNativeType can be memcopied to arrow buffers as is.

Transmute Safety

A type T implementing this trait means that any arbitrary slice of bytes of length and alignment size_of::<T>() can be safely interpreted as a value of that type without being unsound, i.e. potentially resulting in undefined behaviour.

Note: in the case of floating point numbers this transmutation can result in a signalling NaN, which, whilst sound, can be unwieldy. In general, whilst it is perfectly sound to reinterpret bytes as different types using this trait, it is likely unwise. For more information see f32::from_bits and f64::from_bits.

Note: bool is restricted to 0 or 1, and so bool: !ArrowNativeType

Sealed

Due to the above restrictions, this trait is sealed to prevent accidental misuse

Provided Methods

Convert native type from usize.

Convert native type to usize.

Convert native type to isize.

Convert native type from i32.

Convert native type from i64.

Convert native type from i128.

Implementations on Foreign Types

Convert native type from i32.

Convert native type from i64.

Convert native type from i128.

Implementors