[][src]Trait xor_distance_exercise::bitops::BitOps

pub trait BitOps: PrimInt {
    fn is_flag(&self) -> bool { ... }
fn is_flag_set(&self, flag: Self) -> bool { ... }
fn set_flag(&mut self, flag: Self) { ... }
fn is_bit_set(&self, bit_index: usize) -> bool { ... }
fn set_bit(&mut self, bit_index: usize) { ... } }

Bit operations trait for any Integer type.

Provided methods

fn is_flag(&self) -> bool

Returns whether this number only has one bit set.

Examples

extern crate xor_distance_exercise;

use xor_distance_exercise::bitops::BitOps;

// Flag must have exactly one bit set to "1".
assert!(0b0010.is_flag());
assert!(!0b0101.is_flag());

fn is_flag_set(&self, flag: Self) -> bool

Returns whether the given flag is set.

It doesn't check if the provided flag is really flag.

Examples

extern crate xor_distance_exercise;

use xor_distance_exercise::bitops::BitOps;

let x = 0b1101;
let flag = 0b0001;

assert!(x.is_flag_set(flag));

fn set_flag(&mut self, flag: Self)

Set flag.

It doesn't check if the provided flag is really flag.

Examples

extern crate xor_distance_exercise;

use xor_distance_exercise::bitops::BitOps;

let mut x = 0b1101;
let flag = 0b0010;

x.set_flag(flag);

assert_eq!(0b1111, x);

fn is_bit_set(&self, bit_index: usize) -> bool

Returns whether the bit on specified bit index is set to "1".

Panics

Panics if bit is greater than the number of bits in this Integer.

Examples

extern crate xor_distance_exercise;

use xor_distance_exercise::bitops::BitOps;

assert!(0b1000.is_bit_set(3));

fn set_bit(&mut self, bit_index: usize)

Set bit to "1" for specified bit index. Indexed from zero.

Panics

Panics if bit is greater than the number of bits in this Integer.

Examples

extern crate xor_distance_exercise;

use xor_distance_exercise::bitops::BitOps;

let mut x = 0b1000;
x.set_bit(1);

// The second bit should be added/set now.
assert_eq!(0b1010, x);
Loading content...

Implementors

impl<T> BitOps for T where
    T: PrimInt
[src]

Implements the BitOps trait for all 'Integer' types.

fn is_flag(&self) -> bool[src]

fn is_flag_set(&self, flag: Self) -> bool[src]

fn set_flag(&mut self, flag: Self)[src]

fn is_bit_set(&self, bit_index: usize) -> bool[src]

fn set_bit(&mut self, bit_index: usize)[src]

Loading content...