Enum arrow_data::BufferSpec

source ·
pub enum BufferSpec {
    FixedWidth {
        byte_width: usize,
        alignment: usize,
    },
    VariableWidth,
    BitMap,
    AlwaysNull,
}
Expand description

Layout specification for a single data type buffer

Variants§

§

FixedWidth

Each element is a fixed width primitive, with the given byte_width and alignment

alignment is the alignment required by Rust for an array of the corresponding primitive, see Layout::array and std::mem::align_of.

Arrow-rs requires that all buffers have at least this alignment, to allow for slice based APIs. Alignment in excess of this is not required to allow for array slicing and interoperability with Vec, which cannot be over-aligned.

Note that these alignment requirements will vary between architectures

Fields

§byte_width: usize
§alignment: usize
§

VariableWidth

Variable width, such as string data for utf8 data

§

BitMap

Buffer holds a bitmap.

Note: Unlike the C++ implementation, the null/validity buffer is handled specially rather than as another of the buffers in the spec, so this variant is only used for the Boolean type.

§

AlwaysNull

Buffer is always null. Unused currently in Rust implementation, (used in C++ for Union type)

Trait Implementations§

source§

impl Debug for BufferSpec

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for BufferSpec

source§

fn eq(&self, other: &BufferSpec) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for BufferSpec

source§

impl StructuralPartialEq for BufferSpec

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,