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(
        &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§

Provided Methods§

Source

fn indexes( &self, _entry: &ExternalTableEntry, ) -> Result<Vec<ExternalModuleIndex>>

Source

fn read_rows( &self, _ctx: &ModuleConnectCtx<'_>, entry: &ExternalTableEntry, ) -> Result<Vec<HashMap<u16, Value>>>

Source

fn prepare_rows( &self, _ctx: &ModuleConnectCtx<'_>, entry: &ExternalTableEntry, _rows: Vec<HashMap<u16, Value>>, ) -> Result<Vec<u8>>

Source

fn rows_from_state(&self, state: &[u8]) -> Result<Vec<HashMap<u16, Value>>>

Source

fn write( &self, ctx: &ModuleConnectCtx<'_>, entry: &ExternalTableEntry, op: ExternalWriteOp, txn: &mut ExternalTxn, ) -> Result<ExternalWriteResult>

Source

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".

Implementors§