pub trait LogicalExtensionCodec: Debug + Send + Sync {
// Required methods
fn try_decode(
&self,
buf: &[u8],
inputs: &[LogicalPlan],
ctx: &SessionContext
) -> Result<Extension>;
fn try_encode(&self, node: &Extension, buf: &mut Vec<u8>) -> Result<()>;
fn try_decode_table_provider(
&self,
buf: &[u8],
schema: SchemaRef,
ctx: &SessionContext
) -> Result<Arc<dyn TableProvider>>;
fn try_encode_table_provider(
&self,
node: Arc<dyn TableProvider>,
buf: &mut Vec<u8>
) -> Result<()>;
}