Struct bitvec_simd::BitVecSimd
source · [−]#[repr(C)]pub struct BitVecSimd<A, const L: usize> where
A: Array + Index<usize>,
A::Item: BitBlock<L>, { /* private fields */ }Expand description
Representation of a BitVec
see the module’s document for examples and details.
Implementations
sourceimpl<A, const L: usize> BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcepub fn zeros(nbits: usize) -> Self
pub fn zeros(nbits: usize) -> Self
Create an empty bitvec with nbits initial elements.
Example:
use bitvec_simd::BitVec;
let bitvec = BitVec::zeros(10);
assert_eq!(bitvec.len(), 10);sourcepub fn ones(nbits: usize) -> Self
pub fn ones(nbits: usize) -> Self
Create a bitvec containing all 0 .. nbits elements. Example:
use bitvec_simd::BitVec;
let bitvec = BitVec::ones(10);
assert_eq!(bitvec.len(), 10);sourcepub fn from_bool_iterator<I: Iterator<Item = bool>>(i: I) -> Self
pub fn from_bool_iterator<I: Iterator<Item = bool>>(i: I) -> Self
Create a bitvec from an Iterator of bool.
Example:
use bitvec_simd::BitVec;
let bitvec = BitVec::from_bool_iterator((0..10).map(|x| x % 2 == 0));
assert_eq!(bitvec.len(), 10);
assert_eq!(<BitVec as Into<Vec<bool>>>::into(bitvec), vec![true, false, true, false, true, false, true, false, true, false]);
let bitvec = BitVec::from_bool_iterator((0..1000).map(|x| x < 50));
assert_eq!(bitvec.len(), 1000);
assert_eq!(bitvec.get(49), Some(true));
assert_eq!(bitvec.get(50), Some(false));
assert_eq!(bitvec.get(999), Some(false));
assert_eq!(<BitVec as Into<Vec<bool>>>::into(bitvec), (0..1000).map(|x| x<50).collect::<Vec<bool>>());sourcepub fn from_slice(slice: &[usize]) -> Self
pub fn from_slice(slice: &[usize]) -> Self
Initialize from a set of integers.
Example:
use bitvec_simd::BitVec;
let bitvec = BitVec::from_slice(&[0,5,9]);
assert_eq!(<BitVec as Into<Vec<bool>>>::into(bitvec), vec![true, false, false, false, false, true, false, false, false, true]);sourcepub fn from_slice_copy(
slice: &[<A::Item as BitBlock<L>>::Element],
nbits: usize
) -> Self
pub fn from_slice_copy(
slice: &[<A::Item as BitBlock<L>>::Element],
nbits: usize
) -> Self
Initialize from a E slice. Data will be copied from the slice.
Example:
use bitvec_simd::BitVec;
let bitvec = BitVec::from_slice_copy(&[3], 3);
assert_eq!(bitvec.get(0), Some(true));
assert_eq!(bitvec.get(1), Some(true));
assert_eq!(bitvec.get(2), Some(false));
assert_eq!(bitvec.get(3), None);sourcepub unsafe fn from_raw_copy(
ptr: *const <A::Item as BitBlock<L>>::Element,
buffer_len: usize,
nbits: usize
) -> Self
pub unsafe fn from_raw_copy(
ptr: *const <A::Item as BitBlock<L>>::Element,
buffer_len: usize,
nbits: usize
) -> Self
Initialize from a raw buffer. Data will be copied from the buffer which [ptr] points to. The buffer can be released after initialization.
Safety
If any of the following conditions are violated, the result is Undefined Behavior:
-
ptr should be valid and point to an [allocated object] with length >= buffer_len
-
ptr.offset(buffer_len - 1), in bytes, cannot overflow an
isize. -
The offset being in bounds cannot rely on “wrapping around” the address space. That is, the infinite-precision sum, in bytes must fit in a usize.
sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Length of this bitvec.
To get the number of elements, use count_ones
Example:
use bitvec_simd::BitVec;
let bitvec = BitVec::ones(3);
assert_eq!(bitvec.len(), 3);sourcepub fn storage_len(&self) -> usize
pub fn storage_len(&self) -> usize
Length of underlining storage.
sourcepub fn storage_capacity(&self) -> usize
pub fn storage_capacity(&self) -> usize
Capacity of underlining storage.
sourcepub fn as_mut_ptr(&mut self) -> *mut A::Item
pub fn as_mut_ptr(&mut self) -> *mut A::Item
Returns a raw mutable pointer to the vector’s buffer.
sourcepub fn spilled(&self) -> bool
pub fn spilled(&self) -> bool
Returns true if the data has spilled into a separate heap-allocated buffer.
sourcepub fn resize(&mut self, nbits: usize, value: bool)
pub fn resize(&mut self, nbits: usize, value: bool)
Resize this bitvec to nbits in-place.
If new length is greater than current length, value will be filled.
Example:
use bitvec_simd::BitVec;
let mut bitvec = BitVec::ones(3);
bitvec.resize(5, false);
assert_eq!(bitvec.len(), 5);
bitvec.resize(2, false);
assert_eq!(bitvec.len(), 2);sourcepub fn shrink_to(&mut self, nbits: usize)
pub fn shrink_to(&mut self, nbits: usize)
Shink this bitvec to new length in-place. Panics if new length is greater than original.
Example:
use bitvec_simd::BitVec;
let mut bitvec = BitVec::ones(3);
bitvec.shrink_to(2);
assert_eq!(bitvec.len(), 2);sourcepub fn set(&mut self, index: usize, flag: bool)
pub fn set(&mut self, index: usize, flag: bool)
Remove or add index to the set.
If index > self.len, the bitvec will be expanded to index.
Example:
use bitvec_simd::BitVec;
let mut bitvec = BitVec::zeros(10);
assert_eq!(bitvec.len(), 10);
bitvec.set(15, true);
// now 15 has been added to the set, its total len is 16.
assert_eq!(bitvec.len(), 16);
assert_eq!(bitvec.get(15), Some(true));
assert_eq!(bitvec.get(14), Some(false));sourcepub unsafe fn set_raw_copy(
&mut self,
ptr: *mut A::Item,
buffer_len: usize,
nbits: usize
)
pub unsafe fn set_raw_copy(
&mut self,
ptr: *mut A::Item,
buffer_len: usize,
nbits: usize
)
Copy content which ptr points to bitvec storage Highly unsafe
sourcepub unsafe fn set_raw(
&mut self,
ptr: *mut A::Item,
buffer_len: usize,
capacity: usize,
nbits: usize
)
pub unsafe fn set_raw(
&mut self,
ptr: *mut A::Item,
buffer_len: usize,
capacity: usize,
nbits: usize
)
Directly set storage to ptr Highly unsafe
sourcepub fn set_all_false(&mut self)
pub fn set_all_false(&mut self)
Set all items in bitvec to false
sourcepub fn set_all_true(&mut self)
pub fn set_all_true(&mut self)
Set all items in bitvec to true
sourcepub fn get(&self, index: usize) -> Option<bool>
pub fn get(&self, index: usize) -> Option<bool>
Check if index exists in current set.
- If exists, return
Some(true) - If index < current.len and element doesn’t exist, return
Some(false). - If index >= current.len, return
None.
Examlpe:
use bitvec_simd::BitVec;
let bitvec : BitVec = (0 .. 15).map(|x| x%3 == 0).into();
assert_eq!(bitvec.get(3), Some(true));
assert_eq!(bitvec.get(5), Some(false));
assert_eq!(bitvec.get(14), Some(false));
assert_eq!(bitvec.get(15), None);sourcepub fn get_unchecked(&self, index: usize) -> bool
pub fn get_unchecked(&self, index: usize) -> bool
Directly return a bool instead of an Option
- If exists, return
true. - If doesn’t exist, return false.
- If index >= current.len, panic.
Examlpe:
use bitvec_simd::BitVec;
let bitvec : BitVec = (0 .. 15).map(|x| x%3 == 0).into();
assert_eq!(bitvec.get_unchecked(3), true);
assert_eq!(bitvec.get_unchecked(5), false);
assert_eq!(bitvec.get_unchecked(14), false);pub fn and(self, other: Self) -> Self
pub fn and_cloned(&self, other: &Self) -> Self
pub fn and_inplace(&mut self, other: &Self)
pub fn or(self, other: Self) -> Self
pub fn or_cloned(&self, other: &Self) -> Self
pub fn or_inplace(&mut self, other: &Self)
pub fn xor(self, other: Self) -> Self
pub fn xor_cloned(&self, other: &Self) -> Self
pub fn xor_inplace(&mut self, other: &Self)
sourcepub fn difference(self, other: Self) -> Self
pub fn difference(self, other: Self) -> Self
difference operation
A.difference(B) calculates A\B, e.g.
A = [1,2,3], B = [2,4,5]
A\B = [1,3]also notice that
A.difference(B) | B.difference(A) == A ^ BExample:
use bitvec_simd::BitVec;
let bitvec: BitVec = (0 .. 5_000).map(|x| x % 2 == 0).into();
let bitvec2 : BitVec = (0 .. 5_000).map(|x| x % 3 == 0).into();
assert_eq!(bitvec.difference_cloned(&bitvec2) | bitvec2.difference_cloned(&bitvec), bitvec.xor_cloned(&bitvec2));
let bitvec3 : BitVec = (0 .. 5_000).map(|x| x % 2 == 0 && x % 3 != 0).into();
assert_eq!(bitvec.difference(bitvec2), bitvec3);pub fn difference_cloned(&self, other: &Self) -> Self
sourcepub fn inverse(&self) -> Self
pub fn inverse(&self) -> Self
inverse every bits in the vector.
If your bitvec have len 1_000 and contains [1,5],
after inverse it will contains 0, 2..=4, 6..=999
sourcepub fn count_ones(&self) -> usize
pub fn count_ones(&self) -> usize
Count the number of elements existing in this bitvec.
Example:
use bitvec_simd::BitVec;
let bitvec: BitVec = (0..10_000).map(|x| x%2==0).into();
assert_eq!(bitvec.count_ones(), 5000);
let bitvec: BitVec = (0..30_000).map(|x| x%3==0).into();
assert_eq!(bitvec.count_ones(), 10_000);sourcepub fn count_ones_before(&self, index: usize) -> usize
pub fn count_ones_before(&self, index: usize) -> usize
Count the number of elements existing in this bitvec, before the specified index. Panics if index is invalid.
Example:
use bitvec_simd::BitVec;
let bitvec: BitVec = (0..10_000).map(|x| x%2==0).into();
assert_eq!(bitvec.count_ones_before(5000), 2500);
let bitvec: BitVec = (0..30_000).map(|x| x%3==0).into();
assert_eq!(bitvec.count_ones_before(10000), 3334);
let bitvec: BitVec = (0..1).map(|x| true).into();
assert_eq!(bitvec.count_ones_before(0), 0);
assert_eq!(bitvec.count_ones_before(1), 1);
let bitvec: BitVec = (0..10).map(|x| true).into();
for i in 0..10 {
assert_eq!(bitvec.count_ones_before(i), i);
}
let bitvec: BitVec = (0..10).map(|x| x==0).into();
assert_eq!(bitvec.count_ones_before(0), 0);
for i in 1..10 {
assert_eq!(bitvec.count_ones_before(i), 1);
}
let bitvec: BitVec = (0..31).map(|x| true).into();
assert_eq!(bitvec.count_ones_before(0), 0);
for i in 1..31 {
assert_eq!(bitvec.count_ones_before(i), i);
}
let bitvec: BitVec = (0..32).map(|x| true).into();
assert_eq!(bitvec.count_ones_before(0), 0);
for i in 1..32 {
assert_eq!(bitvec.count_ones_before(i), i);
}sourcepub fn leading_zeros(&self) -> usize
pub fn leading_zeros(&self) -> usize
Count the number of leading zeros in this bitvec.
Example:
use bitvec_simd::BitVec;
let mut bitvec = BitVec::zeros(10);
bitvec.set(3, true);
assert_eq!(bitvec.leading_zeros(), 6);sourcepub fn into_bools(self) -> Vec<bool>
pub fn into_bools(self) -> Vec<bool>
Consume self and generate a Vec<bool> with length == self.len().
Example:
use bitvec_simd::BitVec;
let bitvec = BitVec::from_bool_iterator((0..10).map(|i| i % 3 == 0));
let bool_vec = bitvec.into_bools();
assert_eq!(bool_vec, vec![true, false, false, true, false, false, true, false, false, true])sourcepub fn into_usizes(self) -> Vec<usize>
pub fn into_usizes(self) -> Vec<usize>
Consume self and geterate a Vec<usize> which only contains the number exists in this set.
Example:
use bitvec_simd::BitVec;
let bitvec = BitVec::from_bool_iterator((0..10).map(|i| i%3 == 0));
let usize_vec = bitvec.into_usizes();
assert_eq!(usize_vec, vec![0,3,6,9]);Trait Implementations
sourceimpl<A, const L: usize> BitAnd<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAnd<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitAnd<&'_ BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAnd<&'_ BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitAnd<&'_ BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAnd<&'_ BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the & operator.
sourcefn bitand(self, rhs: &BitVecSimd<A, L>) -> Self::Output
fn bitand(self, rhs: &BitVecSimd<A, L>) -> Self::Output
Performs the & operation. Read more
sourceimpl<A, const L: usize> BitAnd<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAnd<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitAnd<&'_ mut BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAnd<&'_ mut BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the & operator.
sourcefn bitand(self, rhs: &mut BitVecSimd<A, L>) -> Self::Output
fn bitand(self, rhs: &mut BitVecSimd<A, L>) -> Self::Output
Performs the & operation. Read more
sourceimpl<A, const L: usize> BitAnd<&'_ mut BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAnd<&'_ mut BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitAnd<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAnd<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitAnd<BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAnd<BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the & operator.
sourcefn bitand(self, rhs: BitVecSimd<A, L>) -> Self::Output
fn bitand(self, rhs: BitVecSimd<A, L>) -> Self::Output
Performs the & operation. Read more
sourceimpl<A, const L: usize> BitAnd<BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAnd<BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the & operator.
sourcefn bitand(self, rhs: BitVecSimd<A, L>) -> Self::Output
fn bitand(self, rhs: BitVecSimd<A, L>) -> Self::Output
Performs the & operation. Read more
sourceimpl<A, const L: usize> BitAndAssign<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAndAssign<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn bitand_assign(&mut self, rhs: &BitVecSimd<A, L>)
fn bitand_assign(&mut self, rhs: &BitVecSimd<A, L>)
Performs the &= operation. Read more
sourceimpl<A, const L: usize> BitAndAssign<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAndAssign<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn bitand_assign(&mut self, rhs: &mut BitVecSimd<A, L>)
fn bitand_assign(&mut self, rhs: &mut BitVecSimd<A, L>)
Performs the &= operation. Read more
sourceimpl<A, const L: usize> BitAndAssign<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitAndAssign<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
Performs the &= operation. Read more
sourceimpl<A, const L: usize> BitOr<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOr<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitOr<&'_ BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOr<&'_ BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitOr<&'_ BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOr<&'_ BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the | operator.
sourcefn bitor(self, rhs: &BitVecSimd<A, L>) -> Self::Output
fn bitor(self, rhs: &BitVecSimd<A, L>) -> Self::Output
Performs the | operation. Read more
sourceimpl<A, const L: usize> BitOr<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOr<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitOr<&'_ mut BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOr<&'_ mut BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the | operator.
sourcefn bitor(self, rhs: &mut BitVecSimd<A, L>) -> Self::Output
fn bitor(self, rhs: &mut BitVecSimd<A, L>) -> Self::Output
Performs the | operation. Read more
sourceimpl<A, const L: usize> BitOr<&'_ mut BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOr<&'_ mut BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitOr<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOr<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitOr<BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOr<BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the | operator.
sourcefn bitor(self, rhs: BitVecSimd<A, L>) -> Self::Output
fn bitor(self, rhs: BitVecSimd<A, L>) -> Self::Output
Performs the | operation. Read more
sourceimpl<A, const L: usize> BitOr<BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOr<BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the | operator.
sourcefn bitor(self, rhs: BitVecSimd<A, L>) -> Self::Output
fn bitor(self, rhs: BitVecSimd<A, L>) -> Self::Output
Performs the | operation. Read more
sourceimpl<A, const L: usize> BitOrAssign<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOrAssign<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn bitor_assign(&mut self, rhs: &BitVecSimd<A, L>)
fn bitor_assign(&mut self, rhs: &BitVecSimd<A, L>)
Performs the |= operation. Read more
sourceimpl<A, const L: usize> BitOrAssign<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOrAssign<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn bitor_assign(&mut self, rhs: &mut BitVecSimd<A, L>)
fn bitor_assign(&mut self, rhs: &mut BitVecSimd<A, L>)
Performs the |= operation. Read more
sourceimpl<A, const L: usize> BitOrAssign<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitOrAssign<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
Performs the |= operation. Read more
sourceimpl<A, const L: usize> BitXor<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXor<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitXor<&'_ BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXor<&'_ BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitXor<&'_ BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXor<&'_ BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the ^ operator.
sourcefn bitxor(self, rhs: &BitVecSimd<A, L>) -> Self::Output
fn bitxor(self, rhs: &BitVecSimd<A, L>) -> Self::Output
Performs the ^ operation. Read more
sourceimpl<A, const L: usize> BitXor<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXor<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitXor<&'_ mut BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXor<&'_ mut BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the ^ operator.
sourcefn bitxor(self, rhs: &mut BitVecSimd<A, L>) -> Self::Output
fn bitxor(self, rhs: &mut BitVecSimd<A, L>) -> Self::Output
Performs the ^ operation. Read more
sourceimpl<A, const L: usize> BitXor<&'_ mut BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXor<&'_ mut BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitXor<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXor<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> BitXor<BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXor<BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the ^ operator.
sourcefn bitxor(self, rhs: BitVecSimd<A, L>) -> Self::Output
fn bitxor(self, rhs: BitVecSimd<A, L>) -> Self::Output
Performs the ^ operation. Read more
sourceimpl<A, const L: usize> BitXor<BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXor<BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
type Output = BitVecSimd<A, L>
type Output = BitVecSimd<A, L>
The resulting type after applying the ^ operator.
sourcefn bitxor(self, rhs: BitVecSimd<A, L>) -> Self::Output
fn bitxor(self, rhs: BitVecSimd<A, L>) -> Self::Output
Performs the ^ operation. Read more
sourceimpl<A, const L: usize> BitXorAssign<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXorAssign<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn bitxor_assign(&mut self, rhs: &BitVecSimd<A, L>)
fn bitxor_assign(&mut self, rhs: &BitVecSimd<A, L>)
Performs the ^= operation. Read more
sourceimpl<A, const L: usize> BitXorAssign<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXorAssign<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn bitxor_assign(&mut self, rhs: &mut BitVecSimd<A, L>)
fn bitxor_assign(&mut self, rhs: &mut BitVecSimd<A, L>)
Performs the ^= operation. Read more
sourceimpl<A, const L: usize> BitXorAssign<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> BitXorAssign<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
Performs the ^= operation. Read more
sourceimpl<A: Clone, const L: usize> Clone for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A: Clone, const L: usize> Clone for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn clone(&self) -> BitVecSimd<A, L>
fn clone(&self) -> BitVecSimd<A, L>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl<A: Debug, const L: usize> Debug for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A: Debug, const L: usize> Debug for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> Display for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> Display for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> From<BitVecSimd<A, L>> for Vec<bool> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> From<BitVecSimd<A, L>> for Vec<bool> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn from(v: BitVecSimd<A, L>) -> Self
fn from(v: BitVecSimd<A, L>) -> Self
Performs the conversion.
sourceimpl<A, const L: usize> From<BitVecSimd<A, L>> for Vec<usize> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> From<BitVecSimd<A, L>> for Vec<usize> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourcefn from(v: BitVecSimd<A, L>) -> Self
fn from(v: BitVecSimd<A, L>) -> Self
Performs the conversion.
sourceimpl<A, I: Iterator<Item = bool>, const L: usize> From<I> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, I: Iterator<Item = bool>, const L: usize> From<I> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> Index<usize> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> Index<usize> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> Not for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> Not for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> Not for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> Not for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> Not for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> Not for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> PartialEq<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> PartialEq<&'_ BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> PartialEq<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> PartialEq<&'_ mut BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> PartialEq<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> PartialEq<BitVecSimd<A, L>> for BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> PartialEq<BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> PartialEq<BitVecSimd<A, L>> for &BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
sourceimpl<A, const L: usize> PartialEq<BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
impl<A, const L: usize> PartialEq<BitVecSimd<A, L>> for &mut BitVecSimd<A, L> where
A: Array + Index<usize>,
A::Item: BitBlock<L>,
Auto Trait Implementations
impl<A, const L: usize> RefUnwindSafe for BitVecSimd<A, L> where
A: RefUnwindSafe,
<A as Array>::Item: RefUnwindSafe,
impl<A, const L: usize> Send for BitVecSimd<A, L> where
<A as Array>::Item: Send,
impl<A, const L: usize> Sync for BitVecSimd<A, L> where
A: Sync,
impl<A, const L: usize> Unpin for BitVecSimd<A, L> where
A: Unpin,
impl<A, const L: usize> UnwindSafe for BitVecSimd<A, L> where
A: UnwindSafe,
<A as Array>::Item: RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more