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))
})
}
}
}