pub trait ArgumentPlan<A, V, R>:
Any
+ Send
+ Sync{
// Required methods
fn as_any(&self) -> &dyn Any;
fn prepare<'a>(
&'a self,
graphrecord: &'a GraphRecord,
cache: &'a EvaluationCache<'a>,
) -> QueryResult<PreparedArgument<'a, A, V, R>>;
fn inputs(&self) -> Vec<&dyn PlanNode>;
fn identity_eq(&self, other: &dyn ArgumentPlan<A, V, R>) -> bool;
fn identity_hash(&self, state: &mut dyn Hasher);
fn describe<'a>(
&'a self,
formatter: &mut ExplainFormatter<'a, '_>,
) -> Result;
fn estimate(&self, stats: &Stats<'_>) -> Estimate;
fn optimize(&self, session: &Session<'_>) -> Transformed<Argument<A, V, R>>;
}Required Methods§
fn as_any(&self) -> &dyn Any
fn prepare<'a>( &'a self, graphrecord: &'a GraphRecord, cache: &'a EvaluationCache<'a>, ) -> QueryResult<PreparedArgument<'a, A, V, R>>
fn inputs(&self) -> Vec<&dyn PlanNode>
fn identity_eq(&self, other: &dyn ArgumentPlan<A, V, R>) -> bool
fn identity_hash(&self, state: &mut dyn Hasher)
fn describe<'a>(&'a self, formatter: &mut ExplainFormatter<'a, '_>) -> Result
fn estimate(&self, stats: &Stats<'_>) -> Estimate
fn optimize(&self, session: &Session<'_>) -> Transformed<Argument<A, V, R>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".