pub struct PrimitiveBuilder<T: ArrowPrimitiveType> {
values_builder: BufferBuilder<T::Native>,
null_buffer_builder: NullBufferBuilder,
data_type: DataType,
}
Expand description
Builder for PrimitiveArray
Fields§
§values_builder: BufferBuilder<T::Native>
§null_buffer_builder: NullBufferBuilder
§data_type: DataType
Implementations§
Source§impl<T: ArrowPrimitiveType> PrimitiveBuilder<T>
impl<T: ArrowPrimitiveType> PrimitiveBuilder<T>
Sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Creates a new primitive array builder with capacity no of items
Sourcepub fn new_from_buffer(
values_buffer: MutableBuffer,
null_buffer: Option<MutableBuffer>,
) -> Self
pub fn new_from_buffer( values_buffer: MutableBuffer, null_buffer: Option<MutableBuffer>, ) -> Self
Creates a new primitive array builder from buffers
Sourcepub fn with_data_type(self, data_type: DataType) -> Self
pub fn with_data_type(self, data_type: DataType) -> Self
By default PrimitiveBuilder
uses ArrowPrimitiveType::DATA_TYPE
as the
data type of the generated array.
This method allows overriding the data type, to allow specifying timezones
for [DataType::Timestamp
] or precision and scale for [DataType::Decimal128
] and [DataType::Decimal256
]
§Panics
This method panics if data_type
is not PrimitiveArray::is_compatible
Sourcepub fn capacity(&self) -> usize
pub fn capacity(&self) -> usize
Returns the capacity of this builder measured in slots of type T
Sourcepub fn append_value(&mut self, v: T::Native)
pub fn append_value(&mut self, v: T::Native)
Appends a value of type T
into the builder
Sourcepub fn append_value_n(&mut self, v: T::Native, n: usize)
pub fn append_value_n(&mut self, v: T::Native, n: usize)
Appends a value of type T
into the builder n
times
Sourcepub fn append_null(&mut self)
pub fn append_null(&mut self)
Appends a null slot into the builder
Sourcepub fn append_nulls(&mut self, n: usize)
pub fn append_nulls(&mut self, n: usize)
Appends n
no. of null’s into the builder
Sourcepub fn append_option(&mut self, v: Option<T::Native>)
pub fn append_option(&mut self, v: Option<T::Native>)
Appends an Option<T>
into the builder
Sourcepub fn append_slice(&mut self, v: &[T::Native])
pub fn append_slice(&mut self, v: &[T::Native])
Appends a slice of type T
into the builder
Sourcepub fn append_values(&mut self, values: &[T::Native], is_valid: &[bool])
pub fn append_values(&mut self, values: &[T::Native], is_valid: &[bool])
Appends values from a slice of type T
and a validity boolean slice
§Panics
Panics if values
and is_valid
have different lengths
Sourcepub fn append_array(&mut self, array: &PrimitiveArray<T>)
pub fn append_array(&mut self, array: &PrimitiveArray<T>)
Appends array values and null to this builder as is (this means that underlying null values are copied as is).
§Panics
Panics if array
and self
data types are different
Sourcepub unsafe fn append_trusted_len_iter(
&mut self,
iter: impl IntoIterator<Item = T::Native>,
)
pub unsafe fn append_trusted_len_iter( &mut self, iter: impl IntoIterator<Item = T::Native>, )
Appends values from a trusted length iterator.
§Safety
This requires the iterator be a trusted length. This could instead require
the iterator implement TrustedLen
once that is stabilized.
Sourcepub fn finish(&mut self) -> PrimitiveArray<T>
pub fn finish(&mut self) -> PrimitiveArray<T>
Builds the PrimitiveArray
and reset this builder.
Sourcepub fn finish_cloned(&self) -> PrimitiveArray<T>
pub fn finish_cloned(&self) -> PrimitiveArray<T>
Builds the PrimitiveArray
without resetting the builder.
Sourcepub fn values_slice(&self) -> &[T::Native]
pub fn values_slice(&self) -> &[T::Native]
Returns the current values buffer as a slice
Sourcepub fn values_slice_mut(&mut self) -> &mut [T::Native]
pub fn values_slice_mut(&mut self) -> &mut [T::Native]
Returns the current values buffer as a mutable slice
Sourcepub fn validity_slice(&self) -> Option<&[u8]>
pub fn validity_slice(&self) -> Option<&[u8]>
Returns the current null buffer as a slice
Sourcepub fn validity_slice_mut(&mut self) -> Option<&mut [u8]>
pub fn validity_slice_mut(&mut self) -> Option<&mut [u8]>
Returns the current null buffer as a mutable slice
Sourcepub fn slices_mut(&mut self) -> (&mut [T::Native], Option<&mut [u8]>)
pub fn slices_mut(&mut self) -> (&mut [T::Native], Option<&mut [u8]>)
Returns the current values buffer and null buffer as a slice
Source§impl<P: DecimalType> PrimitiveBuilder<P>
impl<P: DecimalType> PrimitiveBuilder<P>
Sourcepub fn with_precision_and_scale(
self,
precision: u8,
scale: i8,
) -> Result<Self, ArrowError>
pub fn with_precision_and_scale( self, precision: u8, scale: i8, ) -> Result<Self, ArrowError>
Sets the precision and scale
Source§impl<P: ArrowTimestampType> PrimitiveBuilder<P>
impl<P: ArrowTimestampType> PrimitiveBuilder<P>
Trait Implementations§
Source§impl<T: ArrowPrimitiveType> ArrayBuilder for PrimitiveBuilder<T>
impl<T: ArrowPrimitiveType> ArrayBuilder for PrimitiveBuilder<T>
Source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Returns the builder as a mutable Any
reference.
Source§fn finish_cloned(&self) -> ArrayRef
fn finish_cloned(&self) -> ArrayRef
Builds the array without resetting the builder.
Source§impl<T: Debug + ArrowPrimitiveType> Debug for PrimitiveBuilder<T>
impl<T: Debug + ArrowPrimitiveType> Debug for PrimitiveBuilder<T>
Source§impl<T: ArrowPrimitiveType> Default for PrimitiveBuilder<T>
impl<T: ArrowPrimitiveType> Default for PrimitiveBuilder<T>
Source§impl<P: ArrowPrimitiveType> Extend<Option<<P as ArrowPrimitiveType>::Native>> for PrimitiveBuilder<P>
impl<P: ArrowPrimitiveType> Extend<Option<<P as ArrowPrimitiveType>::Native>> for PrimitiveBuilder<P>
Source§fn extend<T: IntoIterator<Item = Option<P::Native>>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = Option<P::Native>>>(&mut self, iter: T)
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)