Struct bitm::RankSimple
source · pub struct RankSimple<BV = Box<[u64]>> {
pub content: BV,
pub ranks: Box<[u32]>,
}
Expand description
The structure that holds array of bits content
and ranks
structure that takes no more than 6.25% extra space.
It can returns the number of ones in first index
bits of the content
(see rank
method) in O(1) time.
Only content
with less than 232 bit ones is supported.
Any type that implements the Deref
trait with Target = [u64]
can be used as a bit vector.
Usually RankSelect101111
should be preferred to ArrayWithRankSimple
.
Fields§
§content: BV
§ranks: Box<[u32]>
Implementations§
Trait Implementations§
source§impl<BV: Clone> Clone for RankSimple<BV>
impl<BV: Clone> Clone for RankSimple<BV>
source§fn clone(&self) -> RankSimple<BV>
fn clone(&self) -> RankSimple<BV>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<BV: GetSize> GetSize for RankSimple<BV>
impl<BV: GetSize> GetSize for RankSimple<BV>
source§fn size_bytes_dyn(&self) -> usize
fn size_bytes_dyn(&self) -> usize
Returns approximate number of bytes occupied by dynamic (heap) part of
self
.
Same as self.size_bytes() - std::mem::size_of_val(self)
.source§const USES_DYN_MEM: bool = true
const USES_DYN_MEM: bool = true
true
if and only if the variables of this type can use dynamic (heap) memory.source§fn size_bytes_content_dyn(&self) -> usize
fn size_bytes_content_dyn(&self) -> usize
Returns approximate number of bytes occupied by dynamic (heap) part of
self
content.
It usually equals to size_bytes_dyn()
.
However, sometimes it is smaller by the amount of memory reserved but not yet used
(e.g., size_bytes_content_dyn()
only takes into account the length of the vector and not its capacity).source§fn size_bytes(&self) -> usize
fn size_bytes(&self) -> usize
Returns approximate, total (including heap memory) number of bytes occupied by
self
.source§impl<BV: Deref<Target = [u64]>> Rank for RankSimple<BV>
impl<BV: Deref<Target = [u64]>> Rank for RankSimple<BV>
source§fn rank(&self, index: usize) -> usize
fn rank(&self, index: usize) -> usize
Returns the number of ones in first
index
bits or panics if index
is out of bounds.source§unsafe fn rank_unchecked(&self, index: usize) -> usize
unsafe fn rank_unchecked(&self, index: usize) -> usize
Returns the number of ones in first
index
bits.
The result is undefined if index
is out of bounds.source§fn rank0(&self, index: usize) -> usize
fn rank0(&self, index: usize) -> usize
Returns the number of zeros in first
index
bits or panics if index
is out of bounds.source§unsafe fn rank0_unchecked(&self, index: usize) -> usize
unsafe fn rank0_unchecked(&self, index: usize) -> usize
Returns the number of ones in first
index
bits.
The result is undefined if index
is out of bounds.Auto Trait Implementations§
impl<BV> RefUnwindSafe for RankSimple<BV>where
BV: RefUnwindSafe,
impl<BV> Send for RankSimple<BV>where
BV: Send,
impl<BV> Sync for RankSimple<BV>where
BV: Sync,
impl<BV> Unpin for RankSimple<BV>where
BV: Unpin,
impl<BV> UnwindSafe for RankSimple<BV>where
BV: 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