pub type GenericBinaryBuilder<O> = GenericByteBuilder<GenericBinaryType<O>>;
Expand description
Array builder for GenericBinaryArray
Values can be appended using GenericByteBuilder::append_value
, and nulls with
GenericByteBuilder::append_null
.
§Example
let mut builder = GenericBinaryBuilder::<i32>::new();
// Write data
builder.append_value("foo");
// Write second value
builder.append_value(&[0,1,2]);
let array = builder.finish();
// binary values
assert_eq!(array.value(0), b"foo");
assert_eq!(array.value(1), b"\x00\x01\x02");
§Example incrementally writing bytes with write_bytes
let mut builder = GenericBinaryBuilder::<i32>::new();
// Write data in multiple `write_bytes` calls
write!(builder, "foo").unwrap();
write!(builder, "bar").unwrap();
// The next call to append_value finishes the current string
// including all previously written strings.
builder.append_value("baz");
// Write second value with a single write call
write!(builder, "v2").unwrap();
// finish the value by calling append_value with an empty string
builder.append_value("");
let array = builder.finish();
assert_eq!(array.value(0), "foobarbaz".as_bytes());
assert_eq!(array.value(1), "v2".as_bytes());
Aliased Type§
struct GenericBinaryBuilder<O> { /* private fields */ }
Implementations
Source§impl<T: ByteArrayType> GenericByteBuilder<T>
impl<T: ByteArrayType> GenericByteBuilder<T>
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new GenericByteBuilder
.
Sourcepub fn with_capacity(item_capacity: usize, data_capacity: usize) -> Self
pub fn with_capacity(item_capacity: usize, data_capacity: usize) -> Self
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).
Sourcepub unsafe fn new_from_buffer(
offsets_buffer: MutableBuffer,
value_buffer: MutableBuffer,
null_buffer: Option<MutableBuffer>,
) -> Self
pub unsafe fn new_from_buffer( offsets_buffer: MutableBuffer, value_buffer: MutableBuffer, null_buffer: Option<MutableBuffer>, ) -> Self
Creates a new GenericByteBuilder
from buffers.
§Safety
This doesn’t verify buffer contents as it assumes the buffers are from
existing and valid GenericByteArray
.
Sourcepub fn append_value(&mut self, value: impl AsRef<T::Native>)
pub fn append_value(&mut self, value: impl AsRef<T::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
Sourcepub fn append_option(&mut self, value: Option<impl AsRef<T::Native>>)
pub fn append_option(&mut self, value: Option<impl AsRef<T::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.
Sourcepub fn append_null(&mut self)
pub fn append_null(&mut self)
Append a null value into the builder.
Sourcepub fn finish(&mut self) -> GenericByteArray<T>
pub fn finish(&mut self) -> GenericByteArray<T>
Builds the GenericByteArray
and reset this builder.
Sourcepub fn finish_cloned(&self) -> GenericByteArray<T>
pub fn finish_cloned(&self) -> GenericByteArray<T>
Builds the GenericByteArray
without resetting the builder.
Sourcepub fn values_slice(&self) -> &[u8] ⓘ
pub fn values_slice(&self) -> &[u8] ⓘ
Returns the current values buffer as a slice
Sourcepub fn offsets_slice(&self) -> &[T::Offset]
pub fn offsets_slice(&self) -> &[T::Offset]
Returns the current offsets buffer as a 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
Trait Implementations§
Source§impl<O: OffsetSizeTrait> Write for GenericBinaryBuilder<O>
impl<O: OffsetSizeTrait> Write for GenericBinaryBuilder<O>
Source§fn write(&mut self, bs: &[u8]) -> Result<usize>
fn write(&mut self, bs: &[u8]) -> Result<usize>
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
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
)Source§impl<T: ByteArrayType> ArrayBuilder for GenericByteBuilder<T>
impl<T: ByteArrayType> ArrayBuilder for GenericByteBuilder<T>
Source§fn finish_cloned(&self) -> ArrayRef
fn finish_cloned(&self) -> ArrayRef
Builds the array without resetting the builder.
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§impl<T: ByteArrayType> Debug for GenericByteBuilder<T>
impl<T: ByteArrayType> Debug for GenericByteBuilder<T>
Source§impl<T: ByteArrayType> Default for GenericByteBuilder<T>
impl<T: ByteArrayType> Default for GenericByteBuilder<T>
Source§impl<T: ByteArrayType, V: AsRef<T::Native>> Extend<Option<V>> for GenericByteBuilder<T>
impl<T: ByteArrayType, V: AsRef<T::Native>> Extend<Option<V>> for GenericByteBuilder<T>
Source§fn extend<I: IntoIterator<Item = Option<V>>>(&mut self, iter: I)
fn extend<I: IntoIterator<Item = Option<V>>>(&mut self, iter: I)
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
)