Skip to main content

ExternalTableModule

Trait ExternalTableModule 

Source
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§

Provided Methods§

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§