Struct PrimitiveBuilder
pub struct PrimitiveBuilder<T>where
T: ArrowPrimitiveType,{
values_builder: BufferBuilder<<T as ArrowPrimitiveType>::Native>,
null_buffer_builder: NullBufferBuilder,
data_type: DataType,
}
Expand description
Builder for PrimitiveArray
Fields§
§values_builder: BufferBuilder<<T as ArrowPrimitiveType>::Native>
§null_buffer_builder: NullBufferBuilder
§data_type: DataType
Implementations§
§impl<T> PrimitiveBuilder<T>where
T: ArrowPrimitiveType,
impl<T> PrimitiveBuilder<T>where
T: ArrowPrimitiveType,
pub fn new() -> PrimitiveBuilder<T>
pub fn new() -> PrimitiveBuilder<T>
Creates a new primitive array builder
pub fn with_capacity(capacity: usize) -> PrimitiveBuilder<T>
pub fn with_capacity(capacity: usize) -> PrimitiveBuilder<T>
Creates a new primitive array builder with capacity no of items
pub fn new_from_buffer(
values_buffer: MutableBuffer,
null_buffer: Option<MutableBuffer>,
) -> PrimitiveBuilder<T>
pub fn new_from_buffer( values_buffer: MutableBuffer, null_buffer: Option<MutableBuffer>, ) -> PrimitiveBuilder<T>
Creates a new primitive array builder from buffers
pub fn with_data_type(self, data_type: DataType) -> PrimitiveBuilder<T>
pub fn with_data_type(self, data_type: DataType) -> PrimitiveBuilder<T>
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
pub fn append_value(&mut self, v: <T as ArrowPrimitiveType>::Native)
pub fn append_value(&mut self, v: <T as ArrowPrimitiveType>::Native)
Appends a value of type T
into the builder
pub fn append_value_n(&mut self, v: <T as ArrowPrimitiveType>::Native, n: usize)
pub fn append_value_n(&mut self, v: <T as ArrowPrimitiveType>::Native, n: usize)
Appends a value of type T
into the builder n
times
pub fn append_null(&mut self)
pub fn append_null(&mut self)
Appends a null slot into the builder
pub fn append_nulls(&mut self, n: usize)
pub fn append_nulls(&mut self, n: usize)
Appends n
no. of null’s into the builder
pub fn append_option(&mut self, v: Option<<T as ArrowPrimitiveType>::Native>)
pub fn append_option(&mut self, v: Option<<T as ArrowPrimitiveType>::Native>)
Appends an Option<T>
into the builder
pub fn append_slice(&mut self, v: &[<T as ArrowPrimitiveType>::Native])
pub fn append_slice(&mut self, v: &[<T as ArrowPrimitiveType>::Native])
Appends a slice of type T
into the builder
pub fn append_values(
&mut self,
values: &[<T as ArrowPrimitiveType>::Native],
is_valid: &[bool],
)
pub fn append_values( &mut self, values: &[<T as ArrowPrimitiveType>::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
pub 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
pub unsafe fn append_trusted_len_iter(
&mut self,
iter: impl IntoIterator<Item = <T as ArrowPrimitiveType>::Native>,
)
pub unsafe fn append_trusted_len_iter( &mut self, iter: impl IntoIterator<Item = <T as ArrowPrimitiveType>::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.
pub fn finish(&mut self) -> PrimitiveArray<T>
pub fn finish(&mut self) -> PrimitiveArray<T>
Builds the PrimitiveArray
and reset this builder.
pub fn finish_cloned(&self) -> PrimitiveArray<T>
pub fn finish_cloned(&self) -> PrimitiveArray<T>
Builds the PrimitiveArray
without resetting the builder.
pub fn values_slice(&self) -> &[<T as ArrowPrimitiveType>::Native]
pub fn values_slice(&self) -> &[<T as ArrowPrimitiveType>::Native]
Returns the current values buffer as a slice
pub fn values_slice_mut(&mut self) -> &mut [<T as ArrowPrimitiveType>::Native]
pub fn values_slice_mut(&mut self) -> &mut [<T as ArrowPrimitiveType>::Native]
Returns the current values buffer as a mutable slice
pub fn validity_slice(&self) -> Option<&[u8]>
pub fn validity_slice(&self) -> Option<&[u8]>
Returns the current null buffer as a slice
pub 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
pub fn slices_mut(
&mut self,
) -> (&mut [<T as ArrowPrimitiveType>::Native], Option<&mut [u8]>)
pub fn slices_mut( &mut self, ) -> (&mut [<T as ArrowPrimitiveType>::Native], Option<&mut [u8]>)
Returns the current values buffer and null buffer as a slice
§impl<P> PrimitiveBuilder<P>where
P: DecimalType,
impl<P> PrimitiveBuilder<P>where
P: DecimalType,
pub fn with_precision_and_scale(
self,
precision: u8,
scale: i8,
) -> Result<PrimitiveBuilder<P>, ArrowError>
pub fn with_precision_and_scale( self, precision: u8, scale: i8, ) -> Result<PrimitiveBuilder<P>, ArrowError>
Sets the precision and scale
§impl<P> PrimitiveBuilder<P>where
P: ArrowTimestampType,
impl<P> PrimitiveBuilder<P>where
P: ArrowTimestampType,
pub fn with_timezone(self, timezone: impl Into<Arc<str>>) -> PrimitiveBuilder<P>
pub fn with_timezone(self, timezone: impl Into<Arc<str>>) -> PrimitiveBuilder<P>
Sets the timezone
pub fn with_timezone_opt<S>(self, timezone: Option<S>) -> PrimitiveBuilder<P>
pub fn with_timezone_opt<S>(self, timezone: Option<S>) -> PrimitiveBuilder<P>
Sets an optional timezone
Trait Implementations§
§impl<T> ArrayBuilder for PrimitiveBuilder<T>where
T: ArrowPrimitiveType,
impl<T> ArrayBuilder for PrimitiveBuilder<T>where
T: ArrowPrimitiveType,
§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Returns the builder as a mutable Any
reference.
§fn into_box_any(self: Box<PrimitiveBuilder<T>>) -> Box<dyn Any>
fn into_box_any(self: Box<PrimitiveBuilder<T>>) -> Box<dyn Any>
Returns the boxed builder as a box of Any
.
§fn finish_cloned(&self) -> Arc<dyn Array>
fn finish_cloned(&self) -> Arc<dyn Array>
Builds the array without resetting the builder.
§impl<T> Debug for PrimitiveBuilder<T>
impl<T> Debug for PrimitiveBuilder<T>
§impl<T> Default for PrimitiveBuilder<T>where
T: ArrowPrimitiveType,
impl<T> Default for PrimitiveBuilder<T>where
T: ArrowPrimitiveType,
§fn default() -> PrimitiveBuilder<T>
fn default() -> PrimitiveBuilder<T>
§impl<P> Extend<Option<<P as ArrowPrimitiveType>::Native>> for PrimitiveBuilder<P>where
P: ArrowPrimitiveType,
impl<P> Extend<Option<<P as ArrowPrimitiveType>::Native>> for PrimitiveBuilder<P>where
P: ArrowPrimitiveType,
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
)