Trait rusqlite::vtab::VTab

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

    // Required methods
    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§

source

type Aux

Client data passed to Connection::create_module.

source

type Cursor: VTabCursor

Specific cursor implementation

Required Methods§

source

fn connect( db: &mut VTabConnection, aux: Option<&Self::Aux>, args: &[&[u8]] ) -> Result<(String, Self)>

Establish a new connection to an existing virtual table.

(See SQLite doc)

source

fn best_index(&self, info: &mut IndexInfo) -> Result<()>

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

source

fn open(&'vtab mut self) -> Result<Self::Cursor>

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

Object Safety§

This trait is not object safe.

Implementors§