Struct google_cloud_bigquery::storage::array::GenericListBuilder
pub struct GenericListBuilder<OffsetSize, T>where
OffsetSize: OffsetSizeTrait,
T: ArrayBuilder,{ /* private fields */ }Expand description
Builder for GenericListArray
Use ListBuilder to build ListArrays and LargeListBuilder to build LargeListArrays.
Implementations§
§impl<OffsetSize, T> GenericListBuilder<OffsetSize, T>where
OffsetSize: OffsetSizeTrait,
T: ArrayBuilder,
impl<OffsetSize, T> GenericListBuilder<OffsetSize, T>where OffsetSize: OffsetSizeTrait, T: ArrayBuilder,
pub fn new(values_builder: T) -> GenericListBuilder<OffsetSize, T>
pub fn new(values_builder: T) -> GenericListBuilder<OffsetSize, T>
Creates a new GenericListBuilder from a given values array builder
pub fn with_capacity(
values_builder: T,
capacity: usize
) -> GenericListBuilder<OffsetSize, T>
pub fn with_capacity( values_builder: T, capacity: usize ) -> GenericListBuilder<OffsetSize, T>
Creates a new GenericListBuilder from a given values array builder
capacity is the number of items to pre-allocate space for in this builder
§impl<OffsetSize, T> GenericListBuilder<OffsetSize, T>where
OffsetSize: OffsetSizeTrait,
T: ArrayBuilder + 'static,
impl<OffsetSize, T> GenericListBuilder<OffsetSize, T>where OffsetSize: OffsetSizeTrait, T: ArrayBuilder + 'static,
pub fn values(&mut self) -> &mut T
pub fn values(&mut self) -> &mut T
Returns the child array builder as a mutable reference.
This mutable reference can be used to append values into the child array builder,
but you must call append to delimit each distinct list value.
pub fn values_ref(&self) -> &T
pub fn values_ref(&self) -> &T
Returns the child array builder as an immutable reference
pub fn append(&mut self, is_valid: bool)
pub fn append(&mut self, is_valid: bool)
Finish the current variable-length list array slot
Panics
Panics if the length of Self::values exceeds OffsetSize::MAX
pub fn append_value<I, V>(&mut self, i: I)where
T: Extend<Option<V>>,
I: IntoIterator<Item = Option<V>>,
pub fn append_value<I, V>(&mut self, i: I)where T: Extend<Option<V>>, I: IntoIterator<Item = Option<V>>,
Append a value to this GenericListBuilder
let mut builder = ListBuilder::new(Int32Builder::new());
builder.append_value([Some(1), Some(2), Some(3)]);
builder.append_value([]);
builder.append_value([None]);
let array = builder.finish();
assert_eq!(array.len(), 3);
assert_eq!(array.value_offsets(), &[0, 3, 3, 4]);
let values = array.values().as_primitive::<Int32Type>();
assert_eq!(values, &Int32Array::from(vec![Some(1), Some(2), Some(3), None]));This is an alternative API to appending directly to Self::values and
delimiting the result with Self::append
let mut builder = ListBuilder::new(Int32Builder::new());
builder.values().append_value(1);
builder.values().append_value(2);
builder.values().append_value(3);
builder.append(true);
builder.append(true);
builder.values().append_null();
builder.append(true);
let array = builder.finish();
assert_eq!(array.len(), 3);
assert_eq!(array.value_offsets(), &[0, 3, 3, 4]);
let values = array.values().as_primitive::<Int32Type>();
assert_eq!(values, &Int32Array::from(vec![Some(1), Some(2), Some(3), None]));pub fn append_null(&mut self)
pub fn append_null(&mut self)
Append a null to this GenericListBuilder
See Self::append_value for an example use.
pub fn append_option<I, V>(&mut self, i: Option<I>)where
T: Extend<Option<V>>,
I: IntoIterator<Item = Option<V>>,
pub fn append_option<I, V>(&mut self, i: Option<I>)where T: Extend<Option<V>>, I: IntoIterator<Item = Option<V>>,
Appends an optional value into this GenericListBuilder
If Some calls Self::append_value otherwise calls Self::append_null
pub fn finish(&mut self) -> GenericListArray<OffsetSize>
pub fn finish(&mut self) -> GenericListArray<OffsetSize>
Builds the GenericListArray and reset this builder.
pub fn finish_cloned(&self) -> GenericListArray<OffsetSize>
pub fn finish_cloned(&self) -> GenericListArray<OffsetSize>
Builds the GenericListArray without resetting the builder.
pub fn offsets_slice(&self) -> &[OffsetSize]
pub fn offsets_slice(&self) -> &[OffsetSize]
Returns the current offsets buffer as a slice
Trait Implementations§
§impl<OffsetSize, T> ArrayBuilder for GenericListBuilder<OffsetSize, T>where
OffsetSize: OffsetSizeTrait,
T: ArrayBuilder + 'static,
impl<OffsetSize, T> ArrayBuilder for GenericListBuilder<OffsetSize, T>where OffsetSize: OffsetSizeTrait, T: ArrayBuilder + 'static,
§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Returns the builder as a mutable Any reference.
§fn into_box_any(
self: Box<GenericListBuilder<OffsetSize, T>, Global>
) -> Box<dyn Any, Global>
fn into_box_any( self: Box<GenericListBuilder<OffsetSize, T>, Global> ) -> Box<dyn Any, Global>
Returns the boxed builder as a box of Any.
§fn finish_cloned(&self) -> Arc<dyn Array, Global>
fn finish_cloned(&self) -> Arc<dyn Array, Global>
Builds the array without resetting the builder.
§impl<OffsetSize, T> Debug for GenericListBuilder<OffsetSize, T>where
OffsetSize: Debug + OffsetSizeTrait,
T: Debug + ArrayBuilder,
impl<OffsetSize, T> Debug for GenericListBuilder<OffsetSize, T>where OffsetSize: Debug + OffsetSizeTrait, T: Debug + ArrayBuilder,
§impl<O, T> Default for GenericListBuilder<O, T>where
O: OffsetSizeTrait,
T: ArrayBuilder + Default,
impl<O, T> Default for GenericListBuilder<O, T>where O: OffsetSizeTrait, T: ArrayBuilder + Default,
§fn default() -> GenericListBuilder<O, T>
fn default() -> GenericListBuilder<O, T>
§impl<O, B, V, E> Extend<Option<V>> for GenericListBuilder<O, B>where
O: OffsetSizeTrait,
B: ArrayBuilder + Extend<E>,
V: IntoIterator<Item = E>,
impl<O, B, V, E> Extend<Option<V>> for GenericListBuilder<O, B>where O: OffsetSizeTrait, B: ArrayBuilder + Extend<E>, V: IntoIterator<Item = E>,
§fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = Option<V>>,
fn extend<T>(&mut self, iter: T)where T: IntoIterator<Item = Option<V>>,
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)Auto Trait Implementations§
impl<OffsetSize, T> RefUnwindSafe for GenericListBuilder<OffsetSize, T>where OffsetSize: RefUnwindSafe, T: RefUnwindSafe,
impl<OffsetSize, T> Send for GenericListBuilder<OffsetSize, T>
impl<OffsetSize, T> Sync for GenericListBuilder<OffsetSize, T>where T: Sync,
impl<OffsetSize, T> Unpin for GenericListBuilder<OffsetSize, T>where OffsetSize: Unpin, T: Unpin,
impl<OffsetSize, T> UnwindSafe for GenericListBuilder<OffsetSize, T>where OffsetSize: UnwindSafe, T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request