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 Freeze for UnionBuilder
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