1#![expect(non_snake_case, non_camel_case_types)]
2
3#[cfg(feature = "bundled-sqlcipher-vendored-openssl")]
5extern crate openssl_sys;
6
7pub use self::error::*;
8
9use core::mem;
10
11pub mod decimal;
12mod error;
13pub mod native;
14#[path = "../native_types.rs"]
15mod native_types;
16mod temporal;
17mod temporal_functions;
18mod unsigned;
19pub mod wire;
20
21#[must_use]
22pub fn SQLITE_STATIC() -> sqlite3_destructor_type {
23 None
24}
25
26#[must_use]
27pub fn SQLITE_TRANSIENT() -> sqlite3_destructor_type {
28 Some(unsafe { mem::transmute::<isize, unsafe extern "C" fn(*mut core::ffi::c_void)>(-1_isize) })
29}
30
31#[allow(dead_code, clippy::all)]
32mod bindings {
33 include!(concat!(env!("OUT_DIR"), "/bindgen.rs"));
34}
35pub use bindings::*;
36
37unsafe extern "C" {
40 #[link_name = "sqlite3_boxdb_column_blob"]
41 pub fn sqlite3_column_blob(
42 statement: *mut sqlite3_stmt,
43 column: i32,
44 ) -> *const core::ffi::c_void;
45 #[link_name = "sqlite3_boxdb_column_bytes"]
46 pub fn sqlite3_column_bytes(statement: *mut sqlite3_stmt, column: i32) -> i32;
47 #[link_name = "sqlite3_boxdb_column_bytes16"]
48 pub fn sqlite3_column_bytes16(statement: *mut sqlite3_stmt, column: i32) -> i32;
49}
50
51impl Default for sqlite3_vtab {
52 fn default() -> Self {
53 unsafe { mem::zeroed() }
54 }
55}
56
57impl Default for sqlite3_vtab_cursor {
58 fn default() -> Self {
59 unsafe { mem::zeroed() }
60 }
61}