arrow_array::builder::generic_bytes_builder

Type Alias GenericBinaryBuilder

Source
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> {
    value_builder: BufferBuilder<u8>,
    offsets_builder: BufferBuilder<<GenericBinaryType<O> as ByteArrayType>::Offset>,
    null_buffer_builder: NullBufferBuilder,
}

Fields§

§value_builder: BufferBuilder<u8>§offsets_builder: BufferBuilder<<GenericBinaryType<O> as ByteArrayType>::Offset>§null_buffer_builder: NullBufferBuilder

Trait Implementations§

Source§

impl<O: OffsetSizeTrait> Write for GenericBinaryBuilder<O>

Source§

fn write(&mut self, bs: &[u8]) -> Result<usize>

Writes a buffer into this writer, returning how many bytes were written. Read more
Source§

fn flush(&mut self) -> Result<()>

Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
1.36.0 · Source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
Source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
1.0.0 · Source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
Source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
1.0.0 · Source§

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

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 · Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more