pub trait SQLiteVfs<IO>where
IO: SQLiteIoMethods,{
const VERSION: i32;
const MAX_PATH_SIZE: i32 = 1_024i32;
Show 14 methods
// Required methods
fn sleep(dur: Duration);
fn random(buf: &mut [u8]);
fn epoch_timestamp_in_ms() -> i64;
// Provided methods
fn vfs(
vfs_name: *const i8,
app_data: *mut VfsAppData<<IO as SQLiteIoMethods>::AppData>,
) -> sqlite3_vfs { ... }
unsafe extern "C" fn xOpen(
pVfs: *mut sqlite3_vfs,
zName: *const i8,
pFile: *mut sqlite3_file,
flags: i32,
pOutFlags: *mut i32,
) -> i32 { ... }
unsafe extern "C" fn xOpenImpl(
pVfs: *mut sqlite3_vfs,
zName: *const i8,
pFile: *mut sqlite3_file,
flags: i32,
pOutFlags: *mut i32,
) -> i32 { ... }
unsafe extern "C" fn xDelete(
pVfs: *mut sqlite3_vfs,
zName: *const i8,
syncDir: i32,
) -> i32 { ... }
unsafe extern "C" fn xAccess(
pVfs: *mut sqlite3_vfs,
zName: *const i8,
flags: i32,
pResOut: *mut i32,
) -> i32 { ... }
unsafe extern "C" fn xFullPathname(
pVfs: *mut sqlite3_vfs,
zName: *const i8,
nOut: i32,
zOut: *mut i8,
) -> i32 { ... }
unsafe extern "C" fn xGetLastError(
pVfs: *mut sqlite3_vfs,
nOut: i32,
zOut: *mut i8,
) -> i32 { ... }
unsafe extern "C" fn xRandomness(
pVfs: *mut sqlite3_vfs,
nByte: i32,
zOut: *mut i8,
) -> i32 { ... }
unsafe extern "C" fn xCurrentTime(
pVfs: *mut sqlite3_vfs,
pTimeOut: *mut f64,
) -> i32 { ... }
unsafe extern "C" fn xCurrentTimeInt64(
pVfs: *mut sqlite3_vfs,
pOut: *mut i64,
) -> i32 { ... }
unsafe extern "C" fn xSleep(
pVfs: *mut sqlite3_vfs,
microseconds: i32,
) -> i32 { ... }
}Expand description
A trait that abstracts the sqlite3_vfs struct, allowing for a more idiomatic Rust implementation.
Required Associated Constants§
Provided Associated Constants§
const MAX_PATH_SIZE: i32 = 1_024i32
Required Methods§
Provided Methods§
fn vfs( vfs_name: *const i8, app_data: *mut VfsAppData<<IO as SQLiteIoMethods>::AppData>, ) -> sqlite3_vfs
unsafe extern "C" fn xOpen( pVfs: *mut sqlite3_vfs, zName: *const i8, pFile: *mut sqlite3_file, flags: i32, pOutFlags: *mut i32, ) -> i32
unsafe extern "C" fn xOpenImpl( pVfs: *mut sqlite3_vfs, zName: *const i8, pFile: *mut sqlite3_file, flags: i32, pOutFlags: *mut i32, ) -> i32
unsafe extern "C" fn xDelete( pVfs: *mut sqlite3_vfs, zName: *const i8, syncDir: i32, ) -> i32
unsafe extern "C" fn xAccess( pVfs: *mut sqlite3_vfs, zName: *const i8, flags: i32, pResOut: *mut i32, ) -> i32
unsafe extern "C" fn xFullPathname( pVfs: *mut sqlite3_vfs, zName: *const i8, nOut: i32, zOut: *mut i8, ) -> i32
unsafe extern "C" fn xGetLastError( pVfs: *mut sqlite3_vfs, nOut: i32, zOut: *mut i8, ) -> i32
Sourceunsafe extern "C" fn xRandomness(
pVfs: *mut sqlite3_vfs,
nByte: i32,
zOut: *mut i8,
) -> i32
unsafe extern "C" fn xRandomness( pVfs: *mut sqlite3_vfs, nByte: i32, zOut: *mut i8, ) -> i32
Sourceunsafe extern "C" fn xCurrentTime(
pVfs: *mut sqlite3_vfs,
pTimeOut: *mut f64,
) -> i32
unsafe extern "C" fn xCurrentTime( pVfs: *mut sqlite3_vfs, pTimeOut: *mut f64, ) -> i32
Sourceunsafe extern "C" fn xCurrentTimeInt64(
pVfs: *mut sqlite3_vfs,
pOut: *mut i64,
) -> i32
unsafe extern "C" fn xCurrentTimeInt64( pVfs: *mut sqlite3_vfs, pOut: *mut i64, ) -> i32
unsafe extern "C" fn xSleep( pVfs: *mut sqlite3_vfs, microseconds: i32, ) -> i32
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.