[−][src]Struct xor_distance_exercise::bits::Bits
Bits representation.
Examples
extern crate xor_distance_exercise; use xor_distance_exercise::bits::Bits; // Find out bit size of specific integer type. let size = Bits::bit_size::<i64>(); // Bit representation of `u64` integer. let mut bit_rep = Bits::new::<u64>(); // Operations on the bit representation. let bit = bit_rep.get_bit(4); bit_rep.set_bit(4, true); bit_rep.set_bit_within_constrains(5, true); bit_rep.is_bit_decided(4); let number = bit_rep.form_zero_padded_number::<u64>().unwrap();
Methods
impl Bits
[src]
pub fn new<T: PrimInt>() -> Self
[src]
Create a new representation of Bits.
Examples
extern crate xor_distance_exercise; use xor_distance_exercise::bits::Bits; let bit_rep = Bits::new::<u64>;
pub fn bit_size<T: PrimInt>() -> usize
[src]
Return bit size of the type being represented in bits.
Examples
extern crate xor_distance_exercise; use xor_distance_exercise::bits::Bits; assert_eq!(8, Bits::bit_size::<u8>()); assert_eq!(32, Bits::bit_size::<u32>()); assert_eq!(64, Bits::bit_size::<u64>()); assert_eq!(64, Bits::bit_size::<i64>());
pub fn get_bit(&self, index: usize) -> Option<bool>
[src]
Get bit value for the index.
Examples
extern crate xor_distance_exercise; use xor_distance_exercise::bits::Bits; let bit_rep = Bits::new::<u64>(); let bit = bit_rep.get_bit(4);
Panics
Panics if index
is out of range.
pub fn set_bit(&mut self, index: usize, val: bool)
[src]
Set new bit value for the index.
Examples
extern crate xor_distance_exercise; use xor_distance_exercise::bits::Bits; let mut bit_rep = Bits::new::<u64>(); bit_rep.set_bit(4, true); bit_rep.set_bit(5, false);
Panics
Panics if index
is out of range.
pub fn set_bit_within_constrains(
&mut self,
index: usize,
val: bool
) -> Result<(), &'static str>
[src]
&mut self,
index: usize,
val: bool
) -> Result<(), &'static str>
Set new bit value complying with constrains, already decided bit value can not be changed.
Returns Ok(())
in case constrains were not violated, Err(&str)
otherwise.
Examples
extern crate xor_distance_exercise; use xor_distance_exercise::bits::Bits; let mut bit_rep = Bits::new::<u64>(); bit_rep.set_bit_within_constrains(4, true);
Panics
Panics if index
is out of range.
pub fn is_bit_decided(&self, index: usize) -> bool
[src]
Is bit decided already?
Examples
extern crate xor_distance_exercise; use xor_distance_exercise::bits::Bits; let bit_rep = Bits::new::<u64>(); bit_rep.is_bit_decided(4);
Panics
Panics if index
is out of range.
pub fn form_zero_padded_number<T: PrimInt>(&self) -> Result<T, &str>
[src]
Form and return a number based on bits representation, pad/fill undecided bits by zeros.
Examples
extern crate xor_distance_exercise; use xor_distance_exercise::bits::Bits; let bit_rep = Bits::new::<u64>(); let number = bit_rep.form_zero_padded_number::<u64>().unwrap();
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
🔬 This is a nightly-only experimental API. (
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
🔬 This is a nightly-only experimental API. (
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,