Struct PrimitiveBuilder

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

Source

pub fn new() -> Self

Creates a new primitive array builder

Source

pub fn with_capacity(capacity: usize) -> Self

Creates a new primitive array builder with capacity no of items

Source

pub fn new_from_buffer( values_buffer: MutableBuffer, null_buffer: Option<MutableBuffer>, ) -> Self

Creates a new primitive array builder from buffers

Source

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

Source

pub fn capacity(&self) -> usize

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

Source

pub fn append_value(&mut self, v: T::Native)

Appends a value of type T into the builder

Source

pub fn append_value_n(&mut self, v: T::Native, n: usize)

Appends a value of type T into the builder n times

Source

pub fn append_null(&mut self)

Appends a null slot into the builder

Source

pub fn append_nulls(&mut self, n: usize)

Appends n no. of null’s into the builder

Source

pub fn append_option(&mut self, v: Option<T::Native>)

Appends an Option<T> into the builder

Source

pub fn append_slice(&mut self, v: &[T::Native])

Appends a slice of type T into the builder

Source

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

Source

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

Source

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.

Source

pub fn finish(&mut self) -> PrimitiveArray<T>

Builds the PrimitiveArray and reset this builder.

Source

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

Builds the PrimitiveArray without resetting the builder.

Source

pub fn values_slice(&self) -> &[T::Native]

Returns the current values buffer as a slice

Source

pub fn values_slice_mut(&mut self) -> &mut [T::Native]

Returns the current values buffer as a mutable slice

Source

pub fn validity_slice(&self) -> Option<&[u8]>

Returns the current null buffer as a slice

Source

pub fn validity_slice_mut(&mut self) -> Option<&mut [u8]>

Returns the current null buffer as a mutable slice

Source

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>

Source

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>

Source

pub fn with_timezone(self, timezone: impl Into<Arc<str>>) -> Self

Sets the timezone

Source

pub fn with_timezone_opt<S: Into<Arc<str>>>(self, timezone: Option<S>) -> Self

Sets an optional timezone

Trait Implementations§

Source§

impl<T: ArrowPrimitiveType> ArrayBuilder for PrimitiveBuilder<T>

Source§

fn as_any(&self) -> &dyn Any

Returns the builder as a non-mutable Any reference.

Source§

fn as_any_mut(&mut self) -> &mut dyn Any

Returns the builder as a mutable Any reference.

Source§

fn into_box_any(self: Box<Self>) -> Box<dyn Any>

Returns the boxed builder as a box of Any.

Source§

fn len(&self) -> usize

Returns the number of array slots in the builder

Source§

fn finish(&mut self) -> ArrayRef

Builds the array and reset this builder.

Source§

fn finish_cloned(&self) -> ArrayRef

Builds the array without resetting the builder.

Source§

fn is_empty(&self) -> bool

Returns whether number of array slots is zero
Source§

impl<T: Debug + ArrowPrimitiveType> Debug for PrimitiveBuilder<T>
where T::Native: Debug,

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<T: ArrowPrimitiveType> Default for PrimitiveBuilder<T>

Source§

fn default() -> Self

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

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)

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<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,