pub struct Extension { /* private fields */ }Expand description
Represents an SQLite-compatible extension entry point.
Because the original Rust function is the Deref target for Extension, it can be called from Rust easily.
§Examples
use sqlite3_ext::*;
#[sqlite3_ext_main(persistent)]
fn init(db: &Connection) -> Result<()> {
// Automatically load this extension on future connections.
per_db_init.register_auto()?;
// Load this extension on this connection.
per_db_init(db)?;
// Add extensions to the VFS system
Ok(())
}
#[sqlite3_ext_init]
fn per_db_init(db: &Connection) -> Result<()> {
// Add extensions to this connection.
Ok(())
}Implementations§
Source§impl Extension
impl Extension
Sourcepub const fn new(
c_entry: unsafe extern "C" fn(db: *mut sqlite3, err_msg: *mut *mut c_char, api: *mut sqlite3_api_routines) -> c_int,
init: fn(&Connection) -> Result<()>,
) -> Self
pub const fn new( c_entry: unsafe extern "C" fn(db: *mut sqlite3, err_msg: *mut *mut c_char, api: *mut sqlite3_api_routines) -> c_int, init: fn(&Connection) -> Result<()>, ) -> Self
Construct an Extension from parts.
You generally want to use sqlite3_ext_init instead of this function.
Sourcepub fn register_auto(&'static self) -> Result<()>
pub fn register_auto(&'static self) -> Result<()>
Register this extension as an automatic extension.
The provided method will be invoked on all database connections opened in the
future. For more information, consult the SQLite documentation for
sqlite3_auto_extension.
Requires SQLite 3.8.7.
Sourcepub fn reset_auto()
pub fn reset_auto()
Remove all registered automatic extensions.
For more information, consult the SQLite documentation for
sqlite3_reset_auto_extension.
Requires SQLite 3.8.7. On earlier verions this method is a no-op.
Sourcepub fn cancel_auto(&'static self) -> Result<bool>
pub fn cancel_auto(&'static self) -> Result<bool>
Remove a previously-registered automatic extension.
For more information, consult the SQLite documentation for
sqlite3_cancel_auto_extension.
Requires SQLite 3.8.7.