Struct sucds::bit_vectors::darray::inner::DArrayIndex
source · pub struct DArrayIndex { /* private fields */ }
Expand description
The index implementation of DArray
separated from the bit vector.
Implementations§
source§impl DArrayIndex
impl DArrayIndex
sourcepub fn new(bv: &BitVector, over_one: bool) -> Self
pub fn new(bv: &BitVector, over_one: bool) -> Self
Creates a new DArrayIndex
from input bit vector bv
.
Arguments
bv
: Input bit vector.over_one
: Flag to build the index for ones.
sourcepub unsafe fn select(&self, bv: &BitVector, k: usize) -> Option<usize>
pub unsafe fn select(&self, bv: &BitVector, k: usize) -> Option<usize>
Searches the k
-th iteger.
Arguments
bv
: Bit vector used in construction.k
: Select query.
Complexity
- Constant
Safety
bv
must be the one used in construction.
Examples
use sucds::bit_vectors::{BitVector, darray::inner::DArrayIndex};
let bv = BitVector::from_bits([true, false, false, true]);
let da = DArrayIndex::new(&bv, true);
unsafe {
assert_eq!(da.select(&bv, 0), Some(0));
assert_eq!(da.select(&bv, 1), Some(3));
assert_eq!(da.select(&bv, 2), None);
}
You can perform selections over unset bits by specifying
Self::new(&bv, over_one=false)
.
use sucds::bit_vectors::{BitVector, darray::inner::DArrayIndex};
let bv = BitVector::from_bits([true, false, false, true]);
let da = DArrayIndex::new(&bv, false);
unsafe {
assert_eq!(da.select(&bv, 0), Some(1));
assert_eq!(da.select(&bv, 1), Some(2));
assert_eq!(da.select(&bv, 2), None);
}
Trait Implementations§
source§impl Clone for DArrayIndex
impl Clone for DArrayIndex
source§fn clone(&self) -> DArrayIndex
fn clone(&self) -> DArrayIndex
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 Debug for DArrayIndex
impl Debug for DArrayIndex
source§impl Default for DArrayIndex
impl Default for DArrayIndex
source§fn default() -> DArrayIndex
fn default() -> DArrayIndex
Returns the “default value” for a type. Read more
source§impl PartialEq for DArrayIndex
impl PartialEq for DArrayIndex
source§fn eq(&self, other: &DArrayIndex) -> bool
fn eq(&self, other: &DArrayIndex) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl Serializable for DArrayIndex
impl Serializable for DArrayIndex
source§fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>
fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>
Serializes the data structure into the writer,
returning the number of serialized bytes. Read more
source§fn deserialize_from<R: Read>(reader: R) -> Result<Self>
fn deserialize_from<R: Read>(reader: R) -> Result<Self>
Deserializes the data structure from the reader. Read more
source§fn size_in_bytes(&self) -> usize
fn size_in_bytes(&self) -> usize
Returns the number of bytes to serialize the data structure.
impl Eq for DArrayIndex
impl StructuralEq for DArrayIndex
impl StructuralPartialEq for DArrayIndex
Auto Trait Implementations§
impl RefUnwindSafe for DArrayIndex
impl Send for DArrayIndex
impl Sync for DArrayIndex
impl Unpin for DArrayIndex
impl UnwindSafe for DArrayIndex
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