pub trait PhysicalPlanNodeExt: Sized {
// Required method
fn node(&self) -> &PhysicalPlanNode;
// Provided methods
fn try_into_physical_plan_with_converter(
&self,
ctx: &TaskContext,
codec: &dyn PhysicalExtensionCodec,
proto_converter: &dyn PhysicalProtoConverterExtension,
) -> Result<Arc<dyn ExecutionPlan>> { ... }
fn try_into_physical_plan_with_context(
&self,
ctx: &PhysicalPlanDecodeContext<'_>,
proto_converter: &dyn PhysicalProtoConverterExtension,
) -> Result<Arc<dyn ExecutionPlan>> { ... }
fn try_from_physical_plan_with_converter(
plan: Arc<dyn ExecutionPlan>,
codec: &dyn PhysicalExtensionCodec,
proto_converter: &dyn PhysicalProtoConverterExtension,
) -> Result<PhysicalPlanNode> { ... }
fn try_into_extension_physical_plan(
&self,
extension: &PhysicalExtensionNode,
ctx: &PhysicalPlanDecodeContext<'_>,
proto_converter: &dyn PhysicalProtoConverterExtension,
) -> Result<Arc<dyn ExecutionPlan>> { ... }
fn generate_series_name_to_str(name: GenerateSeriesName) -> &'static str { ... }
fn try_into_generate_series_physical_plan(
&self,
generate_series: &GenerateSeriesNode,
) -> Result<Arc<dyn ExecutionPlan>> { ... }
fn str_to_generate_series_name(name: &str) -> Result<GenerateSeriesName> { ... }
fn try_from_lazy_memory_exec(
exec: &LazyMemoryExec,
) -> Result<Option<PhysicalPlanNode>> { ... }
}Expand description
Extension methods on protobuf::PhysicalPlanNode.
The prost-generated PhysicalPlanNode struct lives in
datafusion-proto-models, which is foreign to this crate, so the orphan
rule forbids inherent impl blocks here. Instead, all (de)serialization
helpers are exposed through this trait. Callers can bring it in scope with
use datafusion_proto::physical_plan::PhysicalPlanNodeExt;.
Method bodies live in the default trait implementation. To make the trait
usable as if it were inherent (i.e. let bodies access fields on self),
implementors provide PhysicalPlanNodeExt::node returning a reference
back to the concrete protobuf::PhysicalPlanNode. Default method bodies
then go through self.node() to read fields.
Required Methods§
Sourcefn node(&self) -> &PhysicalPlanNode
fn node(&self) -> &PhysicalPlanNode
Returns a reference to the underlying protobuf::PhysicalPlanNode.
Provided Methods§
fn try_into_physical_plan_with_converter( &self, ctx: &TaskContext, codec: &dyn PhysicalExtensionCodec, proto_converter: &dyn PhysicalProtoConverterExtension, ) -> Result<Arc<dyn ExecutionPlan>>
fn try_into_physical_plan_with_context( &self, ctx: &PhysicalPlanDecodeContext<'_>, proto_converter: &dyn PhysicalProtoConverterExtension, ) -> Result<Arc<dyn ExecutionPlan>>
fn try_from_physical_plan_with_converter( plan: Arc<dyn ExecutionPlan>, codec: &dyn PhysicalExtensionCodec, proto_converter: &dyn PhysicalProtoConverterExtension, ) -> Result<PhysicalPlanNode>
fn try_into_extension_physical_plan( &self, extension: &PhysicalExtensionNode, ctx: &PhysicalPlanDecodeContext<'_>, proto_converter: &dyn PhysicalProtoConverterExtension, ) -> Result<Arc<dyn ExecutionPlan>>
fn generate_series_name_to_str(name: GenerateSeriesName) -> &'static str
fn try_into_generate_series_physical_plan( &self, generate_series: &GenerateSeriesNode, ) -> Result<Arc<dyn ExecutionPlan>>
fn str_to_generate_series_name(name: &str) -> Result<GenerateSeriesName>
fn try_from_lazy_memory_exec( exec: &LazyMemoryExec, ) -> Result<Option<PhysicalPlanNode>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".