prodigal-rs 0.3.4

Prokaryotic gene prediction — Prodigal rewritten in Rust
Documentation
use std::os::raw::c_int;

#[inline(always)]
pub unsafe fn test(bm: *const u8, ndx: c_int) -> u8 {
    let byte = *bm.add((ndx >> 3) as usize);
    if byte & (1 << (ndx & 0x07)) != 0 {
        1
    } else {
        0
    }
}

#[inline(always)]
pub unsafe fn clear(bm: *mut u8, ndx: c_int) {
    let p = bm.add((ndx >> 3) as usize);
    *p &= !(1u8 << (ndx & 0x07));
}

#[inline(always)]
pub unsafe fn set(bm: *mut u8, ndx: c_int) {
    let p = bm.add((ndx >> 3) as usize);
    *p |= 1u8 << (ndx & 0x07);
}

#[inline(always)]
pub unsafe fn toggle(bm: *mut u8, ndx: c_int) {
    let p = bm.add((ndx >> 3) as usize);
    *p ^= 1u8 << (ndx & 0x07);
}