vortex_array/arrays/bool/compute/
to_arrow.rs

1use std::sync::Arc;
2
3use arrow_array::{ArrayRef, BooleanArray as ArrowBoolArray};
4use arrow_schema::DataType;
5use vortex_error::{VortexResult, vortex_bail};
6
7use crate::Array;
8use crate::arrays::{BoolArray, BoolEncoding};
9use crate::compute::ToArrowFn;
10
11impl ToArrowFn<&BoolArray> for BoolEncoding {
12    fn to_arrow(&self, array: &BoolArray, data_type: &DataType) -> VortexResult<Option<ArrayRef>> {
13        if data_type != &DataType::Boolean {
14            vortex_bail!("Unsupported data type: {data_type}");
15        }
16        Ok(Some(Arc::new(ArrowBoolArray::new(
17            array.boolean_buffer().clone(),
18            array.validity_mask()?.to_null_buffer(),
19        ))))
20    }
21}