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 execute(
&self,
data: &dyn Any,
args: ExecutionArgs,
) -> VortexResult<Vector>;
fn stat_falsification(
&self,
expression: &Expression,
catalog: &dyn StatsCatalog,
) -> Option<Expression>;
fn stat_expression(
&self,
expression: &Expression,
stat: Stat,
catalog: &dyn StatsCatalog,
) -> Option<Expression>;
fn is_null_sensitive(&self, instance: &dyn Any) -> bool;
fn is_fallible(&self, instance: &dyn Any) -> bool;
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.
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 execute(&self, data: &dyn Any, args: ExecutionArgs) -> VortexResult<Vector>
fn stat_falsification( &self, expression: &Expression, catalog: &dyn StatsCatalog, ) -> Option<Expression>
fn stat_expression( &self, expression: &Expression, stat: Stat, catalog: &dyn StatsCatalog, ) -> Option<Expression>
Sourcefn is_null_sensitive(&self, instance: &dyn Any) -> bool
fn is_null_sensitive(&self, instance: &dyn Any) -> bool
Sourcefn is_fallible(&self, instance: &dyn Any) -> bool
fn is_fallible(&self, instance: &dyn Any) -> bool
See VTable::is_fallible.