pub struct FlagVec<N: FlagLength, I = usize>(/* private fields */);Expand description
A data structure an indexed collection of N bit bit-flag like objects
Behaves like DefaultVec<u32> but only considers the last N bits
Use StaticFlagVec when N is known at compile time, or DynamicFlagVec if it isn’t
Implementations§
Source§impl<N: FlagLength, I: Into<usize>> FlagVec<N, I>
impl<N: FlagLength, I: Into<usize>> FlagVec<N, I>
Sourcepub fn or_assign(&mut self, x: I, v: u32)
pub fn or_assign(&mut self, x: I, v: u32)
Equivalent to self.set(x, self.get(x) | v)
use default_vec2::StaticFlagVec;
let mut s: StaticFlagVec<4> = StaticFlagVec::default();
s.or_assign(0, 3);
assert_eq!(s.get(0), 3);
s.or_assign(0, 9);
assert_eq!(s.get(0), 11);Sourcepub fn and_assign(&mut self, x: I, v: u32)
pub fn and_assign(&mut self, x: I, v: u32)
Equivalent to self.set(x, self.get(x) & v)
use default_vec2::StaticFlagVec;
let mut s: StaticFlagVec<4> = StaticFlagVec::default();
s.or_assign(0, 11);
s.and_assign(0, 5);
assert_eq!(s.get(0), 1);Sourcepub fn set(&mut self, x: I, v: u32)
pub fn set(&mut self, x: I, v: u32)
Sets the element and index x to the last N bits of v
use default_vec2::StaticFlagVec;
let mut s: StaticFlagVec<4> = StaticFlagVec::default();
s.set(0, 3);
assert_eq!(s.get(0), 3);
s.set(0, 9);
assert_eq!(s.get(0), 9);
s.set(0, 18);
assert_eq!(s.get(0), 2);Sourcepub fn get_reserve(&mut self, x: I) -> u32
pub fn get_reserve(&mut self, x: I) -> u32
Same as get but already reserves space for x
pub fn capacity(&self) -> usize
Sourcepub fn iter(&self) -> impl Iterator<Item = u32> + '_
pub fn iter(&self) -> impl Iterator<Item = u32> + '_
Iterate over the elements of self
use default_vec2::StaticFlagVec;
let mut s: StaticFlagVec<10> = StaticFlagVec::default();
s.set(0, 42);
s.set(2, 999);
s.set(3, 365);
let res: Vec<_> = s.iter().collect();
assert_eq!(&res[..4], [42, 0, 999, 365])Trait Implementations§
Source§impl<N: FlagLength, I> Clone for FlagVec<N, I>
impl<N: FlagLength, I> Clone for FlagVec<N, I>
Source§impl<N: FlagLength, I> PartialEq for FlagVec<N, I>
impl<N: FlagLength, I> PartialEq for FlagVec<N, I>
impl<N: FlagLength, I> Eq for FlagVec<N, I>
Auto Trait Implementations§
impl<N, I> Freeze for FlagVec<N, I>where
N: Freeze,
impl<N, I> RefUnwindSafe for FlagVec<N, I>where
N: RefUnwindSafe,
I: RefUnwindSafe,
impl<N, I> Send for FlagVec<N, I>
impl<N, I> Sync for FlagVec<N, I>
impl<N, I> Unpin for FlagVec<N, I>
impl<N, I> UnwindSafe for FlagVec<N, I>where
N: UnwindSafe,
I: 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
Mutably borrows from an owned value. Read more