Trait SetBit

Source
pub trait SetBit {
    // Required method
    fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
       where Self: Sized;
}
Expand description

performing _ | (1 << idx) with n the index

§Examples

§set bit for big int

Don’t pay attention to my bigint implementation.

pub struct BigInt {
	hwb: i64,
	lwb: i64,
}
impl SetBit for BigInt {
	fn set_bit(&self, idx: usize) -> Result<Self,IndexError> where Self: Sized {
		if idx >= 128 {
			Err(IndexError)
		} else if idx >= 64 {
			Ok(BigInt{
				hwb: self.hwb | (1 << (idx - 64)),
				lwb: self.lwb
			})
		} else {
			Ok(BigInt{
				hwb: self.hwb,
				lwb: self.lwb | (1 << (idx - 64))
			})
		}
	}
}

Required Methods§

Source

fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
where Self: Sized,

Implementations on Foreign Types§

Source§

impl SetBit for i8

Source§

fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
where Self: Sized,

Source§

impl SetBit for i16

Source§

fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
where Self: Sized,

Source§

impl SetBit for i32

Source§

fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
where Self: Sized,

Source§

impl SetBit for i64

Source§

fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
where Self: Sized,

Source§

impl SetBit for isize

Source§

fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
where Self: Sized,

Source§

impl SetBit for u8

Source§

fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
where Self: Sized,

Source§

impl SetBit for u16

Source§

fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
where Self: Sized,

Source§

impl SetBit for u32

Source§

fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
where Self: Sized,

Source§

impl SetBit for u64

Source§

fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
where Self: Sized,

Source§

impl SetBit for usize

Source§

fn set_bit(&self, idx: usize) -> Result<Self, IndexError>
where Self: Sized,

Implementors§