Struct GenericByteBuilder
pub struct GenericByteBuilder<T>where
T: ByteArrayType,{
value_builder: BufferBuilder<u8>,
offsets_builder: BufferBuilder<<T as ByteArrayType>::Offset>,
null_buffer_builder: NullBufferBuilder,
}
Expand description
Builder for GenericByteArray
For building strings, see docs on GenericStringBuilder
.
For building binary, see docs on GenericBinaryBuilder
.
Fields§
§value_builder: BufferBuilder<u8>
§offsets_builder: BufferBuilder<<T as ByteArrayType>::Offset>
§null_buffer_builder: NullBufferBuilder
Implementations§
§impl<T> GenericByteBuilder<T>where
T: ByteArrayType,
impl<T> GenericByteBuilder<T>where
T: ByteArrayType,
pub fn new() -> GenericByteBuilder<T>
pub fn new() -> GenericByteBuilder<T>
Creates a new GenericByteBuilder
.
pub fn with_capacity(
item_capacity: usize,
data_capacity: usize,
) -> GenericByteBuilder<T>
pub fn with_capacity( item_capacity: usize, data_capacity: usize, ) -> GenericByteBuilder<T>
Creates a new GenericByteBuilder
.
item_capacity
is the number of items to pre-allocate. The size of the preallocated buffer of offsets is the number of items plus one.data_capacity
is the total number of bytes of data to pre-allocate (for all items, not per item).
pub unsafe fn new_from_buffer(
offsets_buffer: MutableBuffer,
value_buffer: MutableBuffer,
null_buffer: Option<MutableBuffer>,
) -> GenericByteBuilder<T>
pub unsafe fn new_from_buffer( offsets_buffer: MutableBuffer, value_buffer: MutableBuffer, null_buffer: Option<MutableBuffer>, ) -> GenericByteBuilder<T>
Creates a new GenericByteBuilder
from buffers.
§Safety
This doesn’t verify buffer contents as it assumes the buffers are from
existing and valid GenericByteArray
.
pub fn append_value(&mut self, value: impl AsRef<<T as ByteArrayType>::Native>)
pub fn append_value(&mut self, value: impl AsRef<<T as ByteArrayType>::Native>)
Appends a value into the builder.
See the GenericStringBuilder documentation for examples of
incrementally building string values with multiple write!
calls.
§Panics
Panics if the resulting length of Self::values_slice
would exceed
T::Offset::MAX
bytes.
For example, this can happen with StringArray
or BinaryArray
where the total length of all values exceeds 2GB
pub fn append_option(
&mut self,
value: Option<impl AsRef<<T as ByteArrayType>::Native>>,
)
pub fn append_option( &mut self, value: Option<impl AsRef<<T as ByteArrayType>::Native>>, )
Append an Option
value into the builder.
- A
None
value will append a null value. - A
Some
value will append the value.
See Self::append_value
for more panic information.
pub fn append_null(&mut self)
pub fn append_null(&mut self)
Append a null value into the builder.
pub fn finish(&mut self) -> GenericByteArray<T>
pub fn finish(&mut self) -> GenericByteArray<T>
Builds the GenericByteArray
and reset this builder.
pub fn finish_cloned(&self) -> GenericByteArray<T>
pub fn finish_cloned(&self) -> GenericByteArray<T>
Builds the GenericByteArray
without resetting the builder.
pub fn values_slice(&self) -> &[u8] ⓘ
pub fn values_slice(&self) -> &[u8] ⓘ
Returns the current values buffer as a slice
pub fn offsets_slice(&self) -> &[<T as ByteArrayType>::Offset]
pub fn offsets_slice(&self) -> &[<T as ByteArrayType>::Offset]
Returns the current offsets buffer as a 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
Trait Implementations§
§impl<T> ArrayBuilder for GenericByteBuilder<T>where
T: ByteArrayType,
impl<T> ArrayBuilder for GenericByteBuilder<T>where
T: ByteArrayType,
§fn finish_cloned(&self) -> Arc<dyn Array>
fn finish_cloned(&self) -> Arc<dyn Array>
Builds the array without resetting the builder.
§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<GenericByteBuilder<T>>) -> Box<dyn Any>
fn into_box_any(self: Box<GenericByteBuilder<T>>) -> Box<dyn Any>
Returns the boxed builder as a box of Any
.
§impl<T> Debug for GenericByteBuilder<T>where
T: ByteArrayType,
impl<T> Debug for GenericByteBuilder<T>where
T: ByteArrayType,
§impl<T> Default for GenericByteBuilder<T>where
T: ByteArrayType,
impl<T> Default for GenericByteBuilder<T>where
T: ByteArrayType,
§fn default() -> GenericByteBuilder<T>
fn default() -> GenericByteBuilder<T>
§impl<T, V> Extend<Option<V>> for GenericByteBuilder<T>
impl<T, V> Extend<Option<V>> for GenericByteBuilder<T>
§fn extend<I>(&mut self, iter: I)where
I: IntoIterator<Item = Option<V>>,
fn extend<I>(&mut self, iter: I)where
I: IntoIterator<Item = Option<V>>,
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
)§impl<O> Write for GenericByteBuilder<GenericBinaryType<O>>where
O: OffsetSizeTrait,
impl<O> Write for GenericByteBuilder<GenericBinaryType<O>>where
O: OffsetSizeTrait,
§fn write(&mut self, bs: &[u8]) -> Result<usize, Error>
fn write(&mut self, bs: &[u8]) -> Result<usize, Error>
§fn flush(&mut self) -> Result<(), Error>
fn flush(&mut self) -> Result<(), Error>
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
write_all_vectored
)