pub trait LogicalExtensionCodec:
Debug
+ Send
+ Sync
+ Any {
Show 14 methods
// Required methods
fn try_decode(
&self,
buf: &[u8],
inputs: &[LogicalPlan],
ctx: &TaskContext,
) -> Result<Extension>;
fn try_encode(&self, node: &Extension, buf: &mut Vec<u8>) -> Result<()>;
fn try_decode_table_provider(
&self,
buf: &[u8],
table_ref: &TableReference,
schema: SchemaRef,
ctx: &TaskContext,
) -> Result<Arc<dyn TableProvider>>;
fn try_encode_table_provider(
&self,
table_ref: &TableReference,
node: Arc<dyn TableProvider>,
buf: &mut Vec<u8>,
) -> Result<()>;
// Provided methods
fn try_decode_file_format(
&self,
_buf: &[u8],
_ctx: &TaskContext,
) -> Result<Arc<dyn FileFormatFactory>> { ... }
fn try_encode_file_format(
&self,
_buf: &mut Vec<u8>,
_node: Arc<dyn FileFormatFactory>,
) -> Result<()> { ... }
fn try_decode_udf(&self, name: &str, _buf: &[u8]) -> Result<Arc<ScalarUDF>> { ... }
fn try_encode_udf(
&self,
_node: &ScalarUDF,
_buf: &mut Vec<u8>,
) -> Result<()> { ... }
fn try_decode_higher_order_function(
&self,
name: &str,
_buf: &[u8],
) -> Result<Arc<HigherOrderUDF>> { ... }
fn try_encode_higher_order_function(
&self,
_node: &HigherOrderUDF,
_buf: &mut Vec<u8>,
) -> Result<()> { ... }
fn try_decode_udaf(
&self,
name: &str,
_buf: &[u8],
) -> Result<Arc<AggregateUDF>> { ... }
fn try_encode_udaf(
&self,
_node: &AggregateUDF,
_buf: &mut Vec<u8>,
) -> Result<()> { ... }
fn try_decode_udwf(&self, name: &str, _buf: &[u8]) -> Result<Arc<WindowUDF>> { ... }
fn try_encode_udwf(
&self,
_node: &WindowUDF,
_buf: &mut Vec<u8>,
) -> Result<()> { ... }
}Required Methods§
fn try_decode( &self, buf: &[u8], inputs: &[LogicalPlan], ctx: &TaskContext, ) -> Result<Extension>
fn try_encode(&self, node: &Extension, buf: &mut Vec<u8>) -> Result<()>
fn try_decode_table_provider( &self, buf: &[u8], table_ref: &TableReference, schema: SchemaRef, ctx: &TaskContext, ) -> Result<Arc<dyn TableProvider>>
fn try_encode_table_provider( &self, table_ref: &TableReference, node: Arc<dyn TableProvider>, buf: &mut Vec<u8>, ) -> Result<()>
Provided Methods§
fn try_decode_file_format( &self, _buf: &[u8], _ctx: &TaskContext, ) -> Result<Arc<dyn FileFormatFactory>>
fn try_encode_file_format( &self, _buf: &mut Vec<u8>, _node: Arc<dyn FileFormatFactory>, ) -> Result<()>
fn try_decode_udf(&self, name: &str, _buf: &[u8]) -> Result<Arc<ScalarUDF>>
fn try_encode_udf(&self, _node: &ScalarUDF, _buf: &mut Vec<u8>) -> Result<()>
fn try_decode_higher_order_function( &self, name: &str, _buf: &[u8], ) -> Result<Arc<HigherOrderUDF>>
fn try_encode_higher_order_function( &self, _node: &HigherOrderUDF, _buf: &mut Vec<u8>, ) -> Result<()>
fn try_decode_udaf(&self, name: &str, _buf: &[u8]) -> Result<Arc<AggregateUDF>>
fn try_encode_udaf( &self, _node: &AggregateUDF, _buf: &mut Vec<u8>, ) -> Result<()>
fn try_decode_udwf(&self, name: &str, _buf: &[u8]) -> Result<Arc<WindowUDF>>
fn try_encode_udwf(&self, _node: &WindowUDF, _buf: &mut Vec<u8>) -> Result<()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl LogicalExtensionCodec for ArrowLogicalExtensionCodec
impl LogicalExtensionCodec for AvroLogicalExtensionCodec
impl LogicalExtensionCodec for CsvLogicalExtensionCodec
impl LogicalExtensionCodec for DefaultLogicalExtensionCodec
impl LogicalExtensionCodec for JsonLogicalExtensionCodec
impl LogicalExtensionCodec for ParquetLogicalExtensionCodec
Available on crate feature
parquet only.