Struct primal_bit::BitVec [] [src]

pub struct BitVec {
    // some fields omitted
}

The bitvector type.

Methods

impl BitVec

fn new() -> BitVec

Creates an empty BitVec.

Examples

use std::collections::BitVec;
let mut bv = BitVec::new();

fn from_u64s(data: Vec<u64>, bits: usize) -> BitVec

fn as_bytes_mut(&mut self) -> &mut [u8]

fn as_bytes(&self) -> &[u8]

fn as_u64s(&self) -> &[u64]

fn count_ones_before(&self, bit: usize) -> usize

Count the number of ones for the bits up to but not including the bitth bit.

fn find_nth_bit(&self, n: usize) -> Option<usize>

Find the index of the nth (0-indexed) set bit.

fn from_elem(nbits: usize, bit: bool) -> BitVec

Creates a BitVec that holds nbits elements, setting each element to bit.

Examples

use std::collections::BitVec;

let mut bv = BitVec::from_elem(10, false);
assert_eq!(bv.len(), 10);
for x in bv.iter() {
    assert_eq!(x, false);
}

fn get(&self, i: usize) -> Option<bool>

Retrieves the value at index i, or None if the index is out of bounds.

Examples

use std::collections::BitVec;

let bv = BitVec::from_bytes(&[0b01100000]);
assert_eq!(bv.get(0), Some(false));
assert_eq!(bv.get(1), Some(true));
assert_eq!(bv.get(100), None);

// Can also use array indexing
assert_eq!(bv[1], true);

fn set(&mut self, i: usize, x: bool)

Sets the value of a bit at an index i.

Panics

Panics if i is out of bounds.

Examples

use std::collections::BitVec;

let mut bv = BitVec::from_elem(5, false);
bv.set(3, true);
assert_eq!(bv[3], true);

unsafe fn set_unchecked(&mut self, i: usize, x: bool)

fn set_all(&mut self)

Sets all bits to 1.

Examples

use std::collections::BitVec;

let before = 0b01100000;
let after  = 0b11111111;

let mut bv = BitVec::from_bytes(&[before]);
bv.set_all();
assert_eq!(bv, BitVec::from_bytes(&[after]));

fn iter(&self) -> Iter

Returns an iterator over the elements of the vector in order.

Examples

use std::collections::BitVec;

let bv = BitVec::from_bytes(&[0b01110100, 0b10010010]);
assert_eq!(bv.iter().filter(|x| *x).count(), 7);

fn len(&self) -> usize

Returns the total number of bits in this vector

fn is_empty(&self) -> bool

Returns true if there are no bits in this vector

fn clear(&mut self)

Clears all bits in this vector.

Trait Implementations

impl Index<usize> for BitVec

type Output = bool

fn index(&self, i: usize) -> &bool

impl Default for BitVec

fn default() -> BitVec

impl Clone for BitVec

fn clone(&self) -> BitVec

fn clone_from(&mut self, source: &BitVec)

impl Debug for BitVec

fn fmt(&self, fmt: &mut Formatter) -> Result

impl Hash for BitVec

fn hash<H: Hasher>(&self, state: &mut H)

1.3.0fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher

impl PartialEq for BitVec

fn eq(&self, other: &BitVec) -> bool

1.0.0fn ne(&self, other: &Rhs) -> bool

impl Eq for BitVec

impl<'a> IntoIterator for &'a BitVec

type Item = bool

type IntoIter = Iter<'a>

fn into_iter(self) -> Iter<'a>