compacts-bits 0.2.1

succinct bit vector
macro_rules! keypos {
    ( $bit:expr, $key:ident, $pos:ident ) => (
        let key  = $bit / <u64 as ::UnsignedInt>::WIDTH as u16;
        let $pos = $bit % <u64 as ::UnsignedInt>::WIDTH as u16;
        let $key = key as usize;
    );
}

macro_rules! bitmask {
    ( $bit:expr, $key:ident, $mask:ident ) => (
        keypos!($bit, $key, pos);
        let $mask = 1 << pos;
    );
}

macro_rules! extend_by_u16 {
    ( $inserter: expr, $iter: expr ) => {
        {
            let mut weight = 0;
            for item in $iter {
                if $inserter.insert(item) {
                    weight += 1;
                }
            }
            weight
        }
    }
}