use arrow_buffer::NullBuffer;
use crate::Mask;
impl From<Mask> for Option<NullBuffer> {
fn from(value: Mask) -> Self {
match value {
Mask::AllTrue(_) => None,
Mask::AllFalse(len) => Some(NullBuffer::new_null(len)),
Mask::Values(values) => {
Some(unsafe {
NullBuffer::new_unchecked(
values.bit_buffer().clone().into(),
values.len() - values.true_count(),
)
})
}
}
}
}