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§
sourcetype Aux
type Aux
Client data passed to Connection::create_module.
sourcetype Cursor: VTabCursor
type Cursor: VTabCursor
Specific cursor implementation
Required Methods§
sourcefn connect(
db: &mut VTabConnection,
aux: Option<&Self::Aux>,
args: &[&[u8]],
) -> Result<(String, Self)>
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)
sourcefn best_index(&self, info: &mut IndexInfo) -> Result<()>
fn best_index(&self, info: &mut IndexInfo) -> Result<()>
Determine the best way to access the virtual table. (See SQLite doc)
sourcefn open(&'vtab mut self) -> Result<Self::Cursor>
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.