Struct bitvec::slice::Iter[][src]

pub struct Iter<'a, O, T> where
    O: 'a + BitOrder,
    T: 'a + BitStore
{ /* fields omitted */ }

Immutable slice iterator

This struct is created by the iter method on BitSlices.

Original

slice::Iter

Examples

Basic usage:

use bitvec::prelude::*;

// First, we declare a type which has `iter` method to get the `Iter` struct (&BitSlice here):
let data = 129u8;
let bits = BitSlice::<LocalBits, _>::from_element(&data);

// Then, we iterato over it:
for bit in bits.iter() {
  println!("{}", bit);
}

Implementations

impl<'a, O, T> Iter<'a, O, T> where
    O: 'a + BitOrder,
    T: 'a + BitStore
[src]

pub fn as_bitslice(&self) -> &'a BitSlice<O, T>

Notable traits for &'a BitSlice<O, T>

impl<'a, O, T> Read for &'a BitSlice<O, T> where
    O: BitOrder,
    T: BitStore,
    BitSlice<O, T>: BitField
impl<'a, O, T> Write for &'a mut BitSlice<O, T> where
    O: BitOrder,
    T: BitStore,
    BitSlice<O, T::Alias>: BitField
[src]

Views the underlying data as a subslice of the original data.

This has the same lifetime as the original bit slice, and so the iterator can continue to be used while this exists.

Original

Iter::as_slice

API Differences

This is renamed, as its return type is not an element slice &[T] or &[bool] but a bit slice.

Examples

Basic usage:

use bitvec::prelude::*;

// First, we declare a type which has the `iter` method to get the `Iter`
// struct (&BitSlice here):
let data = 129u8;
let bits = BitSlice::<Msb0, _>::from_element(&data);

// Then, we get the iterator:
let mut iter = bits.iter();
// So if we print what `as_bitslice` returns here, we have "[1, 0, 0, 0, 0, 0, 0, 1]":
println!("{:?}", iter.as_bitslice());

// Next, we move to the second element of the slice:
iter.next();
// Now `as_bitslice` returns "[0, 0, 0, 0, 0, 0, 1]":
println!("{:?}", iter.as_bitslice());

Trait Implementations

impl<O, T> AsRef<BitSlice<O, T>> for Iter<'_, O, T> where
    O: BitOrder,
    T: BitStore
[src]

impl<O, T> Clone for Iter<'_, O, T> where
    O: BitOrder,
    T: BitStore
[src]

impl<O, T> Copy for Iter<'_, O, T> where
    O: BitOrder,
    T: BitStore
[src]

impl<'a, O: Debug, T: Debug> Debug for Iter<'a, O, T> where
    O: 'a + BitOrder,
    T: 'a + BitStore,
    T::Mem: Debug,
    T::Mem: Debug
[src]

impl<'a, O, T> DoubleEndedIterator for Iter<'a, O, T> where
    O: 'a + BitOrder,
    T: 'a + BitStore
[src]

impl<O, T> ExactSizeIterator for Iter<'_, O, T> where
    O: BitOrder,
    T: BitStore
[src]

impl<O, T> FusedIterator for Iter<'_, O, T> where
    O: BitOrder,
    T: BitStore
[src]

impl<'a, O, T> Iterator for Iter<'a, O, T> where
    O: 'a + BitOrder,
    T: 'a + BitStore
[src]

type Item = <usize as BitSliceIndex<'a, O, T>>::Immut

The type of the elements being iterated over.

impl<O, T> Send for Iter<'_, O, T> where
    O: BitOrder,
    T: BitStore
[src]

impl<O, T> Sync for Iter<'_, O, T> where
    O: BitOrder,
    T: BitStore
[src]

Auto Trait Implementations

impl<'a, O, T> RefUnwindSafe for Iter<'a, O, T> where
    O: RefUnwindSafe,
    T: RefUnwindSafe,
    <T as BitStore>::Mem: RefUnwindSafe

impl<'a, O, T> Unpin for Iter<'a, O, T>

impl<'a, O, T> UnwindSafe for Iter<'a, O, T> where
    O: RefUnwindSafe,
    T: RefUnwindSafe,
    <T as BitStore>::Mem: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Conv for T[src]

impl<T> Conv for T[src]

impl<T> FmtForward for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

impl<T> Pipe for T where
    T: ?Sized
[src]

impl<T> Pipe for T[src]

impl<T> PipeAsRef for T[src]

impl<T> PipeBorrow for T[src]

impl<T> PipeDeref for T[src]

impl<T> PipeRef for T[src]

impl<T> Tap for T[src]

impl<T> Tap for T[src]

impl<T, U> TapAsRef<U> for T where
    U: ?Sized
[src]

impl<T, U> TapBorrow<U> for T where
    U: ?Sized
[src]

impl<T> TapDeref for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> TryConv for T[src]

impl<T> TryConv for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.