use int::Int;
#[inline]
pub fn bzhi<T: Int>(x: T, bit_position: T) -> T {
debug_assert!(bit_position < T::bit_size());
x & ((T::one() << bit_position) - T::one())
}
pub trait BZHI {
#[inline]
fn bzhi(self, Self) -> Self;
}
impl<T: Int> BZHI for T {
#[inline]
fn bzhi(self, y: Self) -> Self {
bzhi(self, y)
}
}