pub trait VfsStore<File, AppData> {
// Required methods
fn add_file(vfs: *mut sqlite3_vfs, file: &str, flags: i32) -> VfsResult<()>;
fn contains_file(vfs: *mut sqlite3_vfs, file: &str) -> VfsResult<bool>;
fn delete_file(vfs: *mut sqlite3_vfs, file: &str) -> VfsResult<()>;
fn with_file<F: Fn(&File) -> i32>(
vfs_file: &SQLiteVfsFile,
f: F,
) -> VfsResult<i32>;
fn with_file_mut<F: Fn(&mut File) -> i32>(
vfs_file: &SQLiteVfsFile,
f: F,
) -> VfsResult<i32>;
// Provided methods
unsafe fn app_data(vfs: *mut sqlite3_vfs) -> &'static VfsAppData<AppData> { ... }
fn name2path(vfs: *mut sqlite3_vfs, file: &str) -> VfsResult<String> { ... }
}
Expand description
Make changes to files
Required Methods§
Sourcefn add_file(vfs: *mut sqlite3_vfs, file: &str, flags: i32) -> VfsResult<()>
fn add_file(vfs: *mut sqlite3_vfs, file: &str, flags: i32) -> VfsResult<()>
Adding files to the Store, use for xOpen
and xAccess
Sourcefn contains_file(vfs: *mut sqlite3_vfs, file: &str) -> VfsResult<bool>
fn contains_file(vfs: *mut sqlite3_vfs, file: &str) -> VfsResult<bool>
Checks if the specified file exists in the Store, use for xOpen
and xAccess
Sourcefn delete_file(vfs: *mut sqlite3_vfs, file: &str) -> VfsResult<()>
fn delete_file(vfs: *mut sqlite3_vfs, file: &str) -> VfsResult<()>
Delete the specified file in the Store, use for xClose
and xDelete
Sourcefn with_file<F: Fn(&File) -> i32>(
vfs_file: &SQLiteVfsFile,
f: F,
) -> VfsResult<i32>
fn with_file<F: Fn(&File) -> i32>( vfs_file: &SQLiteVfsFile, f: F, ) -> VfsResult<i32>
Read the file contents, use for xRead
, xFileSize
Sourcefn with_file_mut<F: Fn(&mut File) -> i32>(
vfs_file: &SQLiteVfsFile,
f: F,
) -> VfsResult<i32>
fn with_file_mut<F: Fn(&mut File) -> i32>( vfs_file: &SQLiteVfsFile, f: F, ) -> VfsResult<i32>
Write the file contents, use for xWrite
, xTruncate
and xSync
Provided Methods§
Sourceunsafe fn app_data(vfs: *mut sqlite3_vfs) -> &'static VfsAppData<AppData>
unsafe fn app_data(vfs: *mut sqlite3_vfs) -> &'static VfsAppData<AppData>
Convert pAppData to the type we need
§Safety
As long as it is set through the abstract VFS interface, it is safe
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.