pub trait ArrowImportVTable:
'static
+ Send
+ Sync
+ Debug {
// Required methods
fn arrow_ext_id(&self) -> Id;
fn from_arrow_field(
&self,
field: &Field,
session: &ArrowSession,
) -> VortexResult<Option<DType>>;
fn from_arrow_array(
&self,
array: ArrowArrayRef,
field: &Field,
dtype: &DType,
session: &ArrowSession,
) -> VortexResult<ArrowImport>;
}Expand description
Plugin layer for importing an Arrow extension-typed array into a Vortex array.
Plugins are dispatched by arrow_ext_id.
This is purely an implementation trait, its methods should not be called directly. Instead,
use the methods on ArrowSession.
Required Methods§
Sourcefn arrow_ext_id(&self) -> Id
fn arrow_ext_id(&self) -> Id
The Arrow extension name this plugin handles.
Sourcefn from_arrow_field(
&self,
field: &Field,
session: &ArrowSession,
) -> VortexResult<Option<DType>>
fn from_arrow_field( &self, field: &Field, session: &ArrowSession, ) -> VortexResult<Option<DType>>
Build the Vortex DType that corresponds to field (which carries this plugin’s
Arrow extension metadata).
session is provided so plugins can resolve nested or storage fields through the
plugin-aware conversion (e.g. ArrowSession::from_arrow_datatype) instead of the
naive Arrow → Vortex mapping.
Sourcefn from_arrow_array(
&self,
array: ArrowArrayRef,
field: &Field,
dtype: &DType,
session: &ArrowSession,
) -> VortexResult<ArrowImport>
fn from_arrow_array( &self, array: ArrowArrayRef, field: &Field, dtype: &DType, session: &ArrowSession, ) -> VortexResult<ArrowImport>
Convert an Arrow array into a Vortex array of dtype.
Returns ownership of array via ArrowImport::Unsupported when the plugin cannot
handle the input.
session is provided so plugins can convert storage or nested arrays through the
session (e.g. ArrowSession::from_arrow_array, passing a nullability rather than a
Field so the plugin is not dispatched again) instead of the deprecated
FromArrowArray trait.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".