pub trait AsExecutionPlan: Debug + Send + Sync + Clone {
// Required methods
fn try_decode(buf: &[u8]) -> Result<Self>
where Self: Sized;
fn try_encode<B>(&self, buf: &mut B) -> Result<()>
where B: BufMut,
Self: Sized;
fn try_into_physical_plan(
&self,
registry: &dyn FunctionRegistry,
runtime: &RuntimeEnv,
extension_codec: &dyn PhysicalExtensionCodec
) -> Result<Arc<dyn ExecutionPlan>>;
fn try_from_physical_plan(
plan: Arc<dyn ExecutionPlan>,
extension_codec: &dyn PhysicalExtensionCodec
) -> Result<Self>
where Self: Sized;
}