pub trait Mask<I: Index>: Default + Debug + Clone + Eq + PartialEq + Hash
{
#[inline(always)]
fn allocate() -> Self;
#[inline(always)]
fn all() -> Self;
#[inline(always)]
fn parse_string(string: &CStr) -> Self;
#[inline(always)]
fn parse_string_all(string: &CStr) -> Self;
#[inline(always)]
#[doc(hidden)]
fn bit_mask(&self) -> &BitMask;
#[inline(always)]
fn clear(&self, index: I)
{
self.bit_mask().clear_bit(index.to_c_uint())
}
#[inline(always)]
fn is_set(&self, index: I) -> bool
{
self.bit_mask().is_bit_set(index.to_c_uint())
}
#[inline(always)]
fn set(&self, index: I)
{
self.bit_mask().set_bit(index.to_c_uint())
}
#[inline(always)]
fn clear_all(&self)
{
self.bit_mask().clear_all_bits()
}
#[inline(always)]
fn set_all(&self)
{
self.bit_mask().set_all_bits()
}
#[inline(always)]
fn weight_x(&self) -> usize
{
self.bit_mask().weight()
}
}