pub trait ExternalTableModule: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn descriptor(&self) -> ExternalModuleDescriptor;
fn connect_with_control(
&self,
context: &ExternalExecutionContext<'_>,
entry: &ExternalTableEntry,
) -> Result<Arc<dyn ExternalTable>>;
// Provided methods
fn indexes_with_control(
&self,
context: &ExternalExecutionContext<'_>,
_entry: &ExternalTableEntry,
) -> Result<Vec<ExternalModuleIndex>> { ... }
fn read_rows_with_control(
&self,
context: &ExternalExecutionContext<'_>,
entry: &ExternalTableEntry,
) -> Result<Vec<HashMap<u16, Value>>> { ... }
fn prepare_rows_with_control(
&self,
context: &ExternalExecutionContext<'_>,
entry: &ExternalTableEntry,
_rows: Vec<HashMap<u16, Value>>,
) -> Result<Vec<u8>> { ... }
fn rows_from_state_with_control(
&self,
context: &ExternalExecutionContext<'_>,
state: &[u8],
) -> Result<Vec<HashMap<u16, Value>>> { ... }
fn write_with_control(
&self,
context: &ExternalExecutionContext<'_>,
entry: &ExternalTableEntry,
op: ExternalWriteOp,
txn: &mut ExternalTxn,
) -> Result<ExternalWriteResult> { ... }
fn destroy_with_control(
&self,
context: &ExternalExecutionContext<'_>,
_entry: &ExternalTableEntry,
) -> Result<()> { ... }
}Required Methods§
fn name(&self) -> &str
fn descriptor(&self) -> ExternalModuleDescriptor
fn connect_with_control( &self, context: &ExternalExecutionContext<'_>, entry: &ExternalTableEntry, ) -> Result<Arc<dyn ExternalTable>>
Provided Methods§
fn indexes_with_control( &self, context: &ExternalExecutionContext<'_>, _entry: &ExternalTableEntry, ) -> Result<Vec<ExternalModuleIndex>>
fn read_rows_with_control( &self, context: &ExternalExecutionContext<'_>, entry: &ExternalTableEntry, ) -> Result<Vec<HashMap<u16, Value>>>
fn prepare_rows_with_control( &self, context: &ExternalExecutionContext<'_>, entry: &ExternalTableEntry, _rows: Vec<HashMap<u16, Value>>, ) -> Result<Vec<u8>>
fn rows_from_state_with_control( &self, context: &ExternalExecutionContext<'_>, state: &[u8], ) -> Result<Vec<HashMap<u16, Value>>>
fn write_with_control( &self, context: &ExternalExecutionContext<'_>, entry: &ExternalTableEntry, op: ExternalWriteOp, txn: &mut ExternalTxn, ) -> Result<ExternalWriteResult>
fn destroy_with_control( &self, context: &ExternalExecutionContext<'_>, _entry: &ExternalTableEntry, ) -> Result<()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".