arrow_array::builder::generic_bytes_builder

Type Alias GenericStringBuilder

Source
pub type GenericStringBuilder<O> = GenericByteBuilder<GenericStringType<O>>;
Expand description

Array builder for GenericStringArray

Values can be appended using GenericByteBuilder::append_value, and nulls with GenericByteBuilder::append_null.

This builder also implements std::fmt::Write with any written data included in the next appended value. This allows using std::fmt::Display with standard Rust idioms like write! and writeln! to write data directly to the builder without intermediate allocations.

§Example writing strings with append_value

let mut builder = GenericStringBuilder::<i32>::new();

// Write one string value
builder.append_value("foobarbaz");

// Write a second string
builder.append_value("v2");

let array = builder.finish();
assert_eq!(array.value(0), "foobarbaz");
assert_eq!(array.value(1), "v2");

§Example incrementally writing strings with std::fmt::Write

let mut builder = GenericStringBuilder::<i32>::new();

// Write data in multiple `write!` 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");
assert_eq!(array.value(1), "v2");

Aliased Type§

struct GenericStringBuilder<O> {
    value_builder: BufferBuilder<u8>,
    offsets_builder: BufferBuilder<<GenericStringType<O> as ByteArrayType>::Offset>,
    null_buffer_builder: NullBufferBuilder,
}

Fields§

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

Trait Implementations§

Source§

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

Source§

fn write_str(&mut self, s: &str) -> Result

Writes a string slice into this writer, returning whether the write succeeded. Read more
1.1.0 · Source§

fn write_char(&mut self, c: char) -> Result<(), Error>

Writes a char into this writer, returning whether the write succeeded. Read more
1.0.0 · Source§

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

Glue for usage of the write! macro with implementors of this trait. Read more