pub trait ExternalTableModule: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn descriptor(&self) -> ExternalModuleDescriptor;
fn connect(
&self,
ctx: &ModuleConnectCtx<'_>,
entry: &ExternalTableEntry,
) -> Result<Arc<dyn ExternalTable>>;
// Provided methods
fn indexes(
&self,
_entry: &ExternalTableEntry,
) -> Result<Vec<ExternalModuleIndex>> { ... }
fn read_rows(
&self,
_ctx: &ModuleConnectCtx<'_>,
entry: &ExternalTableEntry,
) -> Result<Vec<HashMap<u16, Value>>> { ... }
fn prepare_rows(
&self,
_ctx: &ModuleConnectCtx<'_>,
entry: &ExternalTableEntry,
_rows: Vec<HashMap<u16, Value>>,
) -> Result<Vec<u8>> { ... }
fn rows_from_state(&self, state: &[u8]) -> Result<Vec<HashMap<u16, Value>>> { ... }
fn write(
&self,
ctx: &ModuleConnectCtx<'_>,
entry: &ExternalTableEntry,
op: ExternalWriteOp,
txn: &mut ExternalTxn,
) -> Result<ExternalWriteResult> { ... }
fn destroy(
&self,
_ctx: &ModuleConnectCtx<'_>,
_entry: &ExternalTableEntry,
) -> Result<()> { ... }
}Required Methods§
fn name(&self) -> &str
fn descriptor(&self) -> ExternalModuleDescriptor
fn connect( &self, ctx: &ModuleConnectCtx<'_>, entry: &ExternalTableEntry, ) -> Result<Arc<dyn ExternalTable>>
Provided Methods§
fn indexes( &self, _entry: &ExternalTableEntry, ) -> Result<Vec<ExternalModuleIndex>>
fn read_rows( &self, _ctx: &ModuleConnectCtx<'_>, entry: &ExternalTableEntry, ) -> Result<Vec<HashMap<u16, Value>>>
fn prepare_rows( &self, _ctx: &ModuleConnectCtx<'_>, entry: &ExternalTableEntry, _rows: Vec<HashMap<u16, Value>>, ) -> Result<Vec<u8>>
fn rows_from_state(&self, state: &[u8]) -> Result<Vec<HashMap<u16, Value>>>
fn write( &self, ctx: &ModuleConnectCtx<'_>, entry: &ExternalTableEntry, op: ExternalWriteOp, txn: &mut ExternalTxn, ) -> Result<ExternalWriteResult>
fn destroy( &self, _ctx: &ModuleConnectCtx<'_>, _entry: &ExternalTableEntry, ) -> Result<()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".