Struct arrow::array::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_dense() -> UnionBuilder
pub fn new_dense() -> UnionBuilder
Creates a new dense array builder.
sourcepub fn new_sparse() -> UnionBuilder
pub fn new_sparse() -> UnionBuilder
Creates a new sparse array builder.
sourcepub fn with_capacity_dense(capacity: usize) -> UnionBuilder
pub fn with_capacity_dense(capacity: usize) -> UnionBuilder
Creates a new dense array builder with capacity.
sourcepub fn with_capacity_sparse(capacity: usize) -> UnionBuilder
pub fn with_capacity_sparse(capacity: usize) -> UnionBuilder
Creates a new sparse array builder with capacity.
sourcepub fn append_null<T>(&mut self, type_name: &str) -> Result<(), ArrowError>where
T: ArrowPrimitiveType,
pub fn append_null<T>(&mut self, type_name: &str) -> Result<(), ArrowError>where
T: ArrowPrimitiveType,
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>(
&mut self,
type_name: &str,
v: <T as ArrowPrimitiveType>::Native,
) -> Result<(), ArrowError>where
T: ArrowPrimitiveType,
pub fn append<T>(
&mut self,
type_name: &str,
v: <T as ArrowPrimitiveType>::Native,
) -> Result<(), ArrowError>where
T: ArrowPrimitiveType,
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