geoarrow_wasm/array/
primitive.rs

1use crate::array::ffi::FFIArrowArray;
2use arrow2::datatypes::Field;
3use wasm_bindgen::prelude::*;
4
5#[wasm_bindgen]
6pub struct BooleanArray(pub(crate) arrow2::array::BooleanArray);
7
8#[wasm_bindgen]
9impl BooleanArray {
10    // TODO:
11    // #[wasm_bindgen]
12    // pub fn new() {
13    //     arrow2::array::BooleanArray::f
14    // }
15
16    #[wasm_bindgen]
17    pub fn to_ffi(&self) -> FFIArrowArray {
18        let arrow_array = self.0.clone().boxed();
19        let field = Field::new("", arrow_array.data_type().clone(), true);
20        FFIArrowArray::new(&field, arrow_array)
21    }
22}
23
24#[wasm_bindgen]
25pub struct FloatArray(pub(crate) arrow2::array::PrimitiveArray<f64>);
26
27#[wasm_bindgen]
28impl FloatArray {
29    #[wasm_bindgen(constructor)]
30    pub fn new(values: Vec<f64>) -> Self {
31        Self(arrow2::array::PrimitiveArray::from_vec(values))
32    }
33
34    #[wasm_bindgen]
35    pub fn to_ffi(&self) -> FFIArrowArray {
36        let arrow_array = self.0.clone().boxed();
37        let field = Field::new("", arrow_array.data_type().clone(), true);
38        FFIArrowArray::new(&field, arrow_array)
39    }
40}