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