use super::error::ArrowResult;
use arrow::array::ArrayRef;
use arrow::datatypes::DataType;
use ndarray::Array1;
pub trait ToArrowArray: Sized {
fn to_arrow_array(data: &[Self]) -> ArrowResult<ArrayRef>;
fn arrow_data_type() -> DataType;
}
pub trait FromArrowArray: Sized {
fn from_arrow_array(array: &ArrayRef) -> ArrowResult<Array1<Self>>;
fn from_arrow_array_nullable(array: &ArrayRef) -> ArrowResult<Array1<Option<Self>>>;
}
pub trait ZeroCopyFromArrow: Sized {
fn try_zero_copy_view(array: &ArrayRef) -> ArrowResult<Option<ndarray::ArrayView1<'_, Self>>>;
}