#[inline]
pub fn bf_insert(orig: usize, bit: usize, width: usize, value: usize) -> usize {
let mask = (1 << width) - 1;
orig & !(mask << bit) | ((value & mask) << bit)
}
#[inline]
pub fn bf_extract(orig: usize, bit: usize, width: usize) -> usize {
let mask = (1 << width) - 1;
(orig >> bit) & mask
}