Struct arrow_array::builder::UnionBuilder
source · pub struct UnionBuilder { /* private fields */ }
Expand description
Builder for UnionArray
Example: Dense Memory Layout
let mut builder = UnionBuilder::new_dense();
builder.append::<Int32Type>("a", 1).unwrap();
builder.append::<Float64Type>("b", 3.0).unwrap();
builder.append::<Int32Type>("a", 4).unwrap();
let union = builder.build().unwrap();
assert_eq!(union.type_id(0), 0);
assert_eq!(union.type_id(1), 1);
assert_eq!(union.type_id(2), 0);
assert_eq!(union.value_offset(0), 0);
assert_eq!(union.value_offset(1), 0);
assert_eq!(union.value_offset(2), 1);
Example: Sparse Memory Layout
let mut builder = UnionBuilder::new_sparse();
builder.append::<Int32Type>("a", 1).unwrap();
builder.append::<Float64Type>("b", 3.0).unwrap();
builder.append::<Int32Type>("a", 4).unwrap();
let union = builder.build().unwrap();
assert_eq!(union.type_id(0), 0);
assert_eq!(union.type_id(1), 1);
assert_eq!(union.type_id(2), 0);
assert_eq!(union.value_offset(0), 0);
assert_eq!(union.value_offset(1), 1);
assert_eq!(union.value_offset(2), 2);
Implementations§
source§impl UnionBuilder
impl UnionBuilder
sourcepub fn new_sparse() -> Self
pub fn new_sparse() -> Self
Creates a new sparse array builder.
sourcepub fn with_capacity_dense(capacity: usize) -> Self
pub fn with_capacity_dense(capacity: usize) -> Self
Creates a new dense array builder with capacity.
sourcepub fn with_capacity_sparse(capacity: usize) -> Self
pub fn with_capacity_sparse(capacity: usize) -> Self
Creates a new sparse array builder with capacity.
sourcepub fn append_null<T: ArrowPrimitiveType>(
&mut self,
type_name: &str
) -> Result<(), ArrowError>
pub fn append_null<T: ArrowPrimitiveType>( &mut self, type_name: &str ) -> Result<(), ArrowError>
Appends a null to this builder, encoding the null in the array
of the type_name
child / field.
Since UnionArray
encodes nulls as an entry in its children
(it doesn’t have a validity bitmap itself), and where the null
is part of the final array, appending a NULL requires
specifying which field (child) to use.
sourcepub fn append<T: ArrowPrimitiveType>(
&mut self,
type_name: &str,
v: T::Native
) -> Result<(), ArrowError>
pub fn append<T: ArrowPrimitiveType>( &mut self, type_name: &str, v: T::Native ) -> Result<(), ArrowError>
Appends a value to this builder.
sourcepub fn build(self) -> Result<UnionArray, ArrowError>
pub fn build(self) -> Result<UnionArray, ArrowError>
Builds this builder creating a new UnionArray
.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for UnionBuilder
impl !Send for UnionBuilder
impl !Sync for UnionBuilder
impl Unpin for UnionBuilder
impl !UnwindSafe for UnionBuilder
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
Mutably borrows from an owned value. Read more