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§
pub struct GenericStringBuilder<O> {
value_builder: Vec<u8>,
offsets_builder: Vec<<GenericStringType<O> as ByteArrayType>::Offset>,
null_buffer_builder: NullBufferBuilder,
}Fields§
§value_builder: Vec<u8>§offsets_builder: Vec<<GenericStringType<O> as ByteArrayType>::Offset>§null_buffer_builder: NullBufferBuilderTrait Implementations§
Source§impl<O: OffsetSizeTrait> StringLikeArrayBuilder for GenericStringBuilder<O>
impl<O: OffsetSizeTrait> StringLikeArrayBuilder for GenericStringBuilder<O>
Source§fn with_capacity(capacity: usize) -> Self
fn with_capacity(capacity: usize) -> Self
Creates a new builder with the given row capacity.
Source§fn append_value(&mut self, value: &str)
fn append_value(&mut self, value: &str)
Appends a non-null string value to the builder.
Source§fn append_null(&mut self)
fn append_null(&mut self)
Appends a null value to the builder.