pub const __GNUC_VA_LIST: u32 = 1;
pub const SQLITE_VERSION: &[u8; 7] = b"3.43.0\0";
pub const SQLITE_VERSION_NUMBER: u32 = 3043000;
pub const SQLITE_SOURCE_ID: &[u8; 85] =
    b"2023-05-23 11:47:56 cec49c7d93362f527f0b4744cd1ae95d44a79671d49d69baa77fda70be29alt1\0";
pub const LIBSQL_VERSION: &[u8; 6] = b"0.2.1\0";
pub const SQLITE_OK: u32 = 0;
pub const SQLITE_ERROR: u32 = 1;
pub const SQLITE_INTERNAL: u32 = 2;
pub const SQLITE_PERM: u32 = 3;
pub const SQLITE_ABORT: u32 = 4;
pub const SQLITE_BUSY: u32 = 5;
pub const SQLITE_LOCKED: u32 = 6;
pub const SQLITE_NOMEM: u32 = 7;
pub const SQLITE_READONLY: u32 = 8;
pub const SQLITE_INTERRUPT: u32 = 9;
pub const SQLITE_IOERR: u32 = 10;
pub const SQLITE_CORRUPT: u32 = 11;
pub const SQLITE_NOTFOUND: u32 = 12;
pub const SQLITE_FULL: u32 = 13;
pub const SQLITE_CANTOPEN: u32 = 14;
pub const SQLITE_PROTOCOL: u32 = 15;
pub const SQLITE_EMPTY: u32 = 16;
pub const SQLITE_SCHEMA: u32 = 17;
pub const SQLITE_TOOBIG: u32 = 18;
pub const SQLITE_CONSTRAINT: u32 = 19;
pub const SQLITE_MISMATCH: u32 = 20;
pub const SQLITE_MISUSE: u32 = 21;
pub const SQLITE_NOLFS: u32 = 22;
pub const SQLITE_AUTH: u32 = 23;
pub const SQLITE_FORMAT: u32 = 24;
pub const SQLITE_RANGE: u32 = 25;
pub const SQLITE_NOTADB: u32 = 26;
pub const SQLITE_NOTICE: u32 = 27;
pub const SQLITE_WARNING: u32 = 28;
pub const SQLITE_ROW: u32 = 100;
pub const SQLITE_DONE: u32 = 101;
pub const SQLITE_ERROR_MISSING_COLLSEQ: u32 = 257;
pub const SQLITE_ERROR_RETRY: u32 = 513;
pub const SQLITE_ERROR_SNAPSHOT: u32 = 769;
pub const SQLITE_IOERR_READ: u32 = 266;
pub const SQLITE_IOERR_SHORT_READ: u32 = 522;
pub const SQLITE_IOERR_WRITE: u32 = 778;
pub const SQLITE_IOERR_FSYNC: u32 = 1034;
pub const SQLITE_IOERR_DIR_FSYNC: u32 = 1290;
pub const SQLITE_IOERR_TRUNCATE: u32 = 1546;
pub const SQLITE_IOERR_FSTAT: u32 = 1802;
pub const SQLITE_IOERR_UNLOCK: u32 = 2058;
pub const SQLITE_IOERR_RDLOCK: u32 = 2314;
pub const SQLITE_IOERR_DELETE: u32 = 2570;
pub const SQLITE_IOERR_BLOCKED: u32 = 2826;
pub const SQLITE_IOERR_NOMEM: u32 = 3082;
pub const SQLITE_IOERR_ACCESS: u32 = 3338;
pub const SQLITE_IOERR_CHECKRESERVEDLOCK: u32 = 3594;
pub const SQLITE_IOERR_LOCK: u32 = 3850;
pub const SQLITE_IOERR_CLOSE: u32 = 4106;
pub const SQLITE_IOERR_DIR_CLOSE: u32 = 4362;
pub const SQLITE_IOERR_SHMOPEN: u32 = 4618;
pub const SQLITE_IOERR_SHMSIZE: u32 = 4874;
pub const SQLITE_IOERR_SHMLOCK: u32 = 5130;
pub const SQLITE_IOERR_SHMMAP: u32 = 5386;
pub const SQLITE_IOERR_SEEK: u32 = 5642;
pub const SQLITE_IOERR_DELETE_NOENT: u32 = 5898;
pub const SQLITE_IOERR_MMAP: u32 = 6154;
pub const SQLITE_IOERR_GETTEMPPATH: u32 = 6410;
pub const SQLITE_IOERR_CONVPATH: u32 = 6666;
pub const SQLITE_IOERR_VNODE: u32 = 6922;
pub const SQLITE_IOERR_AUTH: u32 = 7178;
pub const SQLITE_IOERR_BEGIN_ATOMIC: u32 = 7434;
pub const SQLITE_IOERR_COMMIT_ATOMIC: u32 = 7690;
pub const SQLITE_IOERR_ROLLBACK_ATOMIC: u32 = 7946;
pub const SQLITE_IOERR_DATA: u32 = 8202;
pub const SQLITE_IOERR_CORRUPTFS: u32 = 8458;
pub const SQLITE_LOCKED_SHAREDCACHE: u32 = 262;
pub const SQLITE_LOCKED_VTAB: u32 = 518;
pub const SQLITE_BUSY_RECOVERY: u32 = 261;
pub const SQLITE_BUSY_SNAPSHOT: u32 = 517;
pub const SQLITE_BUSY_TIMEOUT: u32 = 773;
pub const SQLITE_CANTOPEN_NOTEMPDIR: u32 = 270;
pub const SQLITE_CANTOPEN_ISDIR: u32 = 526;
pub const SQLITE_CANTOPEN_FULLPATH: u32 = 782;
pub const SQLITE_CANTOPEN_CONVPATH: u32 = 1038;
pub const SQLITE_CANTOPEN_DIRTYWAL: u32 = 1294;
pub const SQLITE_CANTOPEN_SYMLINK: u32 = 1550;
pub const SQLITE_CORRUPT_VTAB: u32 = 267;
pub const SQLITE_CORRUPT_SEQUENCE: u32 = 523;
pub const SQLITE_CORRUPT_INDEX: u32 = 779;
pub const SQLITE_READONLY_RECOVERY: u32 = 264;
pub const SQLITE_READONLY_CANTLOCK: u32 = 520;
pub const SQLITE_READONLY_ROLLBACK: u32 = 776;
pub const SQLITE_READONLY_DBMOVED: u32 = 1032;
pub const SQLITE_READONLY_CANTINIT: u32 = 1288;
pub const SQLITE_READONLY_DIRECTORY: u32 = 1544;
pub const SQLITE_ABORT_ROLLBACK: u32 = 516;
pub const SQLITE_CONSTRAINT_CHECK: u32 = 275;
pub const SQLITE_CONSTRAINT_COMMITHOOK: u32 = 531;
pub const SQLITE_CONSTRAINT_FOREIGNKEY: u32 = 787;
pub const SQLITE_CONSTRAINT_FUNCTION: u32 = 1043;
pub const SQLITE_CONSTRAINT_NOTNULL: u32 = 1299;
pub const SQLITE_CONSTRAINT_PRIMARYKEY: u32 = 1555;
pub const SQLITE_CONSTRAINT_TRIGGER: u32 = 1811;
pub const SQLITE_CONSTRAINT_UNIQUE: u32 = 2067;
pub const SQLITE_CONSTRAINT_VTAB: u32 = 2323;
pub const SQLITE_CONSTRAINT_ROWID: u32 = 2579;
pub const SQLITE_CONSTRAINT_PINNED: u32 = 2835;
pub const SQLITE_CONSTRAINT_DATATYPE: u32 = 3091;
pub const SQLITE_NOTICE_RECOVER_WAL: u32 = 283;
pub const SQLITE_NOTICE_RECOVER_ROLLBACK: u32 = 539;
pub const SQLITE_NOTICE_RBU: u32 = 795;
pub const SQLITE_WARNING_AUTOINDEX: u32 = 284;
pub const SQLITE_AUTH_USER: u32 = 279;
pub const SQLITE_OK_LOAD_PERMANENTLY: u32 = 256;
pub const SQLITE_OK_SYMLINK: u32 = 512;
pub const SQLITE_OPEN_READONLY: u32 = 1;
pub const SQLITE_OPEN_READWRITE: u32 = 2;
pub const SQLITE_OPEN_CREATE: u32 = 4;
pub const SQLITE_OPEN_DELETEONCLOSE: u32 = 8;
pub const SQLITE_OPEN_EXCLUSIVE: u32 = 16;
pub const SQLITE_OPEN_AUTOPROXY: u32 = 32;
pub const SQLITE_OPEN_URI: u32 = 64;
pub const SQLITE_OPEN_MEMORY: u32 = 128;
pub const SQLITE_OPEN_MAIN_DB: u32 = 256;
pub const SQLITE_OPEN_TEMP_DB: u32 = 512;
pub const SQLITE_OPEN_TRANSIENT_DB: u32 = 1024;
pub const SQLITE_OPEN_MAIN_JOURNAL: u32 = 2048;
pub const SQLITE_OPEN_TEMP_JOURNAL: u32 = 4096;
pub const SQLITE_OPEN_SUBJOURNAL: u32 = 8192;
pub const SQLITE_OPEN_SUPER_JOURNAL: u32 = 16384;
pub const SQLITE_OPEN_NOMUTEX: u32 = 32768;
pub const SQLITE_OPEN_FULLMUTEX: u32 = 65536;
pub const SQLITE_OPEN_SHAREDCACHE: u32 = 131072;
pub const SQLITE_OPEN_PRIVATECACHE: u32 = 262144;
pub const SQLITE_OPEN_WAL: u32 = 524288;
pub const SQLITE_OPEN_NOFOLLOW: u32 = 16777216;
pub const SQLITE_OPEN_EXRESCODE: u32 = 33554432;
pub const SQLITE_OPEN_MASTER_JOURNAL: u32 = 16384;
pub const SQLITE_IOCAP_ATOMIC: u32 = 1;
pub const SQLITE_IOCAP_ATOMIC512: u32 = 2;
pub const SQLITE_IOCAP_ATOMIC1K: u32 = 4;
pub const SQLITE_IOCAP_ATOMIC2K: u32 = 8;
pub const SQLITE_IOCAP_ATOMIC4K: u32 = 16;
pub const SQLITE_IOCAP_ATOMIC8K: u32 = 32;
pub const SQLITE_IOCAP_ATOMIC16K: u32 = 64;
pub const SQLITE_IOCAP_ATOMIC32K: u32 = 128;
pub const SQLITE_IOCAP_ATOMIC64K: u32 = 256;
pub const SQLITE_IOCAP_SAFE_APPEND: u32 = 512;
pub const SQLITE_IOCAP_SEQUENTIAL: u32 = 1024;
pub const SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN: u32 = 2048;
pub const SQLITE_IOCAP_POWERSAFE_OVERWRITE: u32 = 4096;
pub const SQLITE_IOCAP_IMMUTABLE: u32 = 8192;
pub const SQLITE_IOCAP_BATCH_ATOMIC: u32 = 16384;
pub const SQLITE_LOCK_NONE: u32 = 0;
pub const SQLITE_LOCK_SHARED: u32 = 1;
pub const SQLITE_LOCK_RESERVED: u32 = 2;
pub const SQLITE_LOCK_PENDING: u32 = 3;
pub const SQLITE_LOCK_EXCLUSIVE: u32 = 4;
pub const SQLITE_SYNC_NORMAL: u32 = 2;
pub const SQLITE_SYNC_FULL: u32 = 3;
pub const SQLITE_SYNC_DATAONLY: u32 = 16;
pub const SQLITE_FCNTL_LOCKSTATE: u32 = 1;
pub const SQLITE_FCNTL_GET_LOCKPROXYFILE: u32 = 2;
pub const SQLITE_FCNTL_SET_LOCKPROXYFILE: u32 = 3;
pub const SQLITE_FCNTL_LAST_ERRNO: u32 = 4;
pub const SQLITE_FCNTL_SIZE_HINT: u32 = 5;
pub const SQLITE_FCNTL_CHUNK_SIZE: u32 = 6;
pub const SQLITE_FCNTL_FILE_POINTER: u32 = 7;
pub const SQLITE_FCNTL_SYNC_OMITTED: u32 = 8;
pub const SQLITE_FCNTL_WIN32_AV_RETRY: u32 = 9;
pub const SQLITE_FCNTL_PERSIST_WAL: u32 = 10;
pub const SQLITE_FCNTL_OVERWRITE: u32 = 11;
pub const SQLITE_FCNTL_VFSNAME: u32 = 12;
pub const SQLITE_FCNTL_POWERSAFE_OVERWRITE: u32 = 13;
pub const SQLITE_FCNTL_PRAGMA: u32 = 14;
pub const SQLITE_FCNTL_BUSYHANDLER: u32 = 15;
pub const SQLITE_FCNTL_TEMPFILENAME: u32 = 16;
pub const SQLITE_FCNTL_MMAP_SIZE: u32 = 18;
pub const SQLITE_FCNTL_TRACE: u32 = 19;
pub const SQLITE_FCNTL_HAS_MOVED: u32 = 20;
pub const SQLITE_FCNTL_SYNC: u32 = 21;
pub const SQLITE_FCNTL_COMMIT_PHASETWO: u32 = 22;
pub const SQLITE_FCNTL_WIN32_SET_HANDLE: u32 = 23;
pub const SQLITE_FCNTL_WAL_BLOCK: u32 = 24;
pub const SQLITE_FCNTL_ZIPVFS: u32 = 25;
pub const SQLITE_FCNTL_RBU: u32 = 26;
pub const SQLITE_FCNTL_VFS_POINTER: u32 = 27;
pub const SQLITE_FCNTL_JOURNAL_POINTER: u32 = 28;
pub const SQLITE_FCNTL_WIN32_GET_HANDLE: u32 = 29;
pub const SQLITE_FCNTL_PDB: u32 = 30;
pub const SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: u32 = 31;
pub const SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: u32 = 32;
pub const SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: u32 = 33;
pub const SQLITE_FCNTL_LOCK_TIMEOUT: u32 = 34;
pub const SQLITE_FCNTL_DATA_VERSION: u32 = 35;
pub const SQLITE_FCNTL_SIZE_LIMIT: u32 = 36;
pub const SQLITE_FCNTL_CKPT_DONE: u32 = 37;
pub const SQLITE_FCNTL_RESERVE_BYTES: u32 = 38;
pub const SQLITE_FCNTL_CKPT_START: u32 = 39;
pub const SQLITE_FCNTL_EXTERNAL_READER: u32 = 40;
pub const SQLITE_FCNTL_CKSM_FILE: u32 = 41;
pub const SQLITE_FCNTL_RESET_CACHE: u32 = 42;
pub const SQLITE_FCNTL_WAL_METHODS_POINTER: u32 = 129;
pub const SQLITE_GET_LOCKPROXYFILE: u32 = 2;
pub const SQLITE_SET_LOCKPROXYFILE: u32 = 3;
pub const SQLITE_LAST_ERRNO: u32 = 4;
pub const SQLITE_ACCESS_EXISTS: u32 = 0;
pub const SQLITE_ACCESS_READWRITE: u32 = 1;
pub const SQLITE_ACCESS_READ: u32 = 2;
pub const SQLITE_SHM_UNLOCK: u32 = 1;
pub const SQLITE_SHM_LOCK: u32 = 2;
pub const SQLITE_SHM_SHARED: u32 = 4;
pub const SQLITE_SHM_EXCLUSIVE: u32 = 8;
pub const SQLITE_SHM_NLOCK: u32 = 8;
pub const SQLITE_CONFIG_SINGLETHREAD: u32 = 1;
pub const SQLITE_CONFIG_MULTITHREAD: u32 = 2;
pub const SQLITE_CONFIG_SERIALIZED: u32 = 3;
pub const SQLITE_CONFIG_MALLOC: u32 = 4;
pub const SQLITE_CONFIG_GETMALLOC: u32 = 5;
pub const SQLITE_CONFIG_SCRATCH: u32 = 6;
pub const SQLITE_CONFIG_PAGECACHE: u32 = 7;
pub const SQLITE_CONFIG_HEAP: u32 = 8;
pub const SQLITE_CONFIG_MEMSTATUS: u32 = 9;
pub const SQLITE_CONFIG_MUTEX: u32 = 10;
pub const SQLITE_CONFIG_GETMUTEX: u32 = 11;
pub const SQLITE_CONFIG_LOOKASIDE: u32 = 13;
pub const SQLITE_CONFIG_PCACHE: u32 = 14;
pub const SQLITE_CONFIG_GETPCACHE: u32 = 15;
pub const SQLITE_CONFIG_LOG: u32 = 16;
pub const SQLITE_CONFIG_URI: u32 = 17;
pub const SQLITE_CONFIG_PCACHE2: u32 = 18;
pub const SQLITE_CONFIG_GETPCACHE2: u32 = 19;
pub const SQLITE_CONFIG_COVERING_INDEX_SCAN: u32 = 20;
pub const SQLITE_CONFIG_SQLLOG: u32 = 21;
pub const SQLITE_CONFIG_MMAP_SIZE: u32 = 22;
pub const SQLITE_CONFIG_WIN32_HEAPSIZE: u32 = 23;
pub const SQLITE_CONFIG_PCACHE_HDRSZ: u32 = 24;
pub const SQLITE_CONFIG_PMASZ: u32 = 25;
pub const SQLITE_CONFIG_STMTJRNL_SPILL: u32 = 26;
pub const SQLITE_CONFIG_SMALL_MALLOC: u32 = 27;
pub const SQLITE_CONFIG_SORTERREF_SIZE: u32 = 28;
pub const SQLITE_CONFIG_MEMDB_MAXSIZE: u32 = 29;
pub const SQLITE_DBCONFIG_MAINDBNAME: u32 = 1000;
pub const SQLITE_DBCONFIG_LOOKASIDE: u32 = 1001;
pub const SQLITE_DBCONFIG_ENABLE_FKEY: u32 = 1002;
pub const SQLITE_DBCONFIG_ENABLE_TRIGGER: u32 = 1003;
pub const SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER: u32 = 1004;
pub const SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION: u32 = 1005;
pub const SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE: u32 = 1006;
pub const SQLITE_DBCONFIG_ENABLE_QPSG: u32 = 1007;
pub const SQLITE_DBCONFIG_TRIGGER_EQP: u32 = 1008;
pub const SQLITE_DBCONFIG_RESET_DATABASE: u32 = 1009;
pub const SQLITE_DBCONFIG_DEFENSIVE: u32 = 1010;
pub const SQLITE_DBCONFIG_WRITABLE_SCHEMA: u32 = 1011;
pub const SQLITE_DBCONFIG_LEGACY_ALTER_TABLE: u32 = 1012;
pub const SQLITE_DBCONFIG_DQS_DML: u32 = 1013;
pub const SQLITE_DBCONFIG_DQS_DDL: u32 = 1014;
pub const SQLITE_DBCONFIG_ENABLE_VIEW: u32 = 1015;
pub const SQLITE_DBCONFIG_LEGACY_FILE_FORMAT: u32 = 1016;
pub const SQLITE_DBCONFIG_TRUSTED_SCHEMA: u32 = 1017;
pub const SQLITE_DBCONFIG_STMT_SCANSTATUS: u32 = 1018;
pub const SQLITE_DBCONFIG_REVERSE_SCANORDER: u32 = 1019;
pub const SQLITE_DBCONFIG_MAX: u32 = 1019;
pub const SQLITE_DENY: u32 = 1;
pub const SQLITE_IGNORE: u32 = 2;
pub const SQLITE_CREATE_INDEX: u32 = 1;
pub const SQLITE_CREATE_TABLE: u32 = 2;
pub const SQLITE_CREATE_TEMP_INDEX: u32 = 3;
pub const SQLITE_CREATE_TEMP_TABLE: u32 = 4;
pub const SQLITE_CREATE_TEMP_TRIGGER: u32 = 5;
pub const SQLITE_CREATE_TEMP_VIEW: u32 = 6;
pub const SQLITE_CREATE_TRIGGER: u32 = 7;
pub const SQLITE_CREATE_VIEW: u32 = 8;
pub const SQLITE_DELETE: u32 = 9;
pub const SQLITE_DROP_INDEX: u32 = 10;
pub const SQLITE_DROP_TABLE: u32 = 11;
pub const SQLITE_DROP_TEMP_INDEX: u32 = 12;
pub const SQLITE_DROP_TEMP_TABLE: u32 = 13;
pub const SQLITE_DROP_TEMP_TRIGGER: u32 = 14;
pub const SQLITE_DROP_TEMP_VIEW: u32 = 15;
pub const SQLITE_DROP_TRIGGER: u32 = 16;
pub const SQLITE_DROP_VIEW: u32 = 17;
pub const SQLITE_INSERT: u32 = 18;
pub const SQLITE_PRAGMA: u32 = 19;
pub const SQLITE_READ: u32 = 20;
pub const SQLITE_SELECT: u32 = 21;
pub const SQLITE_TRANSACTION: u32 = 22;
pub const SQLITE_UPDATE: u32 = 23;
pub const SQLITE_ATTACH: u32 = 24;
pub const SQLITE_DETACH: u32 = 25;
pub const SQLITE_ALTER_TABLE: u32 = 26;
pub const SQLITE_REINDEX: u32 = 27;
pub const SQLITE_ANALYZE: u32 = 28;
pub const SQLITE_CREATE_VTABLE: u32 = 29;
pub const SQLITE_DROP_VTABLE: u32 = 30;
pub const SQLITE_FUNCTION: u32 = 31;
pub const SQLITE_SAVEPOINT: u32 = 32;
pub const SQLITE_COPY: u32 = 0;
pub const SQLITE_RECURSIVE: u32 = 33;
pub const SQLITE_TRACE_STMT: u32 = 1;
pub const SQLITE_TRACE_PROFILE: u32 = 2;
pub const SQLITE_TRACE_ROW: u32 = 4;
pub const SQLITE_TRACE_CLOSE: u32 = 8;
pub const SQLITE_LIMIT_LENGTH: u32 = 0;
pub const SQLITE_LIMIT_SQL_LENGTH: u32 = 1;
pub const SQLITE_LIMIT_COLUMN: u32 = 2;
pub const SQLITE_LIMIT_EXPR_DEPTH: u32 = 3;
pub const SQLITE_LIMIT_COMPOUND_SELECT: u32 = 4;
pub const SQLITE_LIMIT_VDBE_OP: u32 = 5;
pub const SQLITE_LIMIT_FUNCTION_ARG: u32 = 6;
pub const SQLITE_LIMIT_ATTACHED: u32 = 7;
pub const SQLITE_LIMIT_LIKE_PATTERN_LENGTH: u32 = 8;
pub const SQLITE_LIMIT_VARIABLE_NUMBER: u32 = 9;
pub const SQLITE_LIMIT_TRIGGER_DEPTH: u32 = 10;
pub const SQLITE_LIMIT_WORKER_THREADS: u32 = 11;
pub const SQLITE_PREPARE_PERSISTENT: u32 = 1;
pub const SQLITE_PREPARE_NORMALIZE: u32 = 2;
pub const SQLITE_PREPARE_NO_VTAB: u32 = 4;
pub const SQLITE_INTEGER: u32 = 1;
pub const SQLITE_FLOAT: u32 = 2;
pub const SQLITE_BLOB: u32 = 4;
pub const SQLITE_NULL: u32 = 5;
pub const SQLITE_TEXT: u32 = 3;
pub const SQLITE3_TEXT: u32 = 3;
pub const SQLITE_UTF8: u32 = 1;
pub const SQLITE_UTF16LE: u32 = 2;
pub const SQLITE_UTF16BE: u32 = 3;
pub const SQLITE_UTF16: u32 = 4;
pub const SQLITE_ANY: u32 = 5;
pub const SQLITE_UTF16_ALIGNED: u32 = 8;
pub const SQLITE_DETERMINISTIC: u32 = 2048;
pub const SQLITE_DIRECTONLY: u32 = 524288;
pub const SQLITE_SUBTYPE: u32 = 1048576;
pub const SQLITE_INNOCUOUS: u32 = 2097152;
pub const SQLITE_WIN32_DATA_DIRECTORY_TYPE: u32 = 1;
pub const SQLITE_WIN32_TEMP_DIRECTORY_TYPE: u32 = 2;
pub const SQLITE_TXN_NONE: u32 = 0;
pub const SQLITE_TXN_READ: u32 = 1;
pub const SQLITE_TXN_WRITE: u32 = 2;
pub const SQLITE_INDEX_SCAN_UNIQUE: u32 = 1;
pub const SQLITE_INDEX_CONSTRAINT_EQ: u32 = 2;
pub const SQLITE_INDEX_CONSTRAINT_GT: u32 = 4;
pub const SQLITE_INDEX_CONSTRAINT_LE: u32 = 8;
pub const SQLITE_INDEX_CONSTRAINT_LT: u32 = 16;
pub const SQLITE_INDEX_CONSTRAINT_GE: u32 = 32;
pub const SQLITE_INDEX_CONSTRAINT_MATCH: u32 = 64;
pub const SQLITE_INDEX_CONSTRAINT_LIKE: u32 = 65;
pub const SQLITE_INDEX_CONSTRAINT_GLOB: u32 = 66;
pub const SQLITE_INDEX_CONSTRAINT_REGEXP: u32 = 67;
pub const SQLITE_INDEX_CONSTRAINT_NE: u32 = 68;
pub const SQLITE_INDEX_CONSTRAINT_ISNOT: u32 = 69;
pub const SQLITE_INDEX_CONSTRAINT_ISNOTNULL: u32 = 70;
pub const SQLITE_INDEX_CONSTRAINT_ISNULL: u32 = 71;
pub const SQLITE_INDEX_CONSTRAINT_IS: u32 = 72;
pub const SQLITE_INDEX_CONSTRAINT_LIMIT: u32 = 73;
pub const SQLITE_INDEX_CONSTRAINT_OFFSET: u32 = 74;
pub const SQLITE_INDEX_CONSTRAINT_FUNCTION: u32 = 150;
pub const SQLITE_MUTEX_FAST: u32 = 0;
pub const SQLITE_MUTEX_RECURSIVE: u32 = 1;
pub const SQLITE_MUTEX_STATIC_MAIN: u32 = 2;
pub const SQLITE_MUTEX_STATIC_MEM: u32 = 3;
pub const SQLITE_MUTEX_STATIC_MEM2: u32 = 4;
pub const SQLITE_MUTEX_STATIC_OPEN: u32 = 4;
pub const SQLITE_MUTEX_STATIC_PRNG: u32 = 5;
pub const SQLITE_MUTEX_STATIC_LRU: u32 = 6;
pub const SQLITE_MUTEX_STATIC_LRU2: u32 = 7;
pub const SQLITE_MUTEX_STATIC_PMEM: u32 = 7;
pub const SQLITE_MUTEX_STATIC_APP1: u32 = 8;
pub const SQLITE_MUTEX_STATIC_APP2: u32 = 9;
pub const SQLITE_MUTEX_STATIC_APP3: u32 = 10;
pub const SQLITE_MUTEX_STATIC_VFS1: u32 = 11;
pub const SQLITE_MUTEX_STATIC_VFS2: u32 = 12;
pub const SQLITE_MUTEX_STATIC_VFS3: u32 = 13;
pub const SQLITE_MUTEX_STATIC_MASTER: u32 = 2;
pub const SQLITE_TESTCTRL_FIRST: u32 = 5;
pub const SQLITE_TESTCTRL_PRNG_SAVE: u32 = 5;
pub const SQLITE_TESTCTRL_PRNG_RESTORE: u32 = 6;
pub const SQLITE_TESTCTRL_PRNG_RESET: u32 = 7;
pub const SQLITE_TESTCTRL_BITVEC_TEST: u32 = 8;
pub const SQLITE_TESTCTRL_FAULT_INSTALL: u32 = 9;
pub const SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS: u32 = 10;
pub const SQLITE_TESTCTRL_PENDING_BYTE: u32 = 11;
pub const SQLITE_TESTCTRL_ASSERT: u32 = 12;
pub const SQLITE_TESTCTRL_ALWAYS: u32 = 13;
pub const SQLITE_TESTCTRL_RESERVE: u32 = 14;
pub const SQLITE_TESTCTRL_OPTIMIZATIONS: u32 = 15;
pub const SQLITE_TESTCTRL_ISKEYWORD: u32 = 16;
pub const SQLITE_TESTCTRL_SCRATCHMALLOC: u32 = 17;
pub const SQLITE_TESTCTRL_INTERNAL_FUNCTIONS: u32 = 17;
pub const SQLITE_TESTCTRL_LOCALTIME_FAULT: u32 = 18;
pub const SQLITE_TESTCTRL_EXPLAIN_STMT: u32 = 19;
pub const SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD: u32 = 19;
pub const SQLITE_TESTCTRL_NEVER_CORRUPT: u32 = 20;
pub const SQLITE_TESTCTRL_VDBE_COVERAGE: u32 = 21;
pub const SQLITE_TESTCTRL_BYTEORDER: u32 = 22;
pub const SQLITE_TESTCTRL_ISINIT: u32 = 23;
pub const SQLITE_TESTCTRL_SORTER_MMAP: u32 = 24;
pub const SQLITE_TESTCTRL_IMPOSTER: u32 = 25;
pub const SQLITE_TESTCTRL_PARSER_COVERAGE: u32 = 26;
pub const SQLITE_TESTCTRL_RESULT_INTREAL: u32 = 27;
pub const SQLITE_TESTCTRL_PRNG_SEED: u32 = 28;
pub const SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS: u32 = 29;
pub const SQLITE_TESTCTRL_SEEK_COUNT: u32 = 30;
pub const SQLITE_TESTCTRL_TRACEFLAGS: u32 = 31;
pub const SQLITE_TESTCTRL_TUNE: u32 = 32;
pub const SQLITE_TESTCTRL_LOGEST: u32 = 33;
pub const SQLITE_TESTCTRL_LAST: u32 = 33;
pub const SQLITE_STATUS_MEMORY_USED: u32 = 0;
pub const SQLITE_STATUS_PAGECACHE_USED: u32 = 1;
pub const SQLITE_STATUS_PAGECACHE_OVERFLOW: u32 = 2;
pub const SQLITE_STATUS_SCRATCH_USED: u32 = 3;
pub const SQLITE_STATUS_SCRATCH_OVERFLOW: u32 = 4;
pub const SQLITE_STATUS_MALLOC_SIZE: u32 = 5;
pub const SQLITE_STATUS_PARSER_STACK: u32 = 6;
pub const SQLITE_STATUS_PAGECACHE_SIZE: u32 = 7;
pub const SQLITE_STATUS_SCRATCH_SIZE: u32 = 8;
pub const SQLITE_STATUS_MALLOC_COUNT: u32 = 9;
pub const SQLITE_DBSTATUS_LOOKASIDE_USED: u32 = 0;
pub const SQLITE_DBSTATUS_CACHE_USED: u32 = 1;
pub const SQLITE_DBSTATUS_SCHEMA_USED: u32 = 2;
pub const SQLITE_DBSTATUS_STMT_USED: u32 = 3;
pub const SQLITE_DBSTATUS_LOOKASIDE_HIT: u32 = 4;
pub const SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE: u32 = 5;
pub const SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL: u32 = 6;
pub const SQLITE_DBSTATUS_CACHE_HIT: u32 = 7;
pub const SQLITE_DBSTATUS_CACHE_MISS: u32 = 8;
pub const SQLITE_DBSTATUS_CACHE_WRITE: u32 = 9;
pub const SQLITE_DBSTATUS_DEFERRED_FKS: u32 = 10;
pub const SQLITE_DBSTATUS_CACHE_USED_SHARED: u32 = 11;
pub const SQLITE_DBSTATUS_CACHE_SPILL: u32 = 12;
pub const SQLITE_DBSTATUS_MAX: u32 = 12;
pub const SQLITE_STMTSTATUS_FULLSCAN_STEP: u32 = 1;
pub const SQLITE_STMTSTATUS_SORT: u32 = 2;
pub const SQLITE_STMTSTATUS_AUTOINDEX: u32 = 3;
pub const SQLITE_STMTSTATUS_VM_STEP: u32 = 4;
pub const SQLITE_STMTSTATUS_REPREPARE: u32 = 5;
pub const SQLITE_STMTSTATUS_RUN: u32 = 6;
pub const SQLITE_STMTSTATUS_FILTER_MISS: u32 = 7;
pub const SQLITE_STMTSTATUS_FILTER_HIT: u32 = 8;
pub const SQLITE_STMTSTATUS_MEMUSED: u32 = 99;
pub const LIBSQL_STMTSTATUS_BASE: u32 = 1024;
pub const LIBSQL_STMTSTATUS_ROWS_READ: u32 = 1025;
pub const LIBSQL_STMTSTATUS_ROWS_WRITTEN: u32 = 1026;
pub const SQLITE_CHECKPOINT_PASSIVE: u32 = 0;
pub const SQLITE_CHECKPOINT_FULL: u32 = 1;
pub const SQLITE_CHECKPOINT_RESTART: u32 = 2;
pub const SQLITE_CHECKPOINT_TRUNCATE: u32 = 3;
pub const SQLITE_VTAB_CONSTRAINT_SUPPORT: u32 = 1;
pub const SQLITE_VTAB_INNOCUOUS: u32 = 2;
pub const SQLITE_VTAB_DIRECTONLY: u32 = 3;
pub const SQLITE_VTAB_USES_ALL_SCHEMAS: u32 = 4;
pub const SQLITE_ROLLBACK: u32 = 1;
pub const SQLITE_FAIL: u32 = 3;
pub const SQLITE_REPLACE: u32 = 5;
pub const SQLITE_SCANSTAT_NLOOP: u32 = 0;
pub const SQLITE_SCANSTAT_NVISIT: u32 = 1;
pub const SQLITE_SCANSTAT_EST: u32 = 2;
pub const SQLITE_SCANSTAT_NAME: u32 = 3;
pub const SQLITE_SCANSTAT_EXPLAIN: u32 = 4;
pub const SQLITE_SCANSTAT_SELECTID: u32 = 5;
pub const SQLITE_SCANSTAT_PARENTID: u32 = 6;
pub const SQLITE_SCANSTAT_NCYCLE: u32 = 7;
pub const SQLITE_SCANSTAT_COMPLEX: u32 = 1;
pub const SQLITE_SERIALIZE_NOCOPY: u32 = 1;
pub const SQLITE_DESERIALIZE_FREEONCLOSE: u32 = 1;
pub const SQLITE_DESERIALIZE_RESIZEABLE: u32 = 2;
pub const SQLITE_DESERIALIZE_READONLY: u32 = 4;
pub const NOT_WITHIN: u32 = 0;
pub const PARTLY_WITHIN: u32 = 1;
pub const FULLY_WITHIN: u32 = 2;
pub const FTS5_TOKENIZE_QUERY: u32 = 1;
pub const FTS5_TOKENIZE_PREFIX: u32 = 2;
pub const FTS5_TOKENIZE_DOCUMENT: u32 = 4;
pub const FTS5_TOKENIZE_AUX: u32 = 8;
pub const FTS5_TOKEN_COLOCATED: u32 = 1;
pub const WAL_SAVEPOINT_NDATA: u32 = 4;
pub type va_list = __builtin_va_list;
pub type __gnuc_va_list = __builtin_va_list;
extern "C" {
    pub static sqlite3_version: [::std::os::raw::c_char; 0usize];
}
extern "C" {
    pub fn sqlite3_libversion() -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_sourceid() -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_libversion_number() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn libsql_libversion() -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_compileoption_used(
        zOptName: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_compileoption_get(N: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_threadsafe() -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3 {
    _unused: [u8; 0],
}
pub type sqlite_int64 = ::std::os::raw::c_longlong;
pub type sqlite_uint64 = ::std::os::raw::c_ulonglong;
pub type sqlite3_int64 = sqlite_int64;
pub type sqlite3_uint64 = sqlite_uint64;
extern "C" {
    pub fn sqlite3_close(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_close_v2(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
}
pub type sqlite3_callback = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut ::std::os::raw::c_void,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::os::raw::c_char,
        arg4: *mut *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn sqlite3_exec(
        arg1: *mut sqlite3,
        sql: *const ::std::os::raw::c_char,
        callback: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_int,
                arg3: *mut *mut ::std::os::raw::c_char,
                arg4: *mut *mut ::std::os::raw::c_char,
            ) -> ::std::os::raw::c_int,
        >,
        arg2: *mut ::std::os::raw::c_void,
        errmsg: *mut *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_file {
    pub pMethods: *const sqlite3_io_methods,
}
#[test]
fn bindgen_test_layout_sqlite3_file() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_file> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_file>(),
        8usize,
        concat!("Size of: ", stringify!(sqlite3_file))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_file>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_file))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pMethods) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_file),
            "::",
            stringify!(pMethods)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_io_methods {
    pub iVersion: ::std::os::raw::c_int,
    pub xClose: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_file) -> ::std::os::raw::c_int,
    >,
    pub xRead: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            arg2: *mut ::std::os::raw::c_void,
            iAmt: ::std::os::raw::c_int,
            iOfst: sqlite3_int64,
        ) -> ::std::os::raw::c_int,
    >,
    pub xWrite: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            arg2: *const ::std::os::raw::c_void,
            iAmt: ::std::os::raw::c_int,
            iOfst: sqlite3_int64,
        ) -> ::std::os::raw::c_int,
    >,
    pub xTruncate: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_file, size: sqlite3_int64) -> ::std::os::raw::c_int,
    >,
    pub xSync: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            flags: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xFileSize: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            pSize: *mut sqlite3_int64,
        ) -> ::std::os::raw::c_int,
    >,
    pub xLock: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            arg2: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xUnlock: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            arg2: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xCheckReservedLock: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            pResOut: *mut ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xFileControl: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            op: ::std::os::raw::c_int,
            pArg: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub xSectorSize: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_file) -> ::std::os::raw::c_int,
    >,
    pub xDeviceCharacteristics: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_file) -> ::std::os::raw::c_int,
    >,
    pub xShmMap: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            iPg: ::std::os::raw::c_int,
            pgsz: ::std::os::raw::c_int,
            arg2: ::std::os::raw::c_int,
            arg3: *mut *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub xShmLock: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            offset: ::std::os::raw::c_int,
            n: ::std::os::raw::c_int,
            flags: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xShmBarrier: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_file)>,
    pub xShmUnmap: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            deleteFlag: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xFetch: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            iOfst: sqlite3_int64,
            iAmt: ::std::os::raw::c_int,
            pp: *mut *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub xUnfetch: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_file,
            iOfst: sqlite3_int64,
            p: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
}
#[test]
fn bindgen_test_layout_sqlite3_io_methods() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_io_methods> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_io_methods>(),
        152usize,
        concat!("Size of: ", stringify!(sqlite3_io_methods))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_io_methods>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_io_methods))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(iVersion)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xClose) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xClose)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRead) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xRead)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xWrite) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xWrite)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xTruncate) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xTruncate)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSync) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xSync)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFileSize) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xFileSize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xLock) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xLock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xUnlock) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xUnlock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCheckReservedLock) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xCheckReservedLock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFileControl) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xFileControl)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSectorSize) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xSectorSize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDeviceCharacteristics) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xDeviceCharacteristics)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xShmMap) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xShmMap)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xShmLock) as usize - ptr as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xShmLock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xShmBarrier) as usize - ptr as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xShmBarrier)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xShmUnmap) as usize - ptr as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xShmUnmap)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFetch) as usize - ptr as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xFetch)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xUnfetch) as usize - ptr as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_io_methods),
            "::",
            stringify!(xUnfetch)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_mutex {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_api_routines {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct libsql_api_routines {
    _unused: [u8; 0],
}
pub type sqlite3_filename = *const ::std::os::raw::c_char;
pub type sqlite3_syscall_ptr = ::std::option::Option<unsafe extern "C" fn()>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_vfs {
    pub iVersion: ::std::os::raw::c_int,
    pub szOsFile: ::std::os::raw::c_int,
    pub mxPathname: ::std::os::raw::c_int,
    pub pNext: *mut sqlite3_vfs,
    pub zName: *const ::std::os::raw::c_char,
    pub pAppData: *mut ::std::os::raw::c_void,
    pub xOpen: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            zName: sqlite3_filename,
            arg2: *mut sqlite3_file,
            flags: ::std::os::raw::c_int,
            pOutFlags: *mut ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xDelete: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            zName: *const ::std::os::raw::c_char,
            syncDir: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xAccess: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            zName: *const ::std::os::raw::c_char,
            flags: ::std::os::raw::c_int,
            pResOut: *mut ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xFullPathname: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            zName: *const ::std::os::raw::c_char,
            nOut: ::std::os::raw::c_int,
            zOut: *mut ::std::os::raw::c_char,
        ) -> ::std::os::raw::c_int,
    >,
    pub xDlOpen: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            zFilename: *const ::std::os::raw::c_char,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub xDlError: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            nByte: ::std::os::raw::c_int,
            zErrMsg: *mut ::std::os::raw::c_char,
        ),
    >,
    pub xDlSym: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            arg2: *mut ::std::os::raw::c_void,
            zSymbol: *const ::std::os::raw::c_char,
        ) -> ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut sqlite3_vfs,
                arg2: *mut ::std::os::raw::c_void,
                zSymbol: *const ::std::os::raw::c_char,
            ),
        >,
    >,
    pub xDlClose: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_vfs, arg2: *mut ::std::os::raw::c_void),
    >,
    pub xRandomness: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            nByte: ::std::os::raw::c_int,
            zOut: *mut ::std::os::raw::c_char,
        ) -> ::std::os::raw::c_int,
    >,
    pub xSleep: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            microseconds: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xCurrentTime: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_vfs, arg2: *mut f64) -> ::std::os::raw::c_int,
    >,
    pub xGetLastError: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            arg2: ::std::os::raw::c_int,
            arg3: *mut ::std::os::raw::c_char,
        ) -> ::std::os::raw::c_int,
    >,
    pub xCurrentTimeInt64: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            arg2: *mut sqlite3_int64,
        ) -> ::std::os::raw::c_int,
    >,
    pub xSetSystemCall: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            zName: *const ::std::os::raw::c_char,
            arg2: sqlite3_syscall_ptr,
        ) -> ::std::os::raw::c_int,
    >,
    pub xGetSystemCall: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            zName: *const ::std::os::raw::c_char,
        ) -> sqlite3_syscall_ptr,
    >,
    pub xNextSystemCall: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            zName: *const ::std::os::raw::c_char,
        ) -> *const ::std::os::raw::c_char,
    >,
}
#[test]
fn bindgen_test_layout_sqlite3_vfs() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_vfs> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_vfs>(),
        168usize,
        concat!("Size of: ", stringify!(sqlite3_vfs))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_vfs>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_vfs))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(iVersion)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).szOsFile) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(szOsFile)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mxPathname) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(mxPathname)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pNext) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(pNext)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).zName) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(zName)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pAppData) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(pAppData)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xOpen) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xOpen)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDelete) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xDelete)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xAccess) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xAccess)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFullPathname) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xFullPathname)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDlOpen) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xDlOpen)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDlError) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xDlError)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDlSym) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xDlSym)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDlClose) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xDlClose)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRandomness) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xRandomness)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSleep) as usize - ptr as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xSleep)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCurrentTime) as usize - ptr as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xCurrentTime)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xGetLastError) as usize - ptr as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xGetLastError)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCurrentTimeInt64) as usize - ptr as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xCurrentTimeInt64)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSetSystemCall) as usize - ptr as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xSetSystemCall)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xGetSystemCall) as usize - ptr as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xGetSystemCall)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xNextSystemCall) as usize - ptr as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vfs),
            "::",
            stringify!(xNextSystemCall)
        )
    );
}
extern "C" {
    pub fn sqlite3_initialize() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_shutdown() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_os_init() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_os_end() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_config(arg1: ::std::os::raw::c_int, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_db_config(
        arg1: *mut sqlite3,
        op: ::std::os::raw::c_int,
        ...
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_mem_methods {
    pub xMalloc: ::std::option::Option<
        unsafe extern "C" fn(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void,
    >,
    pub xFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub xRealloc: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut ::std::os::raw::c_void,
            arg2: ::std::os::raw::c_int,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub xSize: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
    >,
    pub xRoundup: ::std::option::Option<
        unsafe extern "C" fn(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
    >,
    pub xInit: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
    >,
    pub xShutdown: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub pAppData: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_sqlite3_mem_methods() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_mem_methods> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_mem_methods>(),
        64usize,
        concat!("Size of: ", stringify!(sqlite3_mem_methods))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_mem_methods>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_mem_methods))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xMalloc) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mem_methods),
            "::",
            stringify!(xMalloc)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFree) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mem_methods),
            "::",
            stringify!(xFree)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRealloc) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mem_methods),
            "::",
            stringify!(xRealloc)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSize) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mem_methods),
            "::",
            stringify!(xSize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRoundup) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mem_methods),
            "::",
            stringify!(xRoundup)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xInit) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mem_methods),
            "::",
            stringify!(xInit)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xShutdown) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mem_methods),
            "::",
            stringify!(xShutdown)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pAppData) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mem_methods),
            "::",
            stringify!(pAppData)
        )
    );
}
extern "C" {
    pub fn sqlite3_extended_result_codes(
        arg1: *mut sqlite3,
        onoff: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_last_insert_rowid(arg1: *mut sqlite3) -> sqlite3_int64;
}
extern "C" {
    pub fn sqlite3_set_last_insert_rowid(arg1: *mut sqlite3, arg2: sqlite3_int64);
}
extern "C" {
    pub fn sqlite3_changes(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_changes64(arg1: *mut sqlite3) -> sqlite3_int64;
}
extern "C" {
    pub fn sqlite3_total_changes(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_total_changes64(arg1: *mut sqlite3) -> sqlite3_int64;
}
extern "C" {
    pub fn sqlite3_interrupt(arg1: *mut sqlite3);
}
extern "C" {
    pub fn sqlite3_is_interrupted(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_complete(sql: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_complete16(sql: *const ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_busy_handler(
        arg1: *mut sqlite3,
        arg2: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_int,
            ) -> ::std::os::raw::c_int,
        >,
        arg3: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_busy_timeout(
        arg1: *mut sqlite3,
        ms: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_get_table(
        db: *mut sqlite3,
        zSql: *const ::std::os::raw::c_char,
        pazResult: *mut *mut *mut ::std::os::raw::c_char,
        pnRow: *mut ::std::os::raw::c_int,
        pnColumn: *mut ::std::os::raw::c_int,
        pzErrmsg: *mut *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_free_table(result: *mut *mut ::std::os::raw::c_char);
}
extern "C" {
    pub fn sqlite3_mprintf(arg1: *const ::std::os::raw::c_char, ...)
        -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_vmprintf(
        arg1: *const ::std::os::raw::c_char,
        arg2: *mut __va_list_tag,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_snprintf(
        arg1: ::std::os::raw::c_int,
        arg2: *mut ::std::os::raw::c_char,
        arg3: *const ::std::os::raw::c_char,
        ...
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_vsnprintf(
        arg1: ::std::os::raw::c_int,
        arg2: *mut ::std::os::raw::c_char,
        arg3: *const ::std::os::raw::c_char,
        arg4: *mut __va_list_tag,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_malloc(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_malloc64(arg1: sqlite3_uint64) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_realloc(
        arg1: *mut ::std::os::raw::c_void,
        arg2: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_realloc64(
        arg1: *mut ::std::os::raw::c_void,
        arg2: sqlite3_uint64,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_free(arg1: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn sqlite3_msize(arg1: *mut ::std::os::raw::c_void) -> sqlite3_uint64;
}
extern "C" {
    pub fn sqlite3_memory_used() -> sqlite3_int64;
}
extern "C" {
    pub fn sqlite3_memory_highwater(resetFlag: ::std::os::raw::c_int) -> sqlite3_int64;
}
extern "C" {
    pub fn sqlite3_randomness(N: ::std::os::raw::c_int, P: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn sqlite3_set_authorizer(
        arg1: *mut sqlite3,
        xAuth: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_int,
                arg3: *const ::std::os::raw::c_char,
                arg4: *const ::std::os::raw::c_char,
                arg5: *const ::std::os::raw::c_char,
                arg6: *const ::std::os::raw::c_char,
            ) -> ::std::os::raw::c_int,
        >,
        pUserData: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_trace(
        arg1: *mut sqlite3,
        xTrace: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: *const ::std::os::raw::c_char,
            ),
        >,
        arg2: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_profile(
        arg1: *mut sqlite3,
        xProfile: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: *const ::std::os::raw::c_char,
                arg3: sqlite3_uint64,
            ),
        >,
        arg2: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_trace_v2(
        arg1: *mut sqlite3,
        uMask: ::std::os::raw::c_uint,
        xCallback: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: ::std::os::raw::c_uint,
                arg2: *mut ::std::os::raw::c_void,
                arg3: *mut ::std::os::raw::c_void,
                arg4: *mut ::std::os::raw::c_void,
            ) -> ::std::os::raw::c_int,
        >,
        pCtx: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_progress_handler(
        arg1: *mut sqlite3,
        arg2: ::std::os::raw::c_int,
        arg3: ::std::option::Option<
            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
        >,
        arg4: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn sqlite3_open(
        filename: *const ::std::os::raw::c_char,
        ppDb: *mut *mut sqlite3,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_open16(
        filename: *const ::std::os::raw::c_void,
        ppDb: *mut *mut sqlite3,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_open_v2(
        filename: *const ::std::os::raw::c_char,
        ppDb: *mut *mut sqlite3,
        flags: ::std::os::raw::c_int,
        zVfs: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn libsql_open(
        filename: *const ::std::os::raw::c_char,
        ppDb: *mut *mut sqlite3,
        flags: ::std::os::raw::c_int,
        zVfs: *const ::std::os::raw::c_char,
        zWal: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn libsql_open_v2(
        filename: *const ::std::os::raw::c_char,
        ppDb: *mut *mut sqlite3,
        flags: ::std::os::raw::c_int,
        zVfs: *const ::std::os::raw::c_char,
        zWal: *const ::std::os::raw::c_char,
        pWalMethodsData: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn libsql_try_initialize_wasm_func_table(db: *mut sqlite3) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_uri_parameter(
        z: sqlite3_filename,
        zParam: *const ::std::os::raw::c_char,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_uri_boolean(
        z: sqlite3_filename,
        zParam: *const ::std::os::raw::c_char,
        bDefault: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_uri_int64(
        arg1: sqlite3_filename,
        arg2: *const ::std::os::raw::c_char,
        arg3: sqlite3_int64,
    ) -> sqlite3_int64;
}
extern "C" {
    pub fn sqlite3_uri_key(
        z: sqlite3_filename,
        N: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_filename_database(arg1: sqlite3_filename) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_filename_journal(arg1: sqlite3_filename) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_filename_wal(arg1: sqlite3_filename) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_database_file_object(arg1: *const ::std::os::raw::c_char) -> *mut sqlite3_file;
}
extern "C" {
    pub fn sqlite3_create_filename(
        zDatabase: *const ::std::os::raw::c_char,
        zJournal: *const ::std::os::raw::c_char,
        zWal: *const ::std::os::raw::c_char,
        nParam: ::std::os::raw::c_int,
        azParam: *mut *const ::std::os::raw::c_char,
    ) -> sqlite3_filename;
}
extern "C" {
    pub fn sqlite3_free_filename(arg1: sqlite3_filename);
}
extern "C" {
    pub fn sqlite3_errcode(db: *mut sqlite3) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_extended_errcode(db: *mut sqlite3) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_errmsg(arg1: *mut sqlite3) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_errmsg16(arg1: *mut sqlite3) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_errstr(arg1: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_error_offset(db: *mut sqlite3) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_stmt {
    _unused: [u8; 0],
}
extern "C" {
    pub fn sqlite3_limit(
        arg1: *mut sqlite3,
        id: ::std::os::raw::c_int,
        newVal: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_prepare(
        db: *mut sqlite3,
        zSql: *const ::std::os::raw::c_char,
        nByte: ::std::os::raw::c_int,
        ppStmt: *mut *mut sqlite3_stmt,
        pzTail: *mut *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_prepare_v2(
        db: *mut sqlite3,
        zSql: *const ::std::os::raw::c_char,
        nByte: ::std::os::raw::c_int,
        ppStmt: *mut *mut sqlite3_stmt,
        pzTail: *mut *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_prepare_v3(
        db: *mut sqlite3,
        zSql: *const ::std::os::raw::c_char,
        nByte: ::std::os::raw::c_int,
        prepFlags: ::std::os::raw::c_uint,
        ppStmt: *mut *mut sqlite3_stmt,
        pzTail: *mut *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_prepare16(
        db: *mut sqlite3,
        zSql: *const ::std::os::raw::c_void,
        nByte: ::std::os::raw::c_int,
        ppStmt: *mut *mut sqlite3_stmt,
        pzTail: *mut *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_prepare16_v2(
        db: *mut sqlite3,
        zSql: *const ::std::os::raw::c_void,
        nByte: ::std::os::raw::c_int,
        ppStmt: *mut *mut sqlite3_stmt,
        pzTail: *mut *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_prepare16_v3(
        db: *mut sqlite3,
        zSql: *const ::std::os::raw::c_void,
        nByte: ::std::os::raw::c_int,
        prepFlags: ::std::os::raw::c_uint,
        ppStmt: *mut *mut sqlite3_stmt,
        pzTail: *mut *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_sql(pStmt: *mut sqlite3_stmt) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_expanded_sql(pStmt: *mut sqlite3_stmt) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_stmt_readonly(pStmt: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_stmt_isexplain(pStmt: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_stmt_busy(arg1: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_value {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_context {
    _unused: [u8; 0],
}
extern "C" {
    pub fn sqlite3_bind_blob(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        arg3: *const ::std::os::raw::c_void,
        n: ::std::os::raw::c_int,
        arg4: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_blob64(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        arg3: *const ::std::os::raw::c_void,
        arg4: sqlite3_uint64,
        arg5: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_double(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        arg3: f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_int(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        arg3: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_int64(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        arg3: sqlite3_int64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_null(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_text(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        arg3: *const ::std::os::raw::c_char,
        arg4: ::std::os::raw::c_int,
        arg5: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_text16(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        arg3: *const ::std::os::raw::c_void,
        arg4: ::std::os::raw::c_int,
        arg5: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_text64(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        arg3: *const ::std::os::raw::c_char,
        arg4: sqlite3_uint64,
        arg5: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
        encoding: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_value(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        arg3: *const sqlite3_value,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_pointer(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        arg3: *mut ::std::os::raw::c_void,
        arg4: *const ::std::os::raw::c_char,
        arg5: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_zeroblob(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_zeroblob64(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
        arg3: sqlite3_uint64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_parameter_count(arg1: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_bind_parameter_name(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_bind_parameter_index(
        arg1: *mut sqlite3_stmt,
        zName: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_clear_bindings(arg1: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_column_count(pStmt: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_column_name(
        arg1: *mut sqlite3_stmt,
        N: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_column_name16(
        arg1: *mut sqlite3_stmt,
        N: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_column_database_name(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_column_database_name16(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_column_table_name(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_column_table_name16(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_column_origin_name(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_column_origin_name16(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_column_decltype(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_column_decltype16(
        arg1: *mut sqlite3_stmt,
        arg2: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_step(arg1: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_data_count(pStmt: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_column_blob(
        arg1: *mut sqlite3_stmt,
        iCol: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_column_double(arg1: *mut sqlite3_stmt, iCol: ::std::os::raw::c_int) -> f64;
}
extern "C" {
    pub fn sqlite3_column_int(
        arg1: *mut sqlite3_stmt,
        iCol: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_column_int64(
        arg1: *mut sqlite3_stmt,
        iCol: ::std::os::raw::c_int,
    ) -> sqlite3_int64;
}
extern "C" {
    pub fn sqlite3_column_text(
        arg1: *mut sqlite3_stmt,
        iCol: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn sqlite3_column_text16(
        arg1: *mut sqlite3_stmt,
        iCol: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_column_value(
        arg1: *mut sqlite3_stmt,
        iCol: ::std::os::raw::c_int,
    ) -> *mut sqlite3_value;
}
extern "C" {
    pub fn sqlite3_column_bytes(
        arg1: *mut sqlite3_stmt,
        iCol: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_column_bytes16(
        arg1: *mut sqlite3_stmt,
        iCol: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_column_type(
        arg1: *mut sqlite3_stmt,
        iCol: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_finalize(pStmt: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_reset(pStmt: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_create_function(
        db: *mut sqlite3,
        zFunctionName: *const ::std::os::raw::c_char,
        nArg: ::std::os::raw::c_int,
        eTextRep: ::std::os::raw::c_int,
        pApp: *mut ::std::os::raw::c_void,
        xFunc: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut sqlite3_context,
                arg2: ::std::os::raw::c_int,
                arg3: *mut *mut sqlite3_value,
            ),
        >,
        xStep: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut sqlite3_context,
                arg2: ::std::os::raw::c_int,
                arg3: *mut *mut sqlite3_value,
            ),
        >,
        xFinal: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_create_function16(
        db: *mut sqlite3,
        zFunctionName: *const ::std::os::raw::c_void,
        nArg: ::std::os::raw::c_int,
        eTextRep: ::std::os::raw::c_int,
        pApp: *mut ::std::os::raw::c_void,
        xFunc: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut sqlite3_context,
                arg2: ::std::os::raw::c_int,
                arg3: *mut *mut sqlite3_value,
            ),
        >,
        xStep: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut sqlite3_context,
                arg2: ::std::os::raw::c_int,
                arg3: *mut *mut sqlite3_value,
            ),
        >,
        xFinal: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_create_function_v2(
        db: *mut sqlite3,
        zFunctionName: *const ::std::os::raw::c_char,
        nArg: ::std::os::raw::c_int,
        eTextRep: ::std::os::raw::c_int,
        pApp: *mut ::std::os::raw::c_void,
        xFunc: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut sqlite3_context,
                arg2: ::std::os::raw::c_int,
                arg3: *mut *mut sqlite3_value,
            ),
        >,
        xStep: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut sqlite3_context,
                arg2: ::std::os::raw::c_int,
                arg3: *mut *mut sqlite3_value,
            ),
        >,
        xFinal: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
        xDestroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_create_window_function(
        db: *mut sqlite3,
        zFunctionName: *const ::std::os::raw::c_char,
        nArg: ::std::os::raw::c_int,
        eTextRep: ::std::os::raw::c_int,
        pApp: *mut ::std::os::raw::c_void,
        xStep: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut sqlite3_context,
                arg2: ::std::os::raw::c_int,
                arg3: *mut *mut sqlite3_value,
            ),
        >,
        xFinal: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
        xValue: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
        xInverse: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut sqlite3_context,
                arg2: ::std::os::raw::c_int,
                arg3: *mut *mut sqlite3_value,
            ),
        >,
        xDestroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_aggregate_count(arg1: *mut sqlite3_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_expired(arg1: *mut sqlite3_stmt) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_transfer_bindings(
        arg1: *mut sqlite3_stmt,
        arg2: *mut sqlite3_stmt,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_global_recover() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_thread_cleanup();
}
extern "C" {
    pub fn sqlite3_memory_alarm(
        arg1: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: sqlite3_int64,
                arg3: ::std::os::raw::c_int,
            ),
        >,
        arg2: *mut ::std::os::raw::c_void,
        arg3: sqlite3_int64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_value_blob(arg1: *mut sqlite3_value) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_value_double(arg1: *mut sqlite3_value) -> f64;
}
extern "C" {
    pub fn sqlite3_value_int(arg1: *mut sqlite3_value) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_value_int64(arg1: *mut sqlite3_value) -> sqlite3_int64;
}
extern "C" {
    pub fn sqlite3_value_pointer(
        arg1: *mut sqlite3_value,
        arg2: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_value_text(arg1: *mut sqlite3_value) -> *const ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn sqlite3_value_text16(arg1: *mut sqlite3_value) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_value_text16le(arg1: *mut sqlite3_value) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_value_text16be(arg1: *mut sqlite3_value) -> *const ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_value_bytes(arg1: *mut sqlite3_value) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_value_bytes16(arg1: *mut sqlite3_value) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_value_type(arg1: *mut sqlite3_value) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_value_numeric_type(arg1: *mut sqlite3_value) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_value_nochange(arg1: *mut sqlite3_value) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_value_frombind(arg1: *mut sqlite3_value) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_value_encoding(arg1: *mut sqlite3_value) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_value_subtype(arg1: *mut sqlite3_value) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn sqlite3_value_dup(arg1: *const sqlite3_value) -> *mut sqlite3_value;
}
extern "C" {
    pub fn sqlite3_value_free(arg1: *mut sqlite3_value);
}
extern "C" {
    pub fn sqlite3_aggregate_context(
        arg1: *mut sqlite3_context,
        nBytes: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_user_data(arg1: *mut sqlite3_context) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_context_db_handle(arg1: *mut sqlite3_context) -> *mut sqlite3;
}
extern "C" {
    pub fn sqlite3_get_auxdata(
        arg1: *mut sqlite3_context,
        N: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_set_auxdata(
        arg1: *mut sqlite3_context,
        N: ::std::os::raw::c_int,
        arg2: *mut ::std::os::raw::c_void,
        arg3: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    );
}
pub type sqlite3_destructor_type =
    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub fn sqlite3_result_blob(
        arg1: *mut sqlite3_context,
        arg2: *const ::std::os::raw::c_void,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    );
}
extern "C" {
    pub fn sqlite3_result_blob64(
        arg1: *mut sqlite3_context,
        arg2: *const ::std::os::raw::c_void,
        arg3: sqlite3_uint64,
        arg4: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    );
}
extern "C" {
    pub fn sqlite3_result_double(arg1: *mut sqlite3_context, arg2: f64);
}
extern "C" {
    pub fn sqlite3_result_error(
        arg1: *mut sqlite3_context,
        arg2: *const ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn sqlite3_result_error16(
        arg1: *mut sqlite3_context,
        arg2: *const ::std::os::raw::c_void,
        arg3: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn sqlite3_result_error_toobig(arg1: *mut sqlite3_context);
}
extern "C" {
    pub fn sqlite3_result_error_nomem(arg1: *mut sqlite3_context);
}
extern "C" {
    pub fn sqlite3_result_error_code(arg1: *mut sqlite3_context, arg2: ::std::os::raw::c_int);
}
extern "C" {
    pub fn sqlite3_result_int(arg1: *mut sqlite3_context, arg2: ::std::os::raw::c_int);
}
extern "C" {
    pub fn sqlite3_result_int64(arg1: *mut sqlite3_context, arg2: sqlite3_int64);
}
extern "C" {
    pub fn sqlite3_result_null(arg1: *mut sqlite3_context);
}
extern "C" {
    pub fn sqlite3_result_text(
        arg1: *mut sqlite3_context,
        arg2: *const ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    );
}
extern "C" {
    pub fn sqlite3_result_text64(
        arg1: *mut sqlite3_context,
        arg2: *const ::std::os::raw::c_char,
        arg3: sqlite3_uint64,
        arg4: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
        encoding: ::std::os::raw::c_uchar,
    );
}
extern "C" {
    pub fn sqlite3_result_text16(
        arg1: *mut sqlite3_context,
        arg2: *const ::std::os::raw::c_void,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    );
}
extern "C" {
    pub fn sqlite3_result_text16le(
        arg1: *mut sqlite3_context,
        arg2: *const ::std::os::raw::c_void,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    );
}
extern "C" {
    pub fn sqlite3_result_text16be(
        arg1: *mut sqlite3_context,
        arg2: *const ::std::os::raw::c_void,
        arg3: ::std::os::raw::c_int,
        arg4: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    );
}
extern "C" {
    pub fn sqlite3_result_value(arg1: *mut sqlite3_context, arg2: *mut sqlite3_value);
}
extern "C" {
    pub fn sqlite3_result_pointer(
        arg1: *mut sqlite3_context,
        arg2: *mut ::std::os::raw::c_void,
        arg3: *const ::std::os::raw::c_char,
        arg4: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    );
}
extern "C" {
    pub fn sqlite3_result_zeroblob(arg1: *mut sqlite3_context, n: ::std::os::raw::c_int);
}
extern "C" {
    pub fn sqlite3_result_zeroblob64(
        arg1: *mut sqlite3_context,
        n: sqlite3_uint64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_result_subtype(arg1: *mut sqlite3_context, arg2: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn sqlite3_create_collation(
        arg1: *mut sqlite3,
        zName: *const ::std::os::raw::c_char,
        eTextRep: ::std::os::raw::c_int,
        pArg: *mut ::std::os::raw::c_void,
        xCompare: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_int,
                arg3: *const ::std::os::raw::c_void,
                arg4: ::std::os::raw::c_int,
                arg5: *const ::std::os::raw::c_void,
            ) -> ::std::os::raw::c_int,
        >,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_create_collation_v2(
        arg1: *mut sqlite3,
        zName: *const ::std::os::raw::c_char,
        eTextRep: ::std::os::raw::c_int,
        pArg: *mut ::std::os::raw::c_void,
        xCompare: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_int,
                arg3: *const ::std::os::raw::c_void,
                arg4: ::std::os::raw::c_int,
                arg5: *const ::std::os::raw::c_void,
            ) -> ::std::os::raw::c_int,
        >,
        xDestroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_create_collation16(
        arg1: *mut sqlite3,
        zName: *const ::std::os::raw::c_void,
        eTextRep: ::std::os::raw::c_int,
        pArg: *mut ::std::os::raw::c_void,
        xCompare: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_int,
                arg3: *const ::std::os::raw::c_void,
                arg4: ::std::os::raw::c_int,
                arg5: *const ::std::os::raw::c_void,
            ) -> ::std::os::raw::c_int,
        >,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_collation_needed(
        arg1: *mut sqlite3,
        arg2: *mut ::std::os::raw::c_void,
        arg3: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: *mut sqlite3,
                eTextRep: ::std::os::raw::c_int,
                arg3: *const ::std::os::raw::c_char,
            ),
        >,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_collation_needed16(
        arg1: *mut sqlite3,
        arg2: *mut ::std::os::raw::c_void,
        arg3: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: *mut sqlite3,
                eTextRep: ::std::os::raw::c_int,
                arg3: *const ::std::os::raw::c_void,
            ),
        >,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_sleep(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut sqlite3_temp_directory: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut sqlite3_data_directory: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_win32_set_directory(
        type_: ::std::os::raw::c_ulong,
        zValue: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_win32_set_directory8(
        type_: ::std::os::raw::c_ulong,
        zValue: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_win32_set_directory16(
        type_: ::std::os::raw::c_ulong,
        zValue: *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_get_autocommit(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_db_handle(arg1: *mut sqlite3_stmt) -> *mut sqlite3;
}
extern "C" {
    pub fn sqlite3_db_name(
        db: *mut sqlite3,
        N: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_db_filename(
        db: *mut sqlite3,
        zDbName: *const ::std::os::raw::c_char,
    ) -> sqlite3_filename;
}
extern "C" {
    pub fn sqlite3_db_readonly(
        db: *mut sqlite3,
        zDbName: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_txn_state(
        arg1: *mut sqlite3,
        zSchema: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_next_stmt(pDb: *mut sqlite3, pStmt: *mut sqlite3_stmt) -> *mut sqlite3_stmt;
}
extern "C" {
    pub fn sqlite3_commit_hook(
        arg1: *mut sqlite3,
        arg2: ::std::option::Option<
            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
        >,
        arg3: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_rollback_hook(
        arg1: *mut sqlite3,
        arg2: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
        arg3: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_autovacuum_pages(
        db: *mut sqlite3,
        arg1: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: *const ::std::os::raw::c_char,
                arg3: ::std::os::raw::c_uint,
                arg4: ::std::os::raw::c_uint,
                arg5: ::std::os::raw::c_uint,
            ) -> ::std::os::raw::c_uint,
        >,
        arg2: *mut ::std::os::raw::c_void,
        arg3: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_update_hook(
        arg1: *mut sqlite3,
        arg2: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_int,
                arg3: *const ::std::os::raw::c_char,
                arg4: *const ::std::os::raw::c_char,
                arg5: sqlite3_int64,
            ),
        >,
        arg3: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_enable_shared_cache(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_release_memory(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_db_release_memory(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_soft_heap_limit64(N: sqlite3_int64) -> sqlite3_int64;
}
extern "C" {
    pub fn sqlite3_hard_heap_limit64(N: sqlite3_int64) -> sqlite3_int64;
}
extern "C" {
    pub fn sqlite3_soft_heap_limit(N: ::std::os::raw::c_int);
}
extern "C" {
    pub fn sqlite3_table_column_metadata(
        db: *mut sqlite3,
        zDbName: *const ::std::os::raw::c_char,
        zTableName: *const ::std::os::raw::c_char,
        zColumnName: *const ::std::os::raw::c_char,
        pzDataType: *mut *const ::std::os::raw::c_char,
        pzCollSeq: *mut *const ::std::os::raw::c_char,
        pNotNull: *mut ::std::os::raw::c_int,
        pPrimaryKey: *mut ::std::os::raw::c_int,
        pAutoinc: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_load_extension(
        db: *mut sqlite3,
        zFile: *const ::std::os::raw::c_char,
        zProc: *const ::std::os::raw::c_char,
        pzErrMsg: *mut *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_enable_load_extension(
        db: *mut sqlite3,
        onoff: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_auto_extension(
        xEntryPoint: ::std::option::Option<unsafe extern "C" fn()>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_cancel_auto_extension(
        xEntryPoint: ::std::option::Option<unsafe extern "C" fn()>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_reset_auto_extension();
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_module {
    pub iVersion: ::std::os::raw::c_int,
    pub xCreate: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3,
            pAux: *mut ::std::os::raw::c_void,
            argc: ::std::os::raw::c_int,
            argv: *const *const ::std::os::raw::c_char,
            ppVTab: *mut *mut sqlite3_vtab,
            arg2: *mut *mut ::std::os::raw::c_char,
        ) -> ::std::os::raw::c_int,
    >,
    pub xConnect: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3,
            pAux: *mut ::std::os::raw::c_void,
            argc: ::std::os::raw::c_int,
            argv: *const *const ::std::os::raw::c_char,
            ppVTab: *mut *mut sqlite3_vtab,
            arg2: *mut *mut ::std::os::raw::c_char,
        ) -> ::std::os::raw::c_int,
    >,
    pub xBestIndex: ::std::option::Option<
        unsafe extern "C" fn(
            pVTab: *mut sqlite3_vtab,
            arg1: *mut sqlite3_index_info,
        ) -> ::std::os::raw::c_int,
    >,
    pub xDisconnect: ::std::option::Option<
        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::std::os::raw::c_int,
    >,
    pub xDestroy: ::std::option::Option<
        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::std::os::raw::c_int,
    >,
    pub xOpen: ::std::option::Option<
        unsafe extern "C" fn(
            pVTab: *mut sqlite3_vtab,
            ppCursor: *mut *mut sqlite3_vtab_cursor,
        ) -> ::std::os::raw::c_int,
    >,
    pub xClose: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor) -> ::std::os::raw::c_int,
    >,
    pub xFilter: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vtab_cursor,
            idxNum: ::std::os::raw::c_int,
            idxStr: *const ::std::os::raw::c_char,
            argc: ::std::os::raw::c_int,
            argv: *mut *mut sqlite3_value,
        ) -> ::std::os::raw::c_int,
    >,
    pub xNext: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor) -> ::std::os::raw::c_int,
    >,
    pub xEof: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor) -> ::std::os::raw::c_int,
    >,
    pub xColumn: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vtab_cursor,
            arg2: *mut sqlite3_context,
            arg3: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xRowid: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vtab_cursor,
            pRowid: *mut sqlite3_int64,
        ) -> ::std::os::raw::c_int,
    >,
    pub xUpdate: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vtab,
            arg2: ::std::os::raw::c_int,
            arg3: *mut *mut sqlite3_value,
            arg4: *mut sqlite3_int64,
        ) -> ::std::os::raw::c_int,
    >,
    pub xBegin: ::std::option::Option<
        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::std::os::raw::c_int,
    >,
    pub xSync: ::std::option::Option<
        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::std::os::raw::c_int,
    >,
    pub xCommit: ::std::option::Option<
        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::std::os::raw::c_int,
    >,
    pub xRollback: ::std::option::Option<
        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::std::os::raw::c_int,
    >,
    pub xFindFunction: ::std::option::Option<
        unsafe extern "C" fn(
            pVtab: *mut sqlite3_vtab,
            nArg: ::std::os::raw::c_int,
            zName: *const ::std::os::raw::c_char,
            pxFunc: *mut ::std::option::Option<
                unsafe extern "C" fn(
                    arg1: *mut sqlite3_context,
                    arg2: ::std::os::raw::c_int,
                    arg3: *mut *mut sqlite3_value,
                ),
            >,
            ppArg: *mut *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub xRename: ::std::option::Option<
        unsafe extern "C" fn(
            pVtab: *mut sqlite3_vtab,
            zNew: *const ::std::os::raw::c_char,
        ) -> ::std::os::raw::c_int,
    >,
    pub xSavepoint: ::std::option::Option<
        unsafe extern "C" fn(
            pVTab: *mut sqlite3_vtab,
            arg1: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xRelease: ::std::option::Option<
        unsafe extern "C" fn(
            pVTab: *mut sqlite3_vtab,
            arg1: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xRollbackTo: ::std::option::Option<
        unsafe extern "C" fn(
            pVTab: *mut sqlite3_vtab,
            arg1: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xShadowName: ::std::option::Option<
        unsafe extern "C" fn(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int,
    >,
    pub xPreparedSql: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vtab_cursor,
            arg2: *const ::std::os::raw::c_char,
        ) -> ::std::os::raw::c_int,
    >,
}
#[test]
fn bindgen_test_layout_sqlite3_module() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_module> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_module>(),
        200usize,
        concat!("Size of: ", stringify!(sqlite3_module))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_module>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_module))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(iVersion)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCreate) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xCreate)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xConnect) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xConnect)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xBestIndex) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xBestIndex)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDisconnect) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xDisconnect)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDestroy) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xDestroy)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xOpen) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xOpen)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xClose) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xClose)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFilter) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xFilter)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xNext) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xNext)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xEof) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xEof)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xColumn) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xColumn)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRowid) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xRowid)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xUpdate) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xUpdate)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xBegin) as usize - ptr as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xBegin)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSync) as usize - ptr as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xSync)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCommit) as usize - ptr as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xCommit)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRollback) as usize - ptr as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xRollback)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFindFunction) as usize - ptr as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xFindFunction)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRename) as usize - ptr as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xRename)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSavepoint) as usize - ptr as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xSavepoint)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRelease) as usize - ptr as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xRelease)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRollbackTo) as usize - ptr as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xRollbackTo)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xShadowName) as usize - ptr as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xShadowName)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xPreparedSql) as usize - ptr as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_module),
            "::",
            stringify!(xPreparedSql)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_index_info {
    pub nConstraint: ::std::os::raw::c_int,
    pub aConstraint: *mut sqlite3_index_info_sqlite3_index_constraint,
    pub nOrderBy: ::std::os::raw::c_int,
    pub aOrderBy: *mut sqlite3_index_info_sqlite3_index_orderby,
    pub aConstraintUsage: *mut sqlite3_index_info_sqlite3_index_constraint_usage,
    pub idxNum: ::std::os::raw::c_int,
    pub idxStr: *mut ::std::os::raw::c_char,
    pub needToFreeIdxStr: ::std::os::raw::c_int,
    pub orderByConsumed: ::std::os::raw::c_int,
    pub estimatedCost: f64,
    pub estimatedRows: sqlite3_int64,
    pub idxFlags: ::std::os::raw::c_int,
    pub colUsed: sqlite3_uint64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_index_info_sqlite3_index_constraint {
    pub iColumn: ::std::os::raw::c_int,
    pub op: ::std::os::raw::c_uchar,
    pub usable: ::std::os::raw::c_uchar,
    pub iTermOffset: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_sqlite3_index_info_sqlite3_index_constraint() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_index_info_sqlite3_index_constraint> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_index_info_sqlite3_index_constraint>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(sqlite3_index_info_sqlite3_index_constraint)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_index_info_sqlite3_index_constraint>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(sqlite3_index_info_sqlite3_index_constraint)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iColumn) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info_sqlite3_index_constraint),
            "::",
            stringify!(iColumn)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).op) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info_sqlite3_index_constraint),
            "::",
            stringify!(op)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).usable) as usize - ptr as usize },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info_sqlite3_index_constraint),
            "::",
            stringify!(usable)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iTermOffset) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info_sqlite3_index_constraint),
            "::",
            stringify!(iTermOffset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_index_info_sqlite3_index_orderby {
    pub iColumn: ::std::os::raw::c_int,
    pub desc: ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_sqlite3_index_info_sqlite3_index_orderby() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_index_info_sqlite3_index_orderby> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_index_info_sqlite3_index_orderby>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(sqlite3_index_info_sqlite3_index_orderby)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_index_info_sqlite3_index_orderby>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(sqlite3_index_info_sqlite3_index_orderby)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iColumn) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info_sqlite3_index_orderby),
            "::",
            stringify!(iColumn)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).desc) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info_sqlite3_index_orderby),
            "::",
            stringify!(desc)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_index_info_sqlite3_index_constraint_usage {
    pub argvIndex: ::std::os::raw::c_int,
    pub omit: ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_sqlite3_index_info_sqlite3_index_constraint_usage() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_index_info_sqlite3_index_constraint_usage> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_index_info_sqlite3_index_constraint_usage>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(sqlite3_index_info_sqlite3_index_constraint_usage)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_index_info_sqlite3_index_constraint_usage>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(sqlite3_index_info_sqlite3_index_constraint_usage)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).argvIndex) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info_sqlite3_index_constraint_usage),
            "::",
            stringify!(argvIndex)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).omit) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info_sqlite3_index_constraint_usage),
            "::",
            stringify!(omit)
        )
    );
}
#[test]
fn bindgen_test_layout_sqlite3_index_info() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_index_info> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_index_info>(),
        96usize,
        concat!("Size of: ", stringify!(sqlite3_index_info))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_index_info>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_index_info))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nConstraint) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(nConstraint)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).aConstraint) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(aConstraint)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nOrderBy) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(nOrderBy)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).aOrderBy) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(aOrderBy)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).aConstraintUsage) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(aConstraintUsage)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).idxNum) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(idxNum)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).idxStr) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(idxStr)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).needToFreeIdxStr) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(needToFreeIdxStr)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).orderByConsumed) as usize - ptr as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(orderByConsumed)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).estimatedCost) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(estimatedCost)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).estimatedRows) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(estimatedRows)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).idxFlags) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(idxFlags)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).colUsed) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_index_info),
            "::",
            stringify!(colUsed)
        )
    );
}
extern "C" {
    pub fn sqlite3_create_module(
        db: *mut sqlite3,
        zName: *const ::std::os::raw::c_char,
        p: *const sqlite3_module,
        pClientData: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_create_module_v2(
        db: *mut sqlite3,
        zName: *const ::std::os::raw::c_char,
        p: *const sqlite3_module,
        pClientData: *mut ::std::os::raw::c_void,
        xDestroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_drop_modules(
        db: *mut sqlite3,
        azKeep: *mut *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_vtab {
    pub pModule: *const sqlite3_module,
    pub nRef: ::std::os::raw::c_int,
    pub zErrMsg: *mut ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_sqlite3_vtab() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_vtab> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_vtab>(),
        24usize,
        concat!("Size of: ", stringify!(sqlite3_vtab))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_vtab>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_vtab))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pModule) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vtab),
            "::",
            stringify!(pModule)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nRef) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vtab),
            "::",
            stringify!(nRef)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).zErrMsg) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vtab),
            "::",
            stringify!(zErrMsg)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_vtab_cursor {
    pub pVtab: *mut sqlite3_vtab,
}
#[test]
fn bindgen_test_layout_sqlite3_vtab_cursor() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_vtab_cursor> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_vtab_cursor>(),
        8usize,
        concat!("Size of: ", stringify!(sqlite3_vtab_cursor))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_vtab_cursor>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_vtab_cursor))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pVtab) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_vtab_cursor),
            "::",
            stringify!(pVtab)
        )
    );
}
extern "C" {
    pub fn sqlite3_declare_vtab(
        arg1: *mut sqlite3,
        zSQL: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_overload_function(
        arg1: *mut sqlite3,
        zFuncName: *const ::std::os::raw::c_char,
        nArg: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_blob {
    _unused: [u8; 0],
}
extern "C" {
    pub fn sqlite3_blob_open(
        arg1: *mut sqlite3,
        zDb: *const ::std::os::raw::c_char,
        zTable: *const ::std::os::raw::c_char,
        zColumn: *const ::std::os::raw::c_char,
        iRow: sqlite3_int64,
        flags: ::std::os::raw::c_int,
        ppBlob: *mut *mut sqlite3_blob,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_blob_reopen(
        arg1: *mut sqlite3_blob,
        arg2: sqlite3_int64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_blob_close(arg1: *mut sqlite3_blob) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_blob_bytes(arg1: *mut sqlite3_blob) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_blob_read(
        arg1: *mut sqlite3_blob,
        Z: *mut ::std::os::raw::c_void,
        N: ::std::os::raw::c_int,
        iOffset: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_blob_write(
        arg1: *mut sqlite3_blob,
        z: *const ::std::os::raw::c_void,
        n: ::std::os::raw::c_int,
        iOffset: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_vfs_find(zVfsName: *const ::std::os::raw::c_char) -> *mut sqlite3_vfs;
}
extern "C" {
    pub fn sqlite3_vfs_register(
        arg1: *mut sqlite3_vfs,
        makeDflt: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_vfs_unregister(arg1: *mut sqlite3_vfs) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn libsql_wal_methods_find(zName: *const ::std::os::raw::c_char)
        -> *mut libsql_wal_methods;
}
extern "C" {
    pub fn libsql_wal_methods_register(arg1: *mut libsql_wal_methods) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn libsql_wal_methods_unregister(arg1: *mut libsql_wal_methods) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn libsql_wal_methods_next(w: *mut libsql_wal_methods) -> *mut libsql_wal_methods;
}
extern "C" {
    pub fn libsql_wal_methods_name(w: *mut libsql_wal_methods) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_mutex_alloc(arg1: ::std::os::raw::c_int) -> *mut sqlite3_mutex;
}
extern "C" {
    pub fn sqlite3_mutex_free(arg1: *mut sqlite3_mutex);
}
extern "C" {
    pub fn sqlite3_mutex_enter(arg1: *mut sqlite3_mutex);
}
extern "C" {
    pub fn sqlite3_mutex_try(arg1: *mut sqlite3_mutex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_mutex_leave(arg1: *mut sqlite3_mutex);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_mutex_methods {
    pub xMutexInit: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
    pub xMutexEnd: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
    pub xMutexAlloc: ::std::option::Option<
        unsafe extern "C" fn(arg1: ::std::os::raw::c_int) -> *mut sqlite3_mutex,
    >,
    pub xMutexFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_mutex)>,
    pub xMutexEnter: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_mutex)>,
    pub xMutexTry: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_mutex) -> ::std::os::raw::c_int,
    >,
    pub xMutexLeave: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_mutex)>,
    pub xMutexHeld: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_mutex) -> ::std::os::raw::c_int,
    >,
    pub xMutexNotheld: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_mutex) -> ::std::os::raw::c_int,
    >,
}
#[test]
fn bindgen_test_layout_sqlite3_mutex_methods() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_mutex_methods> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_mutex_methods>(),
        72usize,
        concat!("Size of: ", stringify!(sqlite3_mutex_methods))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_mutex_methods>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_mutex_methods))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xMutexInit) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mutex_methods),
            "::",
            stringify!(xMutexInit)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xMutexEnd) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mutex_methods),
            "::",
            stringify!(xMutexEnd)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xMutexAlloc) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mutex_methods),
            "::",
            stringify!(xMutexAlloc)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xMutexFree) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mutex_methods),
            "::",
            stringify!(xMutexFree)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xMutexEnter) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mutex_methods),
            "::",
            stringify!(xMutexEnter)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xMutexTry) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mutex_methods),
            "::",
            stringify!(xMutexTry)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xMutexLeave) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mutex_methods),
            "::",
            stringify!(xMutexLeave)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xMutexHeld) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mutex_methods),
            "::",
            stringify!(xMutexHeld)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xMutexNotheld) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_mutex_methods),
            "::",
            stringify!(xMutexNotheld)
        )
    );
}
extern "C" {
    pub fn sqlite3_mutex_held(arg1: *mut sqlite3_mutex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_mutex_notheld(arg1: *mut sqlite3_mutex) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_db_mutex(arg1: *mut sqlite3) -> *mut sqlite3_mutex;
}
extern "C" {
    pub fn sqlite3_file_control(
        arg1: *mut sqlite3,
        zDbName: *const ::std::os::raw::c_char,
        op: ::std::os::raw::c_int,
        arg2: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_test_control(op: ::std::os::raw::c_int, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_keyword_count() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_keyword_name(
        arg1: ::std::os::raw::c_int,
        arg2: *mut *const ::std::os::raw::c_char,
        arg3: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_keyword_check(
        arg1: *const ::std::os::raw::c_char,
        arg2: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_str {
    _unused: [u8; 0],
}
extern "C" {
    pub fn sqlite3_str_new(arg1: *mut sqlite3) -> *mut sqlite3_str;
}
extern "C" {
    pub fn sqlite3_str_finish(arg1: *mut sqlite3_str) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_str_appendf(arg1: *mut sqlite3_str, zFormat: *const ::std::os::raw::c_char, ...);
}
extern "C" {
    pub fn sqlite3_str_vappendf(
        arg1: *mut sqlite3_str,
        zFormat: *const ::std::os::raw::c_char,
        arg2: *mut __va_list_tag,
    );
}
extern "C" {
    pub fn sqlite3_str_append(
        arg1: *mut sqlite3_str,
        zIn: *const ::std::os::raw::c_char,
        N: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn sqlite3_str_appendall(arg1: *mut sqlite3_str, zIn: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn sqlite3_str_appendchar(
        arg1: *mut sqlite3_str,
        N: ::std::os::raw::c_int,
        C: ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn sqlite3_str_reset(arg1: *mut sqlite3_str);
}
extern "C" {
    pub fn sqlite3_str_errcode(arg1: *mut sqlite3_str) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_str_length(arg1: *mut sqlite3_str) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_str_value(arg1: *mut sqlite3_str) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_status(
        op: ::std::os::raw::c_int,
        pCurrent: *mut ::std::os::raw::c_int,
        pHighwater: *mut ::std::os::raw::c_int,
        resetFlag: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_status64(
        op: ::std::os::raw::c_int,
        pCurrent: *mut sqlite3_int64,
        pHighwater: *mut sqlite3_int64,
        resetFlag: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_db_status(
        arg1: *mut sqlite3,
        op: ::std::os::raw::c_int,
        pCur: *mut ::std::os::raw::c_int,
        pHiwtr: *mut ::std::os::raw::c_int,
        resetFlg: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_stmt_status(
        arg1: *mut sqlite3_stmt,
        op: ::std::os::raw::c_int,
        resetFlg: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_pcache {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_pcache_page {
    pub pBuf: *mut ::std::os::raw::c_void,
    pub pExtra: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_sqlite3_pcache_page() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_pcache_page> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_pcache_page>(),
        16usize,
        concat!("Size of: ", stringify!(sqlite3_pcache_page))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_pcache_page>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_pcache_page))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pBuf) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_page),
            "::",
            stringify!(pBuf)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pExtra) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_page),
            "::",
            stringify!(pExtra)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_pcache_methods2 {
    pub iVersion: ::std::os::raw::c_int,
    pub pArg: *mut ::std::os::raw::c_void,
    pub xInit: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
    >,
    pub xShutdown: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub xCreate: ::std::option::Option<
        unsafe extern "C" fn(
            szPage: ::std::os::raw::c_int,
            szExtra: ::std::os::raw::c_int,
            bPurgeable: ::std::os::raw::c_int,
        ) -> *mut sqlite3_pcache,
    >,
    pub xCachesize: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, nCachesize: ::std::os::raw::c_int),
    >,
    pub xPagecount: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_pcache) -> ::std::os::raw::c_int,
    >,
    pub xFetch: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_pcache,
            key: ::std::os::raw::c_uint,
            createFlag: ::std::os::raw::c_int,
        ) -> *mut sqlite3_pcache_page,
    >,
    pub xUnpin: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_pcache,
            arg2: *mut sqlite3_pcache_page,
            discard: ::std::os::raw::c_int,
        ),
    >,
    pub xRekey: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_pcache,
            arg2: *mut sqlite3_pcache_page,
            oldKey: ::std::os::raw::c_uint,
            newKey: ::std::os::raw::c_uint,
        ),
    >,
    pub xTruncate: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, iLimit: ::std::os::raw::c_uint),
    >,
    pub xDestroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_pcache)>,
    pub xShrink: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_pcache)>,
}
#[test]
fn bindgen_test_layout_sqlite3_pcache_methods2() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_pcache_methods2> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_pcache_methods2>(),
        104usize,
        concat!("Size of: ", stringify!(sqlite3_pcache_methods2))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_pcache_methods2>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_pcache_methods2))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(iVersion)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pArg) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(pArg)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xInit) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(xInit)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xShutdown) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(xShutdown)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCreate) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(xCreate)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCachesize) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(xCachesize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xPagecount) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(xPagecount)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFetch) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(xFetch)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xUnpin) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(xUnpin)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRekey) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(xRekey)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xTruncate) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(xTruncate)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDestroy) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(xDestroy)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xShrink) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods2),
            "::",
            stringify!(xShrink)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_pcache_methods {
    pub pArg: *mut ::std::os::raw::c_void,
    pub xInit: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
    >,
    pub xShutdown: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub xCreate: ::std::option::Option<
        unsafe extern "C" fn(
            szPage: ::std::os::raw::c_int,
            bPurgeable: ::std::os::raw::c_int,
        ) -> *mut sqlite3_pcache,
    >,
    pub xCachesize: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, nCachesize: ::std::os::raw::c_int),
    >,
    pub xPagecount: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_pcache) -> ::std::os::raw::c_int,
    >,
    pub xFetch: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_pcache,
            key: ::std::os::raw::c_uint,
            createFlag: ::std::os::raw::c_int,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub xUnpin: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_pcache,
            arg2: *mut ::std::os::raw::c_void,
            discard: ::std::os::raw::c_int,
        ),
    >,
    pub xRekey: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_pcache,
            arg2: *mut ::std::os::raw::c_void,
            oldKey: ::std::os::raw::c_uint,
            newKey: ::std::os::raw::c_uint,
        ),
    >,
    pub xTruncate: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, iLimit: ::std::os::raw::c_uint),
    >,
    pub xDestroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_pcache)>,
}
#[test]
fn bindgen_test_layout_sqlite3_pcache_methods() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_pcache_methods> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_pcache_methods>(),
        88usize,
        concat!("Size of: ", stringify!(sqlite3_pcache_methods))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_pcache_methods>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_pcache_methods))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pArg) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods),
            "::",
            stringify!(pArg)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xInit) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods),
            "::",
            stringify!(xInit)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xShutdown) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods),
            "::",
            stringify!(xShutdown)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCreate) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods),
            "::",
            stringify!(xCreate)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCachesize) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods),
            "::",
            stringify!(xCachesize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xPagecount) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods),
            "::",
            stringify!(xPagecount)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFetch) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods),
            "::",
            stringify!(xFetch)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xUnpin) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods),
            "::",
            stringify!(xUnpin)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRekey) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods),
            "::",
            stringify!(xRekey)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xTruncate) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods),
            "::",
            stringify!(xTruncate)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDestroy) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_pcache_methods),
            "::",
            stringify!(xDestroy)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_backup {
    _unused: [u8; 0],
}
extern "C" {
    pub fn sqlite3_backup_init(
        pDest: *mut sqlite3,
        zDestName: *const ::std::os::raw::c_char,
        pSource: *mut sqlite3,
        zSourceName: *const ::std::os::raw::c_char,
    ) -> *mut sqlite3_backup;
}
extern "C" {
    pub fn sqlite3_backup_step(
        p: *mut sqlite3_backup,
        nPage: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_backup_finish(p: *mut sqlite3_backup) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_backup_remaining(p: *mut sqlite3_backup) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_backup_pagecount(p: *mut sqlite3_backup) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_unlock_notify(
        pBlocked: *mut sqlite3,
        xNotify: ::std::option::Option<
            unsafe extern "C" fn(
                apArg: *mut *mut ::std::os::raw::c_void,
                nArg: ::std::os::raw::c_int,
            ),
        >,
        pNotifyArg: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_stricmp(
        arg1: *const ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_strnicmp(
        arg1: *const ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
        arg3: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_strglob(
        zGlob: *const ::std::os::raw::c_char,
        zStr: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_strlike(
        zGlob: *const ::std::os::raw::c_char,
        zStr: *const ::std::os::raw::c_char,
        cEsc: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_log(
        iErrCode: ::std::os::raw::c_int,
        zFormat: *const ::std::os::raw::c_char,
        ...
    );
}
extern "C" {
    pub fn sqlite3_wal_hook(
        arg1: *mut sqlite3,
        arg2: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: *mut sqlite3,
                arg3: *const ::std::os::raw::c_char,
                arg4: ::std::os::raw::c_int,
            ) -> ::std::os::raw::c_int,
        >,
        arg3: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn sqlite3_wal_autocheckpoint(
        db: *mut sqlite3,
        N: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_wal_checkpoint(
        db: *mut sqlite3,
        zDb: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_wal_checkpoint_v2(
        db: *mut sqlite3,
        zDb: *const ::std::os::raw::c_char,
        eMode: ::std::os::raw::c_int,
        pnLog: *mut ::std::os::raw::c_int,
        pnCkpt: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_vtab_config(
        arg1: *mut sqlite3,
        op: ::std::os::raw::c_int,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_vtab_on_conflict(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_vtab_nochange(arg1: *mut sqlite3_context) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_vtab_collation(
        arg1: *mut sqlite3_index_info,
        arg2: ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn sqlite3_vtab_distinct(arg1: *mut sqlite3_index_info) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_vtab_in(
        arg1: *mut sqlite3_index_info,
        iCons: ::std::os::raw::c_int,
        bHandle: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_vtab_in_first(
        pVal: *mut sqlite3_value,
        ppOut: *mut *mut sqlite3_value,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_vtab_in_next(
        pVal: *mut sqlite3_value,
        ppOut: *mut *mut sqlite3_value,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_vtab_rhs_value(
        arg1: *mut sqlite3_index_info,
        arg2: ::std::os::raw::c_int,
        ppVal: *mut *mut sqlite3_value,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_stmt_scanstatus(
        pStmt: *mut sqlite3_stmt,
        idx: ::std::os::raw::c_int,
        iScanStatusOp: ::std::os::raw::c_int,
        pOut: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_stmt_scanstatus_v2(
        pStmt: *mut sqlite3_stmt,
        idx: ::std::os::raw::c_int,
        iScanStatusOp: ::std::os::raw::c_int,
        flags: ::std::os::raw::c_int,
        pOut: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_stmt_scanstatus_reset(arg1: *mut sqlite3_stmt);
}
extern "C" {
    pub fn sqlite3_db_cacheflush(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_system_errno(arg1: *mut sqlite3) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_snapshot {
    pub hidden: [::std::os::raw::c_uchar; 48usize],
}
#[test]
fn bindgen_test_layout_sqlite3_snapshot() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_snapshot> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_snapshot>(),
        48usize,
        concat!("Size of: ", stringify!(sqlite3_snapshot))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_snapshot>(),
        1usize,
        concat!("Alignment of ", stringify!(sqlite3_snapshot))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).hidden) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_snapshot),
            "::",
            stringify!(hidden)
        )
    );
}
extern "C" {
    pub fn sqlite3_snapshot_get(
        db: *mut sqlite3,
        zSchema: *const ::std::os::raw::c_char,
        ppSnapshot: *mut *mut sqlite3_snapshot,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_snapshot_open(
        db: *mut sqlite3,
        zSchema: *const ::std::os::raw::c_char,
        pSnapshot: *mut sqlite3_snapshot,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_snapshot_free(arg1: *mut sqlite3_snapshot);
}
extern "C" {
    pub fn sqlite3_snapshot_cmp(
        p1: *mut sqlite3_snapshot,
        p2: *mut sqlite3_snapshot,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_snapshot_recover(
        db: *mut sqlite3,
        zDb: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sqlite3_serialize(
        db: *mut sqlite3,
        zSchema: *const ::std::os::raw::c_char,
        piSize: *mut sqlite3_int64,
        mFlags: ::std::os::raw::c_uint,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn sqlite3_deserialize(
        db: *mut sqlite3,
        zSchema: *const ::std::os::raw::c_char,
        pData: *mut ::std::os::raw::c_uchar,
        szDb: sqlite3_int64,
        szBuf: sqlite3_int64,
        mFlags: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
pub type sqlite3_rtree_dbl = f64;
extern "C" {
    pub fn sqlite3_rtree_geometry_callback(
        db: *mut sqlite3,
        zGeom: *const ::std::os::raw::c_char,
        xGeom: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut sqlite3_rtree_geometry,
                arg2: ::std::os::raw::c_int,
                arg3: *mut sqlite3_rtree_dbl,
                arg4: *mut ::std::os::raw::c_int,
            ) -> ::std::os::raw::c_int,
        >,
        pContext: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_rtree_geometry {
    pub pContext: *mut ::std::os::raw::c_void,
    pub nParam: ::std::os::raw::c_int,
    pub aParam: *mut sqlite3_rtree_dbl,
    pub pUser: *mut ::std::os::raw::c_void,
    pub xDelUser: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
}
#[test]
fn bindgen_test_layout_sqlite3_rtree_geometry() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_rtree_geometry> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_rtree_geometry>(),
        40usize,
        concat!("Size of: ", stringify!(sqlite3_rtree_geometry))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_rtree_geometry>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_rtree_geometry))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pContext) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_geometry),
            "::",
            stringify!(pContext)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nParam) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_geometry),
            "::",
            stringify!(nParam)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).aParam) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_geometry),
            "::",
            stringify!(aParam)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pUser) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_geometry),
            "::",
            stringify!(pUser)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDelUser) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_geometry),
            "::",
            stringify!(xDelUser)
        )
    );
}
extern "C" {
    pub fn sqlite3_rtree_query_callback(
        db: *mut sqlite3,
        zQueryFunc: *const ::std::os::raw::c_char,
        xQueryFunc: ::std::option::Option<
            unsafe extern "C" fn(arg1: *mut sqlite3_rtree_query_info) -> ::std::os::raw::c_int,
        >,
        pContext: *mut ::std::os::raw::c_void,
        xDestructor: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sqlite3_rtree_query_info {
    pub pContext: *mut ::std::os::raw::c_void,
    pub nParam: ::std::os::raw::c_int,
    pub aParam: *mut sqlite3_rtree_dbl,
    pub pUser: *mut ::std::os::raw::c_void,
    pub xDelUser: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub aCoord: *mut sqlite3_rtree_dbl,
    pub anQueue: *mut ::std::os::raw::c_uint,
    pub nCoord: ::std::os::raw::c_int,
    pub iLevel: ::std::os::raw::c_int,
    pub mxLevel: ::std::os::raw::c_int,
    pub iRowid: sqlite3_int64,
    pub rParentScore: sqlite3_rtree_dbl,
    pub eParentWithin: ::std::os::raw::c_int,
    pub eWithin: ::std::os::raw::c_int,
    pub rScore: sqlite3_rtree_dbl,
    pub apSqlParam: *mut *mut sqlite3_value,
}
#[test]
fn bindgen_test_layout_sqlite3_rtree_query_info() {
    const UNINIT: ::std::mem::MaybeUninit<sqlite3_rtree_query_info> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<sqlite3_rtree_query_info>(),
        112usize,
        concat!("Size of: ", stringify!(sqlite3_rtree_query_info))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlite3_rtree_query_info>(),
        8usize,
        concat!("Alignment of ", stringify!(sqlite3_rtree_query_info))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pContext) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(pContext)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nParam) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(nParam)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).aParam) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(aParam)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pUser) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(pUser)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDelUser) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(xDelUser)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).aCoord) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(aCoord)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).anQueue) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(anQueue)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nCoord) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(nCoord)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iLevel) as usize - ptr as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(iLevel)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mxLevel) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(mxLevel)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iRowid) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(iRowid)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rParentScore) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(rParentScore)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).eParentWithin) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(eParentWithin)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).eWithin) as usize - ptr as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(eWithin)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rScore) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(rScore)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).apSqlParam) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlite3_rtree_query_info),
            "::",
            stringify!(apSqlParam)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Fts5Context {
    _unused: [u8; 0],
}
pub type fts5_extension_function = ::std::option::Option<
    unsafe extern "C" fn(
        pApi: *const Fts5ExtensionApi,
        pFts: *mut Fts5Context,
        pCtx: *mut sqlite3_context,
        nVal: ::std::os::raw::c_int,
        apVal: *mut *mut sqlite3_value,
    ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Fts5PhraseIter {
    pub a: *const ::std::os::raw::c_uchar,
    pub b: *const ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_Fts5PhraseIter() {
    const UNINIT: ::std::mem::MaybeUninit<Fts5PhraseIter> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<Fts5PhraseIter>(),
        16usize,
        concat!("Size of: ", stringify!(Fts5PhraseIter))
    );
    assert_eq!(
        ::std::mem::align_of::<Fts5PhraseIter>(),
        8usize,
        concat!("Alignment of ", stringify!(Fts5PhraseIter))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5PhraseIter),
            "::",
            stringify!(a)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5PhraseIter),
            "::",
            stringify!(b)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Fts5ExtensionApi {
    pub iVersion: ::std::os::raw::c_int,
    pub xUserData: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut Fts5Context) -> *mut ::std::os::raw::c_void,
    >,
    pub xColumnCount: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut Fts5Context) -> ::std::os::raw::c_int,
    >,
    pub xRowCount: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            pnRow: *mut sqlite3_int64,
        ) -> ::std::os::raw::c_int,
    >,
    pub xColumnTotalSize: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            iCol: ::std::os::raw::c_int,
            pnToken: *mut sqlite3_int64,
        ) -> ::std::os::raw::c_int,
    >,
    pub xTokenize: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            pText: *const ::std::os::raw::c_char,
            nText: ::std::os::raw::c_int,
            pCtx: *mut ::std::os::raw::c_void,
            xToken: ::std::option::Option<
                unsafe extern "C" fn(
                    arg1: *mut ::std::os::raw::c_void,
                    arg2: ::std::os::raw::c_int,
                    arg3: *const ::std::os::raw::c_char,
                    arg4: ::std::os::raw::c_int,
                    arg5: ::std::os::raw::c_int,
                    arg6: ::std::os::raw::c_int,
                ) -> ::std::os::raw::c_int,
            >,
        ) -> ::std::os::raw::c_int,
    >,
    pub xPhraseCount: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut Fts5Context) -> ::std::os::raw::c_int,
    >,
    pub xPhraseSize: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            iPhrase: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xInstCount: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            pnInst: *mut ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xInst: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            iIdx: ::std::os::raw::c_int,
            piPhrase: *mut ::std::os::raw::c_int,
            piCol: *mut ::std::os::raw::c_int,
            piOff: *mut ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xRowid:
        ::std::option::Option<unsafe extern "C" fn(arg1: *mut Fts5Context) -> sqlite3_int64>,
    pub xColumnText: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            iCol: ::std::os::raw::c_int,
            pz: *mut *const ::std::os::raw::c_char,
            pn: *mut ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xColumnSize: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            iCol: ::std::os::raw::c_int,
            pnToken: *mut ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xQueryPhrase: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            iPhrase: ::std::os::raw::c_int,
            pUserData: *mut ::std::os::raw::c_void,
            arg2: ::std::option::Option<
                unsafe extern "C" fn(
                    arg1: *const Fts5ExtensionApi,
                    arg2: *mut Fts5Context,
                    arg3: *mut ::std::os::raw::c_void,
                ) -> ::std::os::raw::c_int,
            >,
        ) -> ::std::os::raw::c_int,
    >,
    pub xSetAuxdata: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            pAux: *mut ::std::os::raw::c_void,
            xDelete: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
        ) -> ::std::os::raw::c_int,
    >,
    pub xGetAuxdata: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            bClear: ::std::os::raw::c_int,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub xPhraseFirst: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            iPhrase: ::std::os::raw::c_int,
            arg2: *mut Fts5PhraseIter,
            arg3: *mut ::std::os::raw::c_int,
            arg4: *mut ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xPhraseNext: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            arg2: *mut Fts5PhraseIter,
            piCol: *mut ::std::os::raw::c_int,
            piOff: *mut ::std::os::raw::c_int,
        ),
    >,
    pub xPhraseFirstColumn: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            iPhrase: ::std::os::raw::c_int,
            arg2: *mut Fts5PhraseIter,
            arg3: *mut ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xPhraseNextColumn: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Context,
            arg2: *mut Fts5PhraseIter,
            piCol: *mut ::std::os::raw::c_int,
        ),
    >,
}
#[test]
fn bindgen_test_layout_Fts5ExtensionApi() {
    const UNINIT: ::std::mem::MaybeUninit<Fts5ExtensionApi> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<Fts5ExtensionApi>(),
        160usize,
        concat!("Size of: ", stringify!(Fts5ExtensionApi))
    );
    assert_eq!(
        ::std::mem::align_of::<Fts5ExtensionApi>(),
        8usize,
        concat!("Alignment of ", stringify!(Fts5ExtensionApi))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(iVersion)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xUserData) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xUserData)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xColumnCount) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xColumnCount)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRowCount) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xRowCount)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xColumnTotalSize) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xColumnTotalSize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xTokenize) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xTokenize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xPhraseCount) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xPhraseCount)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xPhraseSize) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xPhraseSize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xInstCount) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xInstCount)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xInst) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xInst)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xRowid) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xRowid)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xColumnText) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xColumnText)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xColumnSize) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xColumnSize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xQueryPhrase) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xQueryPhrase)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSetAuxdata) as usize - ptr as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xSetAuxdata)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xGetAuxdata) as usize - ptr as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xGetAuxdata)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xPhraseFirst) as usize - ptr as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xPhraseFirst)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xPhraseNext) as usize - ptr as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xPhraseNext)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xPhraseFirstColumn) as usize - ptr as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xPhraseFirstColumn)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xPhraseNextColumn) as usize - ptr as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(Fts5ExtensionApi),
            "::",
            stringify!(xPhraseNextColumn)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Fts5Tokenizer {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct fts5_tokenizer {
    pub xCreate: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut ::std::os::raw::c_void,
            azArg: *mut *const ::std::os::raw::c_char,
            nArg: ::std::os::raw::c_int,
            ppOut: *mut *mut Fts5Tokenizer,
        ) -> ::std::os::raw::c_int,
    >,
    pub xDelete: ::std::option::Option<unsafe extern "C" fn(arg1: *mut Fts5Tokenizer)>,
    pub xTokenize: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut Fts5Tokenizer,
            pCtx: *mut ::std::os::raw::c_void,
            flags: ::std::os::raw::c_int,
            pText: *const ::std::os::raw::c_char,
            nText: ::std::os::raw::c_int,
            xToken: ::std::option::Option<
                unsafe extern "C" fn(
                    pCtx: *mut ::std::os::raw::c_void,
                    tflags: ::std::os::raw::c_int,
                    pToken: *const ::std::os::raw::c_char,
                    nToken: ::std::os::raw::c_int,
                    iStart: ::std::os::raw::c_int,
                    iEnd: ::std::os::raw::c_int,
                ) -> ::std::os::raw::c_int,
            >,
        ) -> ::std::os::raw::c_int,
    >,
}
#[test]
fn bindgen_test_layout_fts5_tokenizer() {
    const UNINIT: ::std::mem::MaybeUninit<fts5_tokenizer> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<fts5_tokenizer>(),
        24usize,
        concat!("Size of: ", stringify!(fts5_tokenizer))
    );
    assert_eq!(
        ::std::mem::align_of::<fts5_tokenizer>(),
        8usize,
        concat!("Alignment of ", stringify!(fts5_tokenizer))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCreate) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(fts5_tokenizer),
            "::",
            stringify!(xCreate)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDelete) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(fts5_tokenizer),
            "::",
            stringify!(xDelete)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xTokenize) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(fts5_tokenizer),
            "::",
            stringify!(xTokenize)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct fts5_api {
    pub iVersion: ::std::os::raw::c_int,
    pub xCreateTokenizer: ::std::option::Option<
        unsafe extern "C" fn(
            pApi: *mut fts5_api,
            zName: *const ::std::os::raw::c_char,
            pContext: *mut ::std::os::raw::c_void,
            pTokenizer: *mut fts5_tokenizer,
            xDestroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
        ) -> ::std::os::raw::c_int,
    >,
    pub xFindTokenizer: ::std::option::Option<
        unsafe extern "C" fn(
            pApi: *mut fts5_api,
            zName: *const ::std::os::raw::c_char,
            ppContext: *mut *mut ::std::os::raw::c_void,
            pTokenizer: *mut fts5_tokenizer,
        ) -> ::std::os::raw::c_int,
    >,
    pub xCreateFunction: ::std::option::Option<
        unsafe extern "C" fn(
            pApi: *mut fts5_api,
            zName: *const ::std::os::raw::c_char,
            pContext: *mut ::std::os::raw::c_void,
            xFunction: fts5_extension_function,
            xDestroy: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
        ) -> ::std::os::raw::c_int,
    >,
}
#[test]
fn bindgen_test_layout_fts5_api() {
    const UNINIT: ::std::mem::MaybeUninit<fts5_api> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<fts5_api>(),
        32usize,
        concat!("Size of: ", stringify!(fts5_api))
    );
    assert_eq!(
        ::std::mem::align_of::<fts5_api>(),
        8usize,
        concat!("Alignment of ", stringify!(fts5_api))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(fts5_api),
            "::",
            stringify!(iVersion)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCreateTokenizer) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(fts5_api),
            "::",
            stringify!(xCreateTokenizer)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFindTokenizer) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(fts5_api),
            "::",
            stringify!(xFindTokenizer)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCreateFunction) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(fts5_api),
            "::",
            stringify!(xCreateFunction)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Pager {
    _unused: [u8; 0],
}
pub type PgHdr = libsql_pghdr;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PCache {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct libsql_pghdr {
    pub pPage: *mut sqlite3_pcache_page,
    pub pData: *mut ::std::os::raw::c_void,
    pub pExtra: *mut ::std::os::raw::c_void,
    pub pCache: *mut PCache,
    pub pDirty: *mut PgHdr,
    pub pPager: *mut Pager,
    pub pgno: ::std::os::raw::c_uint,
    pub pageHash: ::std::os::raw::c_uint,
    pub flags: ::std::os::raw::c_ushort,
    #[doc = " Elements above, except pCache, are public.  All that follow are\n private to pcache.c and should not be accessed by other modules.\n pCache is grouped with the public elements for efficiency."]
    pub nRef: ::std::os::raw::c_ulonglong,
    pub pDirtyNext: *mut PgHdr,
    pub pDirtyPrev: *mut PgHdr,
}
#[test]
fn bindgen_test_layout_libsql_pghdr() {
    const UNINIT: ::std::mem::MaybeUninit<libsql_pghdr> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<libsql_pghdr>(),
        88usize,
        concat!("Size of: ", stringify!(libsql_pghdr))
    );
    assert_eq!(
        ::std::mem::align_of::<libsql_pghdr>(),
        8usize,
        concat!("Alignment of ", stringify!(libsql_pghdr))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pPage) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(pPage)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pData) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(pData)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pExtra) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(pExtra)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pCache) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(pCache)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pDirty) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(pDirty)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pPager) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(pPager)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pgno) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(pgno)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pageHash) as usize - ptr as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(pageHash)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nRef) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(nRef)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pDirtyNext) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(pDirtyNext)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pDirtyPrev) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_pghdr),
            "::",
            stringify!(pDirtyPrev)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct libsql_wal_methods {
    pub iVersion: ::std::os::raw::c_int,
    pub xOpen: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut sqlite3_vfs,
            arg2: *mut sqlite3_file,
            arg3: *const ::std::os::raw::c_char,
            no_shm_mode: ::std::os::raw::c_int,
            max_size: ::std::os::raw::c_longlong,
            arg4: *mut libsql_wal_methods,
            arg5: *mut *mut libsql_wal,
        ) -> ::std::os::raw::c_int,
    >,
    pub xClose: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut libsql_wal,
            db: *mut sqlite3,
            sync_flags: ::std::os::raw::c_int,
            nBuf: ::std::os::raw::c_int,
            zBuf: *mut ::std::os::raw::c_uchar,
        ) -> ::std::os::raw::c_int,
    >,
    pub xLimit: ::std::option::Option<
        unsafe extern "C" fn(arg1: *mut libsql_wal, limit: ::std::os::raw::c_longlong),
    >,
    pub xBeginReadTransaction: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut libsql_wal,
            arg2: *mut ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xEndReadTransaction: ::std::option::Option<unsafe extern "C" fn(arg1: *mut libsql_wal)>,
    pub xFindFrame: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut libsql_wal,
            arg2: ::std::os::raw::c_uint,
            arg3: *mut ::std::os::raw::c_uint,
        ) -> ::std::os::raw::c_int,
    >,
    pub xReadFrame: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: *mut libsql_wal,
            arg2: ::std::os::raw::c_uint,
            arg3: ::std::os::raw::c_int,
            arg4: *mut ::std::os::raw::c_uchar,
        ) -> ::std::os::raw::c_int,
    >,
    pub xDbsize: ::std::option::Option<
        unsafe extern "C" fn(pWal: *mut libsql_wal) -> ::std::os::raw::c_uint,
    >,
    pub xBeginWriteTransaction:
        ::std::option::Option<unsafe extern "C" fn(pWal: *mut libsql_wal) -> ::std::os::raw::c_int>,
    pub xEndWriteTransaction:
        ::std::option::Option<unsafe extern "C" fn(pWal: *mut libsql_wal) -> ::std::os::raw::c_int>,
    pub xUndo: ::std::option::Option<
        unsafe extern "C" fn(
            pWal: *mut libsql_wal,
            xUndo: ::std::option::Option<
                unsafe extern "C" fn(
                    arg1: *mut ::std::os::raw::c_void,
                    arg2: ::std::os::raw::c_uint,
                ) -> ::std::os::raw::c_int,
            >,
            pUndoCtx: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub xSavepoint: ::std::option::Option<
        unsafe extern "C" fn(pWal: *mut libsql_wal, aWalData: *mut ::std::os::raw::c_uint),
    >,
    pub xSavepointUndo: ::std::option::Option<
        unsafe extern "C" fn(
            pWal: *mut libsql_wal,
            aWalData: *mut ::std::os::raw::c_uint,
        ) -> ::std::os::raw::c_int,
    >,
    pub xFrames: ::std::option::Option<
        unsafe extern "C" fn(
            pWal: *mut libsql_wal,
            arg1: ::std::os::raw::c_int,
            arg2: *mut libsql_pghdr,
            arg3: ::std::os::raw::c_uint,
            arg4: ::std::os::raw::c_int,
            arg5: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xCheckpoint: ::std::option::Option<
        unsafe extern "C" fn(
            pWal: *mut libsql_wal,
            db: *mut sqlite3,
            eMode: ::std::os::raw::c_int,
            xBusy: ::std::option::Option<
                unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int,
            >,
            pBusyArg: *mut ::std::os::raw::c_void,
            sync_flags: ::std::os::raw::c_int,
            nBuf: ::std::os::raw::c_int,
            zBuf: *mut ::std::os::raw::c_uchar,
            pnLog: *mut ::std::os::raw::c_int,
            pnCkpt: *mut ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xCallback:
        ::std::option::Option<unsafe extern "C" fn(pWal: *mut libsql_wal) -> ::std::os::raw::c_int>,
    pub xExclusiveMode: ::std::option::Option<
        unsafe extern "C" fn(
            pWal: *mut libsql_wal,
            op: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xHeapMemory:
        ::std::option::Option<unsafe extern "C" fn(pWal: *mut libsql_wal) -> ::std::os::raw::c_int>,
    pub xSnapshotGet: ::std::option::Option<
        unsafe extern "C" fn(
            pWal: *mut libsql_wal,
            ppSnapshot: *mut *mut sqlite3_snapshot,
        ) -> ::std::os::raw::c_int,
    >,
    pub xSnapshotOpen: ::std::option::Option<
        unsafe extern "C" fn(pWal: *mut libsql_wal, pSnapshot: *mut sqlite3_snapshot),
    >,
    pub xSnapshotRecover:
        ::std::option::Option<unsafe extern "C" fn(pWal: *mut libsql_wal) -> ::std::os::raw::c_int>,
    pub xSnapshotCheck: ::std::option::Option<
        unsafe extern "C" fn(
            pWal: *mut libsql_wal,
            pSnapshot: *mut sqlite3_snapshot,
        ) -> ::std::os::raw::c_int,
    >,
    pub xSnapshotUnlock: ::std::option::Option<unsafe extern "C" fn(pWal: *mut libsql_wal)>,
    pub xFramesize:
        ::std::option::Option<unsafe extern "C" fn(pWal: *mut libsql_wal) -> ::std::os::raw::c_int>,
    pub xFile:
        ::std::option::Option<unsafe extern "C" fn(pWal: *mut libsql_wal) -> *mut sqlite3_file>,
    pub xWriteLock: ::std::option::Option<
        unsafe extern "C" fn(
            pWal: *mut libsql_wal,
            bLock: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub xDb: ::std::option::Option<unsafe extern "C" fn(pWal: *mut libsql_wal, db: *mut sqlite3)>,
    pub xPathnameLen: ::std::option::Option<
        unsafe extern "C" fn(origPathname: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
    >,
    pub xGetWalPathname: ::std::option::Option<
        unsafe extern "C" fn(
            buf: *mut ::std::os::raw::c_char,
            orig: *const ::std::os::raw::c_char,
            orig_len: ::std::os::raw::c_int,
        ),
    >,
    pub xPreMainDbOpen: ::std::option::Option<
        unsafe extern "C" fn(
            methods: *mut libsql_wal_methods,
            main_db_path: *const ::std::os::raw::c_char,
        ) -> ::std::os::raw::c_int,
    >,
    pub bUsesShm: ::std::os::raw::c_int,
    pub zName: *const ::std::os::raw::c_char,
    pub pNext: *mut libsql_wal_methods,
}
#[test]
fn bindgen_test_layout_libsql_wal_methods() {
    const UNINIT: ::std::mem::MaybeUninit<libsql_wal_methods> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<libsql_wal_methods>(),
        272usize,
        concat!("Size of: ", stringify!(libsql_wal_methods))
    );
    assert_eq!(
        ::std::mem::align_of::<libsql_wal_methods>(),
        8usize,
        concat!("Alignment of ", stringify!(libsql_wal_methods))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(iVersion)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xOpen) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xOpen)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xClose) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xClose)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xLimit) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xLimit)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xBeginReadTransaction) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xBeginReadTransaction)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xEndReadTransaction) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xEndReadTransaction)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFindFrame) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xFindFrame)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xReadFrame) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xReadFrame)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDbsize) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xDbsize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xBeginWriteTransaction) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xBeginWriteTransaction)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xEndWriteTransaction) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xEndWriteTransaction)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xUndo) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xUndo)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSavepoint) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xSavepoint)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSavepointUndo) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xSavepointUndo)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFrames) as usize - ptr as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xFrames)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCheckpoint) as usize - ptr as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xCheckpoint)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xCallback) as usize - ptr as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xCallback)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xExclusiveMode) as usize - ptr as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xExclusiveMode)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xHeapMemory) as usize - ptr as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xHeapMemory)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSnapshotGet) as usize - ptr as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xSnapshotGet)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSnapshotOpen) as usize - ptr as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xSnapshotOpen)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSnapshotRecover) as usize - ptr as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xSnapshotRecover)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSnapshotCheck) as usize - ptr as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xSnapshotCheck)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xSnapshotUnlock) as usize - ptr as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xSnapshotUnlock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFramesize) as usize - ptr as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xFramesize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xFile) as usize - ptr as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xFile)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xWriteLock) as usize - ptr as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xWriteLock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xDb) as usize - ptr as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xDb)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xPathnameLen) as usize - ptr as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xPathnameLen)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xGetWalPathname) as usize - ptr as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xGetWalPathname)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xPreMainDbOpen) as usize - ptr as usize },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(xPreMainDbOpen)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).bUsesShm) as usize - ptr as usize },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(bUsesShm)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).zName) as usize - ptr as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(zName)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pNext) as usize - ptr as usize },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal_methods),
            "::",
            stringify!(pNext)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct WalIterator {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct WalCkptInfo {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct WalIndexHdr {
    pub iVersion: ::std::os::raw::c_uint,
    pub unused: ::std::os::raw::c_uint,
    pub iChange: ::std::os::raw::c_uint,
    pub isInit: ::std::os::raw::c_uchar,
    pub bigEndCksum: ::std::os::raw::c_uchar,
    pub szPage: ::std::os::raw::c_ushort,
    pub mxFrame: ::std::os::raw::c_uint,
    pub nPage: ::std::os::raw::c_uint,
    pub aFrameCksum: [::std::os::raw::c_uint; 2usize],
    pub aSalt: [::std::os::raw::c_uint; 2usize],
    pub aCksum: [::std::os::raw::c_uint; 2usize],
}
#[test]
fn bindgen_test_layout_WalIndexHdr() {
    const UNINIT: ::std::mem::MaybeUninit<WalIndexHdr> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<WalIndexHdr>(),
        48usize,
        concat!("Size of: ", stringify!(WalIndexHdr))
    );
    assert_eq!(
        ::std::mem::align_of::<WalIndexHdr>(),
        4usize,
        concat!("Alignment of ", stringify!(WalIndexHdr))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(WalIndexHdr),
            "::",
            stringify!(iVersion)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).unused) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(WalIndexHdr),
            "::",
            stringify!(unused)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iChange) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(WalIndexHdr),
            "::",
            stringify!(iChange)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).isInit) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(WalIndexHdr),
            "::",
            stringify!(isInit)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).bigEndCksum) as usize - ptr as usize },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(WalIndexHdr),
            "::",
            stringify!(bigEndCksum)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).szPage) as usize - ptr as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(WalIndexHdr),
            "::",
            stringify!(szPage)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mxFrame) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(WalIndexHdr),
            "::",
            stringify!(mxFrame)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nPage) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(WalIndexHdr),
            "::",
            stringify!(nPage)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).aFrameCksum) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(WalIndexHdr),
            "::",
            stringify!(aFrameCksum)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).aSalt) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(WalIndexHdr),
            "::",
            stringify!(aSalt)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).aCksum) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(WalIndexHdr),
            "::",
            stringify!(aCksum)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct libsql_wal {
    pub pVfs: *mut sqlite3_vfs,
    pub pDbFd: *mut sqlite3_file,
    pub pWalFd: *mut sqlite3_file,
    pub iCallback: ::std::os::raw::c_uint,
    pub mxWalSize: ::std::os::raw::c_longlong,
    pub nWiData: ::std::os::raw::c_int,
    pub szFirstBlock: ::std::os::raw::c_int,
    pub apWiData: *mut *mut ::std::os::raw::c_uint,
    pub szPage: ::std::os::raw::c_uint,
    pub readLock: ::std::os::raw::c_short,
    pub syncFlags: ::std::os::raw::c_uchar,
    pub exclusiveMode: ::std::os::raw::c_uchar,
    pub writeLock: ::std::os::raw::c_uchar,
    pub ckptLock: ::std::os::raw::c_uchar,
    pub readOnly: ::std::os::raw::c_uchar,
    pub truncateOnCommit: ::std::os::raw::c_uchar,
    pub syncHeader: ::std::os::raw::c_uchar,
    pub padToSectorBoundary: ::std::os::raw::c_uchar,
    pub bShmUnreliable: ::std::os::raw::c_uchar,
    pub hdr: WalIndexHdr,
    pub minFrame: ::std::os::raw::c_uint,
    pub iReCksum: ::std::os::raw::c_uint,
    pub zWalName: *const ::std::os::raw::c_char,
    pub nCkpt: ::std::os::raw::c_uint,
    pub lockError: ::std::os::raw::c_uchar,
    pub pSnapshot: *mut WalIndexHdr,
    pub db: *mut sqlite3,
    pub pMethods: *mut libsql_wal_methods,
    pub pMethodsData: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_libsql_wal() {
    const UNINIT: ::std::mem::MaybeUninit<libsql_wal> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<libsql_wal>(),
        176usize,
        concat!("Size of: ", stringify!(libsql_wal))
    );
    assert_eq!(
        ::std::mem::align_of::<libsql_wal>(),
        8usize,
        concat!("Alignment of ", stringify!(libsql_wal))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pVfs) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(pVfs)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pDbFd) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(pDbFd)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pWalFd) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(pWalFd)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iCallback) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(iCallback)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mxWalSize) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(mxWalSize)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nWiData) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(nWiData)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).szFirstBlock) as usize - ptr as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(szFirstBlock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).apWiData) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(apWiData)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).szPage) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(szPage)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).readLock) as usize - ptr as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(readLock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).syncFlags) as usize - ptr as usize },
        62usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(syncFlags)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).exclusiveMode) as usize - ptr as usize },
        63usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(exclusiveMode)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).writeLock) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(writeLock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ckptLock) as usize - ptr as usize },
        65usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(ckptLock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).readOnly) as usize - ptr as usize },
        66usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(readOnly)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).truncateOnCommit) as usize - ptr as usize },
        67usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(truncateOnCommit)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).syncHeader) as usize - ptr as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(syncHeader)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).padToSectorBoundary) as usize - ptr as usize },
        69usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(padToSectorBoundary)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).bShmUnreliable) as usize - ptr as usize },
        70usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(bShmUnreliable)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).hdr) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(hdr)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).minFrame) as usize - ptr as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(minFrame)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).iReCksum) as usize - ptr as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(iReCksum)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).zWalName) as usize - ptr as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(zWalName)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).nCkpt) as usize - ptr as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(nCkpt)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).lockError) as usize - ptr as usize },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(lockError)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pSnapshot) as usize - ptr as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(pSnapshot)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).db) as usize - ptr as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(db)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pMethods) as usize - ptr as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(pMethods)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pMethodsData) as usize - ptr as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(libsql_wal),
            "::",
            stringify!(pMethodsData)
        )
    );
}
pub type __builtin_va_list = [__va_list_tag; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __va_list_tag {
    pub gp_offset: ::std::os::raw::c_uint,
    pub fp_offset: ::std::os::raw::c_uint,
    pub overflow_arg_area: *mut ::std::os::raw::c_void,
    pub reg_save_area: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout___va_list_tag() {
    const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__va_list_tag>(),
        24usize,
        concat!("Size of: ", stringify!(__va_list_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<__va_list_tag>(),
        8usize,
        concat!("Alignment of ", stringify!(__va_list_tag))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(gp_offset)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(fp_offset)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(overflow_arg_area)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(reg_save_area)
        )
    );
}