Skip to main content

PhysicalPlanNodeExt

Trait PhysicalPlanNodeExt 

Source
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§

Source

fn node(&self) -> &PhysicalPlanNode

Returns a reference to the underlying protobuf::PhysicalPlanNode.

Provided Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§