pub struct BoolVectorMut { /* private fields */ }Expand description
A mutable vector of boolean values.
Internally, this BoolVectorMut is a wrapper around a BitBufferMut and a validity mask.
Implementations§
Source§impl BoolVectorMut
impl BoolVectorMut
Sourcepub fn new(bits: BitBufferMut, validity: MaskMut) -> Self
pub fn new(bits: BitBufferMut, validity: MaskMut) -> Self
Creates a new BoolVectorMut from the given bits and validity mask.
§Panics
Panics if the length of the validity mask does not match the length of the bits.
Sourcepub fn try_new(bits: BitBufferMut, validity: MaskMut) -> VortexResult<Self>
pub fn try_new(bits: BitBufferMut, validity: MaskMut) -> VortexResult<Self>
Tries to create a new BoolVectorMut from the given bits and validity mask.
§Errors
Returns an error if the length of the validity mask does not match the length of the bits.
Sourcepub unsafe fn new_unchecked(bits: BitBufferMut, validity: MaskMut) -> Self
pub unsafe fn new_unchecked(bits: BitBufferMut, validity: MaskMut) -> Self
Creates a new BoolVectorMut from the given bits and validity mask without validation.
§Safety
The caller must ensure that the validity mask has the same length as the bits.
Ideally, they are taken from into_parts, mutated in a way that doesn’t re-allocate, and
then passed back to this function.
Sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Creates a new mutable boolean vector with the given capacity.
Sourcepub fn into_parts(self) -> (BitBufferMut, MaskMut)
pub fn into_parts(self) -> (BitBufferMut, MaskMut)
Decomposes the boolean vector into its constituent parts (bit buffer and validity).
Sourcepub fn append_values(&mut self, value: bool, n: usize)
pub fn append_values(&mut self, value: bool, n: usize)
Append n values to the vector.
Sourcepub fn bits(&self) -> &BitBufferMut
pub fn bits(&self) -> &BitBufferMut
Returns a readonly handle to the bits backing the vector.
Sourcepub unsafe fn bits_mut(&mut self) -> &mut BitBufferMut
pub unsafe fn bits_mut(&mut self) -> &mut BitBufferMut
Returns a mutable handle to the bits backing the vector.
§Safety
Caller must ensure that bits and validity always have same length.
Sourcepub unsafe fn validity_mut(&mut self) -> &mut MaskMut
pub unsafe fn validity_mut(&mut self) -> &mut MaskMut
Get a mutable handle to the validity mask of the vector.
§Safety
Caller must ensure that length of the validity always matches length of the bits.
Trait Implementations§
Source§impl Clone for BoolVectorMut
impl Clone for BoolVectorMut
Source§fn clone(&self) -> BoolVectorMut
fn clone(&self) -> BoolVectorMut
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BoolVectorMut
impl Debug for BoolVectorMut
Source§impl From<BoolVectorMut> for VectorMut
impl From<BoolVectorMut> for VectorMut
Source§fn from(v: BoolVectorMut) -> Self
fn from(v: BoolVectorMut) -> Self
Source§impl FromIterator<Option<bool>> for BoolVectorMut
impl FromIterator<Option<bool>> for BoolVectorMut
Source§fn from_iter<I>(iter: I) -> Self
fn from_iter<I>(iter: I) -> Self
Creates a new BoolVectorMut from an iterator of Option<bool> values.
None values will be marked as invalid in the validity mask.
§Examples
use vortex_vector::bool::BoolVectorMut;
use vortex_vector::VectorMutOps;
let mut vec = BoolVectorMut::from_iter([Some(true), None, Some(false)]);
assert_eq!(vec.len(), 3);Source§impl FromIterator<bool> for BoolVectorMut
impl FromIterator<bool> for BoolVectorMut
Source§fn from_iter<I>(iter: I) -> Selfwhere
I: IntoIterator<Item = bool>,
fn from_iter<I>(iter: I) -> Selfwhere
I: IntoIterator<Item = bool>,
Creates a new BoolVectorMut from an iterator of bool values.
All values will be treated as non-null.
§Examples
use vortex_vector::bool::BoolVectorMut;
use vortex_vector::VectorMutOps;
let mut vec = BoolVectorMut::from_iter([true, false, false, true]);
assert_eq!(vec.len(), 4);Source§impl IntoIterator for BoolVectorMut
impl IntoIterator for BoolVectorMut
Source§fn into_iter(self) -> Self::IntoIter
fn into_iter(self) -> Self::IntoIter
Converts the mutable vector into an iterator over Option<bool> values.
This method consumes the BoolVectorMut and returns an iterator that yields None for
null values and Some(value) for valid values.
§Examples
use vortex_vector::bool::BoolVectorMut;
let vec = BoolVectorMut::from_iter([Some(true), None, Some(false), Some(true)]);
let collected: Vec<_> = vec.into_iter().collect();
assert_eq!(collected, vec![Some(true), None, Some(false), Some(true)]);Source§impl VectorMutOps for BoolVectorMut
impl VectorMutOps for BoolVectorMut
Source§type Immutable = BoolVector
type Immutable = BoolVector
Source§fn len(&self) -> usize
fn len(&self) -> usize
Source§fn validity(&self) -> &MaskMut
fn validity(&self) -> &MaskMut
true represents a valid element and
false represents a null element. Read moreSource§fn capacity(&self) -> usize
fn capacity(&self) -> usize
Source§fn reserve(&mut self, additional: usize)
fn reserve(&mut self, additional: usize)
additional more elements to be inserted in the given
vector. Read moreSource§fn truncate(&mut self, len: usize)
fn truncate(&mut self, len: usize)
Source§fn extend_from_vector(&mut self, other: &BoolVector)
fn extend_from_vector(&mut self, other: &BoolVector)
Source§fn append_nulls(&mut self, n: usize)
fn append_nulls(&mut self, n: usize)
n null elements to the vector. Read moreSource§fn freeze(self) -> BoolVector
fn freeze(self) -> BoolVector
self into an immutable vector.Source§fn split_off(&mut self, at: usize) -> Self
fn split_off(&mut self, at: usize) -> Self
Auto Trait Implementations§
impl Freeze for BoolVectorMut
impl RefUnwindSafe for BoolVectorMut
impl Send for BoolVectorMut
impl Sync for BoolVectorMut
impl Unpin for BoolVectorMut
impl UnwindSafe for BoolVectorMut
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.