#[cfg(feature = "arrow")]
mod arrow;
mod buf;
mod buf_mut;
mod count_ones;
mod macros;
mod ops;
pub use arrow_buffer::bit_chunk_iterator::BitChunkIterator;
pub use arrow_buffer::bit_chunk_iterator::BitChunks;
pub use arrow_buffer::bit_chunk_iterator::UnalignedBitChunk;
pub use arrow_buffer::bit_chunk_iterator::UnalignedBitChunkIterator;
pub use arrow_buffer::bit_iterator::BitIndexIterator;
pub use arrow_buffer::bit_iterator::BitIterator;
pub use arrow_buffer::bit_iterator::BitSliceIterator;
pub use buf::*;
pub use buf_mut::*;
#[inline(always)]
pub fn get_bit(buf: &[u8], index: usize) -> bool {
buf[index / 8] & (1 << (index % 8)) != 0
}
#[inline(always)]
pub unsafe fn get_bit_unchecked(buf: *const u8, index: usize) -> bool {
(unsafe { *buf.add(index / 8) } & (1 << (index % 8))) != 0
}
#[inline(always)]
pub unsafe fn set_bit_unchecked(buf: *mut u8, index: usize) {
unsafe { *buf.add(index / 8) |= 1 << (index % 8) };
}
#[inline(always)]
pub unsafe fn unset_bit_unchecked(buf: *mut u8, index: usize) {
unsafe { *buf.add(index / 8) &= !(1 << (index % 8)) };
}