Struct deltalake::arrow::array::ArrayDataBuilder
source · pub struct ArrayDataBuilder { /* private fields */ }
Expand description
Builder for ArrayData
type
Implementations§
source§impl ArrayDataBuilder
impl ArrayDataBuilder
pub const fn new(data_type: DataType) -> ArrayDataBuilder
pub fn data_type(self, data_type: DataType) -> ArrayDataBuilder
pub const fn len(self, n: usize) -> ArrayDataBuilder
pub fn nulls(self, nulls: Option<NullBuffer>) -> ArrayDataBuilder
pub fn null_count(self, null_count: usize) -> ArrayDataBuilder
pub fn null_bit_buffer(self, buf: Option<Buffer>) -> ArrayDataBuilder
pub const fn offset(self, n: usize) -> ArrayDataBuilder
pub fn buffers(self, v: Vec<Buffer>) -> ArrayDataBuilder
pub fn add_buffer(self, b: Buffer) -> ArrayDataBuilder
pub fn child_data(self, v: Vec<ArrayData>) -> ArrayDataBuilder
pub fn add_child_data(self, r: ArrayData) -> ArrayDataBuilder
sourcepub unsafe fn build_unchecked(self) -> ArrayData
pub unsafe fn build_unchecked(self) -> ArrayData
Creates an array data, without any validation
§Safety
The same caveats as ArrayData::new_unchecked
apply.
sourcepub fn build(self) -> Result<ArrayData, ArrowError>
pub fn build(self) -> Result<ArrayData, ArrowError>
Creates an array data, validating all inputs
sourcepub fn build_aligned(self) -> Result<ArrayData, ArrowError>
pub fn build_aligned(self) -> Result<ArrayData, ArrowError>
Creates an array data, validating all inputs, and aligning any buffers
Rust requires that arrays are aligned to their corresponding primitive,
see Layout::array
and std::mem::align_of
.
ArrayData
therefore requires that all buffers have at least this alignment,
to allow for slice based APIs. See BufferSpec::FixedWidth
.
As this alignment is architecture specific, and not guaranteed by all arrow implementations, this method is provided to automatically copy buffers to a new correctly aligned allocation when necessary, making it useful when interacting with buffers produced by other systems, e.g. IPC or FFI.
This is unlike [Self::build
] which will instead return an error on encountering
insufficiently aligned buffers.
Trait Implementations§
source§impl Debug for ArrayDataBuilder
impl Debug for ArrayDataBuilder
source§impl From<ArrayData> for ArrayDataBuilder
impl From<ArrayData> for ArrayDataBuilder
source§fn from(d: ArrayData) -> ArrayDataBuilder
fn from(d: ArrayData) -> ArrayDataBuilder
Auto Trait Implementations§
impl Freeze for ArrayDataBuilder
impl RefUnwindSafe for ArrayDataBuilder
impl Send for ArrayDataBuilder
impl Sync for ArrayDataBuilder
impl Unpin for ArrayDataBuilder
impl UnwindSafe for ArrayDataBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more