pub trait VTab<'vtab>: Sized {
type Aux;
type Cursor: VTabCursor;
// Required methods
fn connect(
db: *mut sqlite3,
aux: Option<&Self::Aux>,
args: VTabArguments,
) -> Result<(String, Self)>;
fn best_index(&self, info: IndexInfo) -> Result<(), BestIndexError>;
fn open(&'vtab mut self) -> Result<Self::Cursor>;
// Provided methods
fn create(
db: *mut sqlite3,
aux: Option<&Self::Aux>,
args: VTabArguments,
) -> Result<(String, Self)> { ... }
fn destroy(&self) -> Result<()> { ... }
}
Required Associated Types§
type Aux
type Cursor: VTabCursor
Required Methods§
fn connect( db: *mut sqlite3, aux: Option<&Self::Aux>, args: VTabArguments, ) -> Result<(String, Self)>
fn best_index(&self, info: IndexInfo) -> Result<(), BestIndexError>
fn open(&'vtab mut self) -> Result<Self::Cursor>
Provided Methods§
fn create( db: *mut sqlite3, aux: Option<&Self::Aux>, args: VTabArguments, ) -> Result<(String, Self)>
fn destroy(&self) -> Result<()>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.