Struct xor_distance_exercise::bits::Bits
source · pub struct Bits { /* private fields */ }
Expand description
Bits representation.
Implementations§
source§impl Bits
impl Bits
sourcepub fn new<T: PrimInt>() -> Self
pub fn new<T: PrimInt>() -> Self
Create a new representation of Bits.
Examples
extern crate xor_distance_exercise;
use xor_distance_exercise::bits::Bits;
Bits::new::<u64>;
sourcepub fn bit_size<T: PrimInt>() -> usize
pub fn bit_size<T: PrimInt>() -> usize
Return bit size of the type being represent 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>());
sourcepub fn set_bit_within_constrains(
&mut self,
index: usize,
val: bool
) -> Result<(), &'static str>
pub fn set_bit_within_constrains(
&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.
Panics
Panics if index
is out of range.
sourcepub fn is_bit_decided(&self, index: usize) -> bool
pub fn is_bit_decided(&self, index: usize) -> bool
sourcepub fn form_zero_padded_number<T: PrimInt>(&self) -> Result<T, &str>
pub fn form_zero_padded_number<T: PrimInt>(&self) -> Result<T, &str>
Form and return a number based on bits representation, pad/fill undecided bits by zeros.