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

A slice-able Buffer containing bit-packed booleans

Implementations§

source§

impl BooleanBuffer

source

pub fn new(buffer: Buffer, offset: usize, len: usize) -> Self

Create a new BooleanBuffer from a Buffer, an offset and length in bits

Panics

This method will panic if buffer is not large enough

source

pub fn new_set(length: usize) -> Self

Create a new BooleanBuffer of length where all values are true

source

pub fn new_unset(length: usize) -> Self

Create a new BooleanBuffer of length where all values are false

source

pub fn collect_bool<F: FnMut(usize) -> bool>(len: usize, f: F) -> Self

Invokes f with indexes 0..len collecting the boolean results into a new BooleanBuffer

source

pub fn count_set_bits(&self) -> usize

Returns the number of set bits in this buffer

source

pub fn bit_chunks(&self) -> BitChunks<'_>

Returns a BitChunks instance which can be used to iterate over this buffer’s bits in u64 chunks

source

pub fn is_set(&self, i: usize) -> bool

👎Deprecated: use BooleanBuffer::value

Returns true if the bit at index i is set

Panics

Panics if i >= self.len()

source

pub fn offset(&self) -> usize

Returns the offset of this BooleanBuffer in bits

source

pub fn len(&self) -> usize

Returns the length of this BooleanBuffer in bits

source

pub fn is_empty(&self) -> bool

Returns true if this BooleanBuffer is empty

source

pub fn value(&self, idx: usize) -> bool

Returns the boolean value at index i.

Panics

Panics if i >= self.len()

source

pub unsafe fn value_unchecked(&self, i: usize) -> bool

Returns the boolean value at index i.

Safety

This doesn’t check bounds, the caller must ensure that index < self.len()

source

pub fn values(&self) -> &[u8]

Returns the packed values of this BooleanBuffer not including any offset

source

pub fn slice(&self, offset: usize, len: usize) -> Self

Slices this BooleanBuffer by the provided offset and length

source

pub fn sliced(&self) -> Buffer

Returns a Buffer containing the sliced contents of this BooleanBuffer

Equivalent to self.buffer.bit_slice(self.offset, self.len)

source

pub fn ptr_eq(&self, other: &Self) -> bool

Returns true if this BooleanBuffer is equal to other, using pointer comparisons to determine buffer equality. This is cheaper than PartialEq::eq but may return false when the arrays are logically equal

source

pub fn inner(&self) -> &Buffer

Returns the inner Buffer

source

pub fn into_inner(self) -> Buffer

Returns the inner Buffer, consuming self

source

pub fn iter(&self) -> BitIterator<'_>

Returns an iterator over the bits in this BooleanBuffer

source

pub fn set_indices(&self) -> BitIndexIterator<'_>

Returns an iterator over the set bit positions in this BooleanBuffer

source

pub fn set_slices(&self) -> BitSliceIterator<'_>

Returns a BitSliceIterator yielding contiguous ranges of set bits

Trait Implementations§

source§

impl BitAnd<&BooleanBuffer> for &BooleanBuffer

§

type Output = BooleanBuffer

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: &BooleanBuffer) -> Self::Output

Performs the & operation. Read more
source§

impl BitOr<&BooleanBuffer> for &BooleanBuffer

§

type Output = BooleanBuffer

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: &BooleanBuffer) -> Self::Output

Performs the | operation. Read more
source§

impl BitXor<&BooleanBuffer> for &BooleanBuffer

§

type Output = BooleanBuffer

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: &BooleanBuffer) -> Self::Output

Performs the ^ operation. Read more
source§

impl Clone for BooleanBuffer

source§

fn clone(&self) -> BooleanBuffer

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BooleanBuffer

source§

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

Formats the value using the given formatter. Read more
source§

impl From<&[bool]> for BooleanBuffer

source§

fn from(value: &[bool]) -> Self

Converts to this type from the input type.
source§

impl From<BooleanBuffer> for NullBuffer

source§

fn from(value: BooleanBuffer) -> Self

Converts to this type from the input type.
source§

impl From<BooleanBufferBuilder> for BooleanBuffer

source§

fn from(builder: BooleanBufferBuilder) -> Self

Converts to this type from the input type.
source§

impl From<Vec<bool>> for BooleanBuffer

source§

fn from(value: Vec<bool>) -> Self

Converts to this type from the input type.
source§

impl FromIterator<bool> for BooleanBuffer

source§

fn from_iter<T: IntoIterator<Item = bool>>(iter: T) -> Self

Creates a value from an iterator. Read more
source§

impl<'a> IntoIterator for &'a BooleanBuffer

§

type Item = bool

The type of the elements being iterated over.
§

type IntoIter = BitIterator<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl Not for &BooleanBuffer

§

type Output = BooleanBuffer

The resulting type after applying the ! operator.
source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
source§

impl PartialEq for BooleanBuffer

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for BooleanBuffer

source§

impl StructuralEq for BooleanBuffer

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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,