pub unsafe trait VTab<'vtab>: Sized {
    type Aux;
    type Cursor: VTabCursor;

    fn connect(
        db: &mut VTabConnection,
        aux: Option<&Self::Aux>,
        args: &[&[u8]]
    ) -> Result<(String, Self)>; fn best_index(&self, info: &mut IndexInfo) -> Result<()>; fn open(&'vtab mut self) -> Result<Self::Cursor>; }
Available on crate feature vtab only.
Expand description

Eponymous-only virtual table instance trait.

Safety

The first item in a struct implementing VTab must be rusqlite::sqlite3_vtab, and the struct must be #[repr(C)].

#[repr(C)]
struct MyTab {
   /// Base class. Must be first
   base: rusqlite::vtab::sqlite3_vtab,
   /* Virtual table implementations will typically add additional fields */
}

(See SQLite doc)

Required Associated Types

Client data passed to Connection::create_module.

Specific cursor implementation

Required Methods

Establish a new connection to an existing virtual table.

(See SQLite doc)

Determine the best way to access the virtual table. (See SQLite doc)

Create a new cursor used for accessing a virtual table. (See SQLite doc)

Implementors