Struct bv::adapter::BitSliceAdapter [−][src]
pub struct BitSliceAdapter<T> { /* fields omitted */ }
An adapter that turns any implementation of Bits
into a slice.
This is likely less efficient than BitSlice
.
Methods
impl<T: Bits> BitSliceAdapter<T>
[src]
impl<T: Bits> BitSliceAdapter<T>
pub fn new(bits: T, start: u64, len: u64) -> Self
[src]
pub fn new(bits: T, start: u64, len: u64) -> Self
Creates a new slice adaptor from the given bit-vector-like.
Takes the index of the start bit, and the length to slice.
Panics
Out of bounds if start + len > bits.bit_len()
.
Trait Implementations
impl<T: Copy> Copy for BitSliceAdapter<T>
[src]
impl<T: Copy> Copy for BitSliceAdapter<T>
impl<T: Clone> Clone for BitSliceAdapter<T>
[src]
impl<T: Clone> Clone for BitSliceAdapter<T>
fn clone(&self) -> BitSliceAdapter<T>
[src]
fn clone(&self) -> BitSliceAdapter<T>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl<T: Debug> Debug for BitSliceAdapter<T>
[src]
impl<T: Debug> Debug for BitSliceAdapter<T>
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<T, U> PartialEq<U> for BitSliceAdapter<T> where
T: Bits,
U: Bits<Block = T::Block>,
[src]
impl<T, U> PartialEq<U> for BitSliceAdapter<T> where
T: Bits,
U: Bits<Block = T::Block>,
fn eq(&self, other: &U) -> bool
[src]
fn eq(&self, other: &U) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
fn ne(&self, other: &Rhs) -> bool
This method tests for !=
.
impl<T: Bits> Bits for BitSliceAdapter<T>
[src]
impl<T: Bits> Bits for BitSliceAdapter<T>
type Block = T::Block
The underlying block type used to store the bits of the vector.
fn bit_len(&self) -> u64
[src]
fn bit_len(&self) -> u64
The length of the slice in bits.
fn get_bit(&self, position: u64) -> bool
[src]
fn get_bit(&self, position: u64) -> bool
Gets the bit at position
Read more
fn get_block(&self, position: usize) -> Self::Block
[src]
fn get_block(&self, position: usize) -> Self::Block
Gets the block at position
, masked as necessary. Read more
fn get_bits(&self, start: u64, count: usize) -> Self::Block
[src]
fn get_bits(&self, start: u64, count: usize) -> Self::Block
Gets count
bits starting at bit index start
, interpreted as a little-endian integer. Read more
fn block_len(&self) -> usize
[src]
fn block_len(&self) -> usize
The length of the slice in blocks.
fn get_raw_block(&self, position: usize) -> Self::Block
[src]
fn get_raw_block(&self, position: usize) -> Self::Block
Gets the block at position
, without masking. Read more
fn to_bit_vec(&self) -> BitVec<Self::Block>
[src]
fn to_bit_vec(&self) -> BitVec<Self::Block>
Copies the bits into a new allocated [BitVec
]. Read more
impl<T: BitsMut> BitsMut for BitSliceAdapter<T>
[src]
impl<T: BitsMut> BitsMut for BitSliceAdapter<T>
fn set_bit(&mut self, position: u64, value: bool)
[src]
fn set_bit(&mut self, position: u64, value: bool)
Sets the bit at position
to value
. Read more
fn set_block(&mut self, position: usize, value: Self::Block)
[src]
fn set_block(&mut self, position: usize, value: Self::Block)
Sets the block at position
to value
. Read more
fn set_bits(&mut self, start: u64, count: usize, value: Self::Block)
[src]
fn set_bits(&mut self, start: u64, count: usize, value: Self::Block)
Sets count
bits starting at bit index start
, interpreted as a little-endian integer. Read more
impl<T: Bits> Index<u64> for BitSliceAdapter<T>
[src]
impl<T: Bits> Index<u64> for BitSliceAdapter<T>
type Output = bool
The returned type after indexing.
fn index(&self, index: u64) -> &bool
[src]
fn index(&self, index: u64) -> &bool
Performs the indexing (container[index]
) operation.
impl<T: Bits> BitSliceable<Range<u64>> for BitSliceAdapter<T>
[src]
impl<T: Bits> BitSliceable<Range<u64>> for BitSliceAdapter<T>
type Slice = Self
The type of the slice produced.
fn bit_slice(self, range: Range<u64>) -> Self::Slice
[src]
fn bit_slice(self, range: Range<u64>) -> Self::Slice
Slices or re-slices the given object. Read more
impl<T: Bits> BitSliceable<RangeTo<u64>> for BitSliceAdapter<T>
[src]
impl<T: Bits> BitSliceable<RangeTo<u64>> for BitSliceAdapter<T>
type Slice = Self
The type of the slice produced.
fn bit_slice(self, range: RangeTo<u64>) -> Self::Slice
[src]
fn bit_slice(self, range: RangeTo<u64>) -> Self::Slice
Slices or re-slices the given object. Read more
impl<T: Bits> BitSliceable<RangeFrom<u64>> for BitSliceAdapter<T>
[src]
impl<T: Bits> BitSliceable<RangeFrom<u64>> for BitSliceAdapter<T>
type Slice = Self
The type of the slice produced.
fn bit_slice(self, range: RangeFrom<u64>) -> Self::Slice
[src]
fn bit_slice(self, range: RangeFrom<u64>) -> Self::Slice
Slices or re-slices the given object. Read more
impl<T: Bits> BitSliceable<RangeFull> for BitSliceAdapter<T>
[src]
impl<T: Bits> BitSliceable<RangeFull> for BitSliceAdapter<T>
type Slice = Self
The type of the slice produced.
fn bit_slice(self, _range: RangeFull) -> Self::Slice
[src]
fn bit_slice(self, _range: RangeFull) -> Self::Slice
Slices or re-slices the given object. Read more
impl<T: Bits> BitSliceable<RangeInclusive<u64>> for BitSliceAdapter<T>
[src]
impl<T: Bits> BitSliceable<RangeInclusive<u64>> for BitSliceAdapter<T>
type Slice = Self
The type of the slice produced.
fn bit_slice(self, range: RangeInclusive<u64>) -> Self::Slice
[src]
fn bit_slice(self, range: RangeInclusive<u64>) -> Self::Slice
Slices or re-slices the given object. Read more
impl<T: Bits> BitSliceable<RangeToInclusive<u64>> for BitSliceAdapter<T>
[src]
impl<T: Bits> BitSliceable<RangeToInclusive<u64>> for BitSliceAdapter<T>
type Slice = Self
The type of the slice produced.
fn bit_slice(self, range: RangeToInclusive<u64>) -> Self::Slice
[src]
fn bit_slice(self, range: RangeToInclusive<u64>) -> Self::Slice
Slices or re-slices the given object. Read more
impl<'a, T: Bits> BitSliceable<Range<u64>> for &'a BitSliceAdapter<T>
[src]
impl<'a, T: Bits> BitSliceable<Range<u64>> for &'a BitSliceAdapter<T>
type Slice = BitSliceAdapter<&'a T>
The type of the slice produced.
fn bit_slice(self, range: Range<u64>) -> Self::Slice
[src]
fn bit_slice(self, range: Range<u64>) -> Self::Slice
Slices or re-slices the given object. Read more
impl<'a, T: Bits> BitSliceable<RangeTo<u64>> for &'a BitSliceAdapter<T>
[src]
impl<'a, T: Bits> BitSliceable<RangeTo<u64>> for &'a BitSliceAdapter<T>
type Slice = BitSliceAdapter<&'a T>
The type of the slice produced.
fn bit_slice(self, range: RangeTo<u64>) -> Self::Slice
[src]
fn bit_slice(self, range: RangeTo<u64>) -> Self::Slice
Slices or re-slices the given object. Read more
impl<'a, T: Bits> BitSliceable<RangeFrom<u64>> for &'a BitSliceAdapter<T>
[src]
impl<'a, T: Bits> BitSliceable<RangeFrom<u64>> for &'a BitSliceAdapter<T>
type Slice = BitSliceAdapter<&'a T>
The type of the slice produced.
fn bit_slice(self, range: RangeFrom<u64>) -> Self::Slice
[src]
fn bit_slice(self, range: RangeFrom<u64>) -> Self::Slice
Slices or re-slices the given object. Read more
impl<'a, T: Bits> BitSliceable<RangeFull> for &'a BitSliceAdapter<T>
[src]
impl<'a, T: Bits> BitSliceable<RangeFull> for &'a BitSliceAdapter<T>
type Slice = BitSliceAdapter<&'a T>
The type of the slice produced.
fn bit_slice(self, _range: RangeFull) -> Self::Slice
[src]
fn bit_slice(self, _range: RangeFull) -> Self::Slice
Slices or re-slices the given object. Read more
impl<'a, T: Bits> BitSliceable<RangeInclusive<u64>> for &'a BitSliceAdapter<T>
[src]
impl<'a, T: Bits> BitSliceable<RangeInclusive<u64>> for &'a BitSliceAdapter<T>
type Slice = BitSliceAdapter<&'a T>
The type of the slice produced.
fn bit_slice(self, range: RangeInclusive<u64>) -> Self::Slice
[src]
fn bit_slice(self, range: RangeInclusive<u64>) -> Self::Slice
Slices or re-slices the given object. Read more
impl<'a, T: Bits> BitSliceable<RangeToInclusive<u64>> for &'a BitSliceAdapter<T>
[src]
impl<'a, T: Bits> BitSliceable<RangeToInclusive<u64>> for &'a BitSliceAdapter<T>
type Slice = BitSliceAdapter<&'a T>
The type of the slice produced.
fn bit_slice(self, range: RangeToInclusive<u64>) -> Self::Slice
[src]
fn bit_slice(self, range: RangeToInclusive<u64>) -> Self::Slice
Slices or re-slices the given object. Read more
Auto Trait Implementations
impl<T> Send for BitSliceAdapter<T> where
T: Send,
impl<T> Send for BitSliceAdapter<T> where
T: Send,
impl<T> Sync for BitSliceAdapter<T> where
T: Sync,
impl<T> Sync for BitSliceAdapter<T> where
T: Sync,