pub struct NullBufferBuilder { /* private fields */ }
Expand description

Builder for creating the null bit buffer. This builder only materializes the buffer when we append false. If you only append trues to the builder, what you get will be None when calling finish. This optimization is very important for the performance.

Implementations§

source§

impl NullBufferBuilder

source

pub fn new(capacity: usize) -> Self

Creates a new empty builder. capacity is the number of bits in the null buffer.

source

pub fn new_with_len(len: usize) -> Self

Creates a new builder with given length.

source

pub fn new_from_buffer(buffer: MutableBuffer, len: usize) -> Self

Creates a new builder from a MutableBuffer.

source

pub fn append_n_non_nulls(&mut self, n: usize)

Appends n trues into the builder to indicate that these n items are not nulls.

source

pub fn append_non_null(&mut self)

Appends a true into the builder to indicate that this item is not null.

source

pub fn append_n_nulls(&mut self, n: usize)

Appends n falses into the builder to indicate that these n items are nulls.

source

pub fn append_null(&mut self)

Appends a false into the builder to indicate that this item is null.

source

pub fn append(&mut self, not_null: bool)

Appends a boolean value into the builder.

source

pub fn append_slice(&mut self, slice: &[bool])

Appends a boolean slice into the builder to indicate the validations of these items.

source

pub fn finish(&mut self) -> Option<NullBuffer>

Builds the null buffer and resets the builder. Returns None if the builder only contains trues.

source

pub fn finish_cloned(&self) -> Option<NullBuffer>

Builds the NullBuffer without resetting the builder.

source

pub fn as_slice(&self) -> Option<&[u8]>

Returns the inner bitmap builder as slice

source

pub fn as_slice_mut(&mut self) -> Option<&mut [u8]>

source§

impl NullBufferBuilder

source

pub fn len(&self) -> usize

source

pub fn is_empty(&self) -> bool

Trait Implementations§

source§

impl Debug for NullBufferBuilder

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,