pub trait DynExprVTable:
'static
+ Send
+ Sync
+ Sealed {
Show 22 methods
// Required methods
fn as_any(&self) -> &dyn Any;
fn id(&self) -> ExprId;
fn fmt_sql(&self, expression: &Expression, f: &mut Formatter<'_>) -> Result;
fn options_serialize(
&self,
options: &dyn Any,
) -> VortexResult<Option<Vec<u8>>>;
fn options_deserialize(
&self,
metadata: &[u8],
) -> VortexResult<Box<dyn Any + Send + Sync>>;
fn options_clone(&self, options: &dyn Any) -> Box<dyn Any + Send + Sync>;
fn options_eq(&self, a: &dyn Any, b: &dyn Any) -> bool;
fn options_hash(&self, options: &dyn Any, hasher: &mut dyn Hasher);
fn options_display(
&self,
options: &dyn Any,
fmt: &mut Formatter<'_>,
) -> Result;
fn options_debug(
&self,
options: &dyn Any,
fmt: &mut Formatter<'_>,
) -> Result;
fn return_dtype(
&self,
options: &dyn Any,
arg_types: &[DType],
) -> VortexResult<DType>;
fn simplify(
&self,
expression: &Expression,
ctx: &dyn SimplifyCtx,
) -> VortexResult<Option<Expression>>;
fn simplify_untyped(
&self,
expression: &Expression,
) -> VortexResult<Option<Expression>>;
fn execute(
&self,
options: &dyn Any,
args: ExecutionArgs,
) -> VortexResult<Datum>;
fn evaluate(
&self,
expression: &Expression,
scope: &ArrayRef,
) -> VortexResult<ArrayRef>;
fn reduce(
&self,
options: &dyn Any,
node: &dyn ReduceNode,
ctx: &dyn ReduceCtx,
) -> VortexResult<Option<ReduceNodeRef>>;
fn arity(&self, options: &dyn Any) -> Arity;
fn child_name(&self, options: &dyn Any, child_idx: usize) -> ChildName;
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, options: &dyn Any) -> bool;
fn is_fallible(&self, options: &dyn Any) -> bool;
}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.