pub trait PhysicalExtensionCodec: Debug + Send + Sync {
// Required methods
fn try_decode(
&self,
buf: &[u8],
inputs: &[Arc<dyn ExecutionPlan>],
registry: &dyn FunctionRegistry
) -> Result<Arc<dyn ExecutionPlan>>;
fn try_encode(
&self,
node: Arc<dyn ExecutionPlan>,
buf: &mut Vec<u8>
) -> Result<()>;
// Provided methods
fn try_decode_udf(&self, name: &str, _buf: &[u8]) -> Result<Arc<ScalarUDF>> { ... }
fn try_encode_udf(
&self,
_node: &ScalarUDF,
_buf: &mut Vec<u8>
) -> Result<()> { ... }
}