pub trait DynExprVTable:
'static
+ Send
+ Sync
+ Sealed {
Show 17 methods
// Required methods
fn as_any(&self) -> &dyn Any;
fn id(&self) -> ExprId;
fn serialize(&self, instance: &dyn Any) -> VortexResult<Option<Vec<u8>>>;
fn deserialize(
&self,
metadata: &[u8],
) -> VortexResult<Option<Arc<dyn Any + Send + Sync>>>;
fn child_name(&self, instance: &dyn Any, child_idx: usize) -> ChildName;
fn validate(&self, expression: &Expression) -> VortexResult<()>;
fn fmt_sql(&self, expression: &Expression, f: &mut Formatter<'_>) -> Result;
fn fmt_data(&self, instance: &dyn Any, f: &mut Formatter<'_>) -> Result;
fn return_dtype(
&self,
expression: &Expression,
scope: &DType,
) -> VortexResult<DType>;
fn evaluate(
&self,
expression: &Expression,
scope: &ArrayRef,
) -> VortexResult<ArrayRef>;
fn stat_falsification(
&self,
expression: &Expression,
catalog: &mut dyn StatsCatalog,
) -> Option<Expression>;
fn stat_max(
&self,
expression: &Expression,
catalog: &mut dyn StatsCatalog,
) -> Option<Expression>;
fn stat_min(
&self,
expression: &Expression,
catalog: &mut dyn StatsCatalog,
) -> Option<Expression>;
fn stat_nan_count(
&self,
expression: &Expression,
catalog: &mut dyn StatsCatalog,
) -> Option<Expression>;
fn stat_field_path(&self, expression: &Expression) -> Option<FieldPath>;
fn dyn_eq(&self, instance: &dyn Any, other: &dyn Any) -> bool;
fn dyn_hash(&self, instance: &dyn Any, state: &mut dyn Hasher);
}Expand description
An object-safe trait for dynamic dispatch of Vortex expression vtables.
This trait is automatically implemented via the VTableAdapter for any type that
implements VTable, and lifts the associated types into dynamic trait objects.