Struct PrimitiveBuilder

pub struct PrimitiveBuilder<T>{
    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>

pub fn new() -> PrimitiveBuilder<T>

Creates a new primitive array builder

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>

Creates a new primitive array builder from buffers

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 capacity(&self) -> usize

Returns the capacity of this builder measured in slots of type T

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)

Appends a value of type T into the builder n times

pub fn append_null(&mut self)

Appends a null slot into the builder

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>)

Appends an Option<T> into the builder

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], )

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>)

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>, )

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>

Builds the PrimitiveArray and reset this builder.

pub fn finish_cloned(&self) -> PrimitiveArray<T>

Builds the PrimitiveArray without resetting the builder.

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]

Returns the current values buffer as a mutable slice

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]>

Returns the current null buffer as a mutable slice

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,

pub fn with_precision_and_scale( self, precision: u8, scale: i8, ) -> Result<PrimitiveBuilder<P>, ArrowError>

Sets the precision and scale

§

impl<P> 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>
where S: Into<Arc<str>>,

Sets an optional timezone

Trait Implementations§

§

impl<T> ArrayBuilder for PrimitiveBuilder<T>

§

fn as_any(&self) -> &(dyn Any + 'static)

Returns the builder as a non-mutable Any reference.

§

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>

Returns the boxed builder as a box of Any.

§

fn len(&self) -> usize

Returns the number of array slots in the builder

§

fn finish(&mut self) -> Arc<dyn Array>

Builds the array and reset this builder.

§

fn finish_cloned(&self) -> Arc<dyn Array>

Builds the array without resetting the builder.

§

fn is_empty(&self) -> bool

Returns whether number of array slots is zero
§

impl<T> Debug for PrimitiveBuilder<T>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<T> Default for PrimitiveBuilder<T>

§

fn default() -> PrimitiveBuilder<T>

Returns the “default value” for a type. Read more
§

impl<P> Extend<Option<<P as ArrowPrimitiveType>::Native>> for PrimitiveBuilder<P>

§

fn extend<T>(&mut self, iter: T)
where T: IntoIterator<Item = Option<<P as ArrowPrimitiveType>::Native>>,

Extends a collection with the contents of an iterator. Read more
Source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

§

impl<T> Ungil for T
where T: Send,