sqlite3_sys/
base.rs

1/* automatically generated by rust-bindgen 0.69.4 */
2
3pub const __GNUC_VA_LIST: ::core::ffi::c_int = 1;
4pub const SQLITE_VERSION: &[u8; 7] = b"3.45.3\0";
5pub const SQLITE_VERSION_NUMBER: ::core::ffi::c_int = 3045003;
6pub const SQLITE_SOURCE_ID: &[u8; 85] =
7    b"2024-04-15 13:34:05 8653b758870e6ef0c98d46b3ace27849054af85da891eb121e9aaa537f1e8355\0";
8pub const SQLITE_OK: ::core::ffi::c_int = 0;
9pub const SQLITE_ERROR: ::core::ffi::c_int = 1;
10pub const SQLITE_INTERNAL: ::core::ffi::c_int = 2;
11pub const SQLITE_PERM: ::core::ffi::c_int = 3;
12pub const SQLITE_ABORT: ::core::ffi::c_int = 4;
13pub const SQLITE_BUSY: ::core::ffi::c_int = 5;
14pub const SQLITE_LOCKED: ::core::ffi::c_int = 6;
15pub const SQLITE_NOMEM: ::core::ffi::c_int = 7;
16pub const SQLITE_READONLY: ::core::ffi::c_int = 8;
17pub const SQLITE_INTERRUPT: ::core::ffi::c_int = 9;
18pub const SQLITE_IOERR: ::core::ffi::c_int = 10;
19pub const SQLITE_CORRUPT: ::core::ffi::c_int = 11;
20pub const SQLITE_NOTFOUND: ::core::ffi::c_int = 12;
21pub const SQLITE_FULL: ::core::ffi::c_int = 13;
22pub const SQLITE_CANTOPEN: ::core::ffi::c_int = 14;
23pub const SQLITE_PROTOCOL: ::core::ffi::c_int = 15;
24pub const SQLITE_EMPTY: ::core::ffi::c_int = 16;
25pub const SQLITE_SCHEMA: ::core::ffi::c_int = 17;
26pub const SQLITE_TOOBIG: ::core::ffi::c_int = 18;
27pub const SQLITE_CONSTRAINT: ::core::ffi::c_int = 19;
28pub const SQLITE_MISMATCH: ::core::ffi::c_int = 20;
29pub const SQLITE_MISUSE: ::core::ffi::c_int = 21;
30pub const SQLITE_NOLFS: ::core::ffi::c_int = 22;
31pub const SQLITE_AUTH: ::core::ffi::c_int = 23;
32pub const SQLITE_FORMAT: ::core::ffi::c_int = 24;
33pub const SQLITE_RANGE: ::core::ffi::c_int = 25;
34pub const SQLITE_NOTADB: ::core::ffi::c_int = 26;
35pub const SQLITE_NOTICE: ::core::ffi::c_int = 27;
36pub const SQLITE_WARNING: ::core::ffi::c_int = 28;
37pub const SQLITE_ROW: ::core::ffi::c_int = 100;
38pub const SQLITE_DONE: ::core::ffi::c_int = 101;
39pub const SQLITE_ERROR_MISSING_COLLSEQ: ::core::ffi::c_int = 257;
40pub const SQLITE_ERROR_RETRY: ::core::ffi::c_int = 513;
41pub const SQLITE_ERROR_SNAPSHOT: ::core::ffi::c_int = 769;
42pub const SQLITE_IOERR_READ: ::core::ffi::c_int = 266;
43pub const SQLITE_IOERR_SHORT_READ: ::core::ffi::c_int = 522;
44pub const SQLITE_IOERR_WRITE: ::core::ffi::c_int = 778;
45pub const SQLITE_IOERR_FSYNC: ::core::ffi::c_int = 1034;
46pub const SQLITE_IOERR_DIR_FSYNC: ::core::ffi::c_int = 1290;
47pub const SQLITE_IOERR_TRUNCATE: ::core::ffi::c_int = 1546;
48pub const SQLITE_IOERR_FSTAT: ::core::ffi::c_int = 1802;
49pub const SQLITE_IOERR_UNLOCK: ::core::ffi::c_int = 2058;
50pub const SQLITE_IOERR_RDLOCK: ::core::ffi::c_int = 2314;
51pub const SQLITE_IOERR_DELETE: ::core::ffi::c_int = 2570;
52pub const SQLITE_IOERR_BLOCKED: ::core::ffi::c_int = 2826;
53pub const SQLITE_IOERR_NOMEM: ::core::ffi::c_int = 3082;
54pub const SQLITE_IOERR_ACCESS: ::core::ffi::c_int = 3338;
55pub const SQLITE_IOERR_CHECKRESERVEDLOCK: ::core::ffi::c_int = 3594;
56pub const SQLITE_IOERR_LOCK: ::core::ffi::c_int = 3850;
57pub const SQLITE_IOERR_CLOSE: ::core::ffi::c_int = 4106;
58pub const SQLITE_IOERR_DIR_CLOSE: ::core::ffi::c_int = 4362;
59pub const SQLITE_IOERR_SHMOPEN: ::core::ffi::c_int = 4618;
60pub const SQLITE_IOERR_SHMSIZE: ::core::ffi::c_int = 4874;
61pub const SQLITE_IOERR_SHMLOCK: ::core::ffi::c_int = 5130;
62pub const SQLITE_IOERR_SHMMAP: ::core::ffi::c_int = 5386;
63pub const SQLITE_IOERR_SEEK: ::core::ffi::c_int = 5642;
64pub const SQLITE_IOERR_DELETE_NOENT: ::core::ffi::c_int = 5898;
65pub const SQLITE_IOERR_MMAP: ::core::ffi::c_int = 6154;
66pub const SQLITE_IOERR_GETTEMPPATH: ::core::ffi::c_int = 6410;
67pub const SQLITE_IOERR_CONVPATH: ::core::ffi::c_int = 6666;
68pub const SQLITE_IOERR_VNODE: ::core::ffi::c_int = 6922;
69pub const SQLITE_IOERR_AUTH: ::core::ffi::c_int = 7178;
70pub const SQLITE_IOERR_BEGIN_ATOMIC: ::core::ffi::c_int = 7434;
71pub const SQLITE_IOERR_COMMIT_ATOMIC: ::core::ffi::c_int = 7690;
72pub const SQLITE_IOERR_ROLLBACK_ATOMIC: ::core::ffi::c_int = 7946;
73pub const SQLITE_IOERR_DATA: ::core::ffi::c_int = 8202;
74pub const SQLITE_IOERR_CORRUPTFS: ::core::ffi::c_int = 8458;
75pub const SQLITE_IOERR_IN_PAGE: ::core::ffi::c_int = 8714;
76pub const SQLITE_LOCKED_SHAREDCACHE: ::core::ffi::c_int = 262;
77pub const SQLITE_LOCKED_VTAB: ::core::ffi::c_int = 518;
78pub const SQLITE_BUSY_RECOVERY: ::core::ffi::c_int = 261;
79pub const SQLITE_BUSY_SNAPSHOT: ::core::ffi::c_int = 517;
80pub const SQLITE_BUSY_TIMEOUT: ::core::ffi::c_int = 773;
81pub const SQLITE_CANTOPEN_NOTEMPDIR: ::core::ffi::c_int = 270;
82pub const SQLITE_CANTOPEN_ISDIR: ::core::ffi::c_int = 526;
83pub const SQLITE_CANTOPEN_FULLPATH: ::core::ffi::c_int = 782;
84pub const SQLITE_CANTOPEN_CONVPATH: ::core::ffi::c_int = 1038;
85pub const SQLITE_CANTOPEN_DIRTYWAL: ::core::ffi::c_int = 1294;
86pub const SQLITE_CANTOPEN_SYMLINK: ::core::ffi::c_int = 1550;
87pub const SQLITE_CORRUPT_VTAB: ::core::ffi::c_int = 267;
88pub const SQLITE_CORRUPT_SEQUENCE: ::core::ffi::c_int = 523;
89pub const SQLITE_CORRUPT_INDEX: ::core::ffi::c_int = 779;
90pub const SQLITE_READONLY_RECOVERY: ::core::ffi::c_int = 264;
91pub const SQLITE_READONLY_CANTLOCK: ::core::ffi::c_int = 520;
92pub const SQLITE_READONLY_ROLLBACK: ::core::ffi::c_int = 776;
93pub const SQLITE_READONLY_DBMOVED: ::core::ffi::c_int = 1032;
94pub const SQLITE_READONLY_CANTINIT: ::core::ffi::c_int = 1288;
95pub const SQLITE_READONLY_DIRECTORY: ::core::ffi::c_int = 1544;
96pub const SQLITE_ABORT_ROLLBACK: ::core::ffi::c_int = 516;
97pub const SQLITE_CONSTRAINT_CHECK: ::core::ffi::c_int = 275;
98pub const SQLITE_CONSTRAINT_COMMITHOOK: ::core::ffi::c_int = 531;
99pub const SQLITE_CONSTRAINT_FOREIGNKEY: ::core::ffi::c_int = 787;
100pub const SQLITE_CONSTRAINT_FUNCTION: ::core::ffi::c_int = 1043;
101pub const SQLITE_CONSTRAINT_NOTNULL: ::core::ffi::c_int = 1299;
102pub const SQLITE_CONSTRAINT_PRIMARYKEY: ::core::ffi::c_int = 1555;
103pub const SQLITE_CONSTRAINT_TRIGGER: ::core::ffi::c_int = 1811;
104pub const SQLITE_CONSTRAINT_UNIQUE: ::core::ffi::c_int = 2067;
105pub const SQLITE_CONSTRAINT_VTAB: ::core::ffi::c_int = 2323;
106pub const SQLITE_CONSTRAINT_ROWID: ::core::ffi::c_int = 2579;
107pub const SQLITE_CONSTRAINT_PINNED: ::core::ffi::c_int = 2835;
108pub const SQLITE_CONSTRAINT_DATATYPE: ::core::ffi::c_int = 3091;
109pub const SQLITE_NOTICE_RECOVER_WAL: ::core::ffi::c_int = 283;
110pub const SQLITE_NOTICE_RECOVER_ROLLBACK: ::core::ffi::c_int = 539;
111pub const SQLITE_NOTICE_RBU: ::core::ffi::c_int = 795;
112pub const SQLITE_WARNING_AUTOINDEX: ::core::ffi::c_int = 284;
113pub const SQLITE_AUTH_USER: ::core::ffi::c_int = 279;
114pub const SQLITE_OK_LOAD_PERMANENTLY: ::core::ffi::c_int = 256;
115pub const SQLITE_OK_SYMLINK: ::core::ffi::c_int = 512;
116pub const SQLITE_OPEN_READONLY: ::core::ffi::c_int = 1;
117pub const SQLITE_OPEN_READWRITE: ::core::ffi::c_int = 2;
118pub const SQLITE_OPEN_CREATE: ::core::ffi::c_int = 4;
119pub const SQLITE_OPEN_DELETEONCLOSE: ::core::ffi::c_int = 8;
120pub const SQLITE_OPEN_EXCLUSIVE: ::core::ffi::c_int = 16;
121pub const SQLITE_OPEN_AUTOPROXY: ::core::ffi::c_int = 32;
122pub const SQLITE_OPEN_URI: ::core::ffi::c_int = 64;
123pub const SQLITE_OPEN_MEMORY: ::core::ffi::c_int = 128;
124pub const SQLITE_OPEN_MAIN_DB: ::core::ffi::c_int = 256;
125pub const SQLITE_OPEN_TEMP_DB: ::core::ffi::c_int = 512;
126pub const SQLITE_OPEN_TRANSIENT_DB: ::core::ffi::c_int = 1024;
127pub const SQLITE_OPEN_MAIN_JOURNAL: ::core::ffi::c_int = 2048;
128pub const SQLITE_OPEN_TEMP_JOURNAL: ::core::ffi::c_int = 4096;
129pub const SQLITE_OPEN_SUBJOURNAL: ::core::ffi::c_int = 8192;
130pub const SQLITE_OPEN_SUPER_JOURNAL: ::core::ffi::c_int = 16384;
131pub const SQLITE_OPEN_NOMUTEX: ::core::ffi::c_int = 32768;
132pub const SQLITE_OPEN_FULLMUTEX: ::core::ffi::c_int = 65536;
133pub const SQLITE_OPEN_SHAREDCACHE: ::core::ffi::c_int = 131072;
134pub const SQLITE_OPEN_PRIVATECACHE: ::core::ffi::c_int = 262144;
135pub const SQLITE_OPEN_WAL: ::core::ffi::c_int = 524288;
136pub const SQLITE_OPEN_NOFOLLOW: ::core::ffi::c_int = 16777216;
137pub const SQLITE_OPEN_EXRESCODE: ::core::ffi::c_int = 33554432;
138pub const SQLITE_OPEN_MASTER_JOURNAL: ::core::ffi::c_int = 16384;
139pub const SQLITE_IOCAP_ATOMIC: ::core::ffi::c_int = 1;
140pub const SQLITE_IOCAP_ATOMIC512: ::core::ffi::c_int = 2;
141pub const SQLITE_IOCAP_ATOMIC1K: ::core::ffi::c_int = 4;
142pub const SQLITE_IOCAP_ATOMIC2K: ::core::ffi::c_int = 8;
143pub const SQLITE_IOCAP_ATOMIC4K: ::core::ffi::c_int = 16;
144pub const SQLITE_IOCAP_ATOMIC8K: ::core::ffi::c_int = 32;
145pub const SQLITE_IOCAP_ATOMIC16K: ::core::ffi::c_int = 64;
146pub const SQLITE_IOCAP_ATOMIC32K: ::core::ffi::c_int = 128;
147pub const SQLITE_IOCAP_ATOMIC64K: ::core::ffi::c_int = 256;
148pub const SQLITE_IOCAP_SAFE_APPEND: ::core::ffi::c_int = 512;
149pub const SQLITE_IOCAP_SEQUENTIAL: ::core::ffi::c_int = 1024;
150pub const SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN: ::core::ffi::c_int = 2048;
151pub const SQLITE_IOCAP_POWERSAFE_OVERWRITE: ::core::ffi::c_int = 4096;
152pub const SQLITE_IOCAP_IMMUTABLE: ::core::ffi::c_int = 8192;
153pub const SQLITE_IOCAP_BATCH_ATOMIC: ::core::ffi::c_int = 16384;
154pub const SQLITE_LOCK_NONE: ::core::ffi::c_int = 0;
155pub const SQLITE_LOCK_SHARED: ::core::ffi::c_int = 1;
156pub const SQLITE_LOCK_RESERVED: ::core::ffi::c_int = 2;
157pub const SQLITE_LOCK_PENDING: ::core::ffi::c_int = 3;
158pub const SQLITE_LOCK_EXCLUSIVE: ::core::ffi::c_int = 4;
159pub const SQLITE_SYNC_NORMAL: ::core::ffi::c_int = 2;
160pub const SQLITE_SYNC_FULL: ::core::ffi::c_int = 3;
161pub const SQLITE_SYNC_DATAONLY: ::core::ffi::c_int = 16;
162pub const SQLITE_FCNTL_LOCKSTATE: ::core::ffi::c_int = 1;
163pub const SQLITE_FCNTL_GET_LOCKPROXYFILE: ::core::ffi::c_int = 2;
164pub const SQLITE_FCNTL_SET_LOCKPROXYFILE: ::core::ffi::c_int = 3;
165pub const SQLITE_FCNTL_LAST_ERRNO: ::core::ffi::c_int = 4;
166pub const SQLITE_FCNTL_SIZE_HINT: ::core::ffi::c_int = 5;
167pub const SQLITE_FCNTL_CHUNK_SIZE: ::core::ffi::c_int = 6;
168pub const SQLITE_FCNTL_FILE_POINTER: ::core::ffi::c_int = 7;
169pub const SQLITE_FCNTL_SYNC_OMITTED: ::core::ffi::c_int = 8;
170pub const SQLITE_FCNTL_WIN32_AV_RETRY: ::core::ffi::c_int = 9;
171pub const SQLITE_FCNTL_PERSIST_WAL: ::core::ffi::c_int = 10;
172pub const SQLITE_FCNTL_OVERWRITE: ::core::ffi::c_int = 11;
173pub const SQLITE_FCNTL_VFSNAME: ::core::ffi::c_int = 12;
174pub const SQLITE_FCNTL_POWERSAFE_OVERWRITE: ::core::ffi::c_int = 13;
175pub const SQLITE_FCNTL_PRAGMA: ::core::ffi::c_int = 14;
176pub const SQLITE_FCNTL_BUSYHANDLER: ::core::ffi::c_int = 15;
177pub const SQLITE_FCNTL_TEMPFILENAME: ::core::ffi::c_int = 16;
178pub const SQLITE_FCNTL_MMAP_SIZE: ::core::ffi::c_int = 18;
179pub const SQLITE_FCNTL_TRACE: ::core::ffi::c_int = 19;
180pub const SQLITE_FCNTL_HAS_MOVED: ::core::ffi::c_int = 20;
181pub const SQLITE_FCNTL_SYNC: ::core::ffi::c_int = 21;
182pub const SQLITE_FCNTL_COMMIT_PHASETWO: ::core::ffi::c_int = 22;
183pub const SQLITE_FCNTL_WIN32_SET_HANDLE: ::core::ffi::c_int = 23;
184pub const SQLITE_FCNTL_WAL_BLOCK: ::core::ffi::c_int = 24;
185pub const SQLITE_FCNTL_ZIPVFS: ::core::ffi::c_int = 25;
186pub const SQLITE_FCNTL_RBU: ::core::ffi::c_int = 26;
187pub const SQLITE_FCNTL_VFS_POINTER: ::core::ffi::c_int = 27;
188pub const SQLITE_FCNTL_JOURNAL_POINTER: ::core::ffi::c_int = 28;
189pub const SQLITE_FCNTL_WIN32_GET_HANDLE: ::core::ffi::c_int = 29;
190pub const SQLITE_FCNTL_PDB: ::core::ffi::c_int = 30;
191pub const SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: ::core::ffi::c_int = 31;
192pub const SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: ::core::ffi::c_int = 32;
193pub const SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: ::core::ffi::c_int = 33;
194pub const SQLITE_FCNTL_LOCK_TIMEOUT: ::core::ffi::c_int = 34;
195pub const SQLITE_FCNTL_DATA_VERSION: ::core::ffi::c_int = 35;
196pub const SQLITE_FCNTL_SIZE_LIMIT: ::core::ffi::c_int = 36;
197pub const SQLITE_FCNTL_CKPT_DONE: ::core::ffi::c_int = 37;
198pub const SQLITE_FCNTL_RESERVE_BYTES: ::core::ffi::c_int = 38;
199pub const SQLITE_FCNTL_CKPT_START: ::core::ffi::c_int = 39;
200pub const SQLITE_FCNTL_EXTERNAL_READER: ::core::ffi::c_int = 40;
201pub const SQLITE_FCNTL_CKSM_FILE: ::core::ffi::c_int = 41;
202pub const SQLITE_FCNTL_RESET_CACHE: ::core::ffi::c_int = 42;
203pub const SQLITE_GET_LOCKPROXYFILE: ::core::ffi::c_int = 2;
204pub const SQLITE_SET_LOCKPROXYFILE: ::core::ffi::c_int = 3;
205pub const SQLITE_LAST_ERRNO: ::core::ffi::c_int = 4;
206pub const SQLITE_ACCESS_EXISTS: ::core::ffi::c_int = 0;
207pub const SQLITE_ACCESS_READWRITE: ::core::ffi::c_int = 1;
208pub const SQLITE_ACCESS_READ: ::core::ffi::c_int = 2;
209pub const SQLITE_SHM_UNLOCK: ::core::ffi::c_int = 1;
210pub const SQLITE_SHM_LOCK: ::core::ffi::c_int = 2;
211pub const SQLITE_SHM_SHARED: ::core::ffi::c_int = 4;
212pub const SQLITE_SHM_EXCLUSIVE: ::core::ffi::c_int = 8;
213pub const SQLITE_SHM_NLOCK: ::core::ffi::c_int = 8;
214pub const SQLITE_CONFIG_SINGLETHREAD: ::core::ffi::c_int = 1;
215pub const SQLITE_CONFIG_MULTITHREAD: ::core::ffi::c_int = 2;
216pub const SQLITE_CONFIG_SERIALIZED: ::core::ffi::c_int = 3;
217pub const SQLITE_CONFIG_MALLOC: ::core::ffi::c_int = 4;
218pub const SQLITE_CONFIG_GETMALLOC: ::core::ffi::c_int = 5;
219pub const SQLITE_CONFIG_SCRATCH: ::core::ffi::c_int = 6;
220pub const SQLITE_CONFIG_PAGECACHE: ::core::ffi::c_int = 7;
221pub const SQLITE_CONFIG_HEAP: ::core::ffi::c_int = 8;
222pub const SQLITE_CONFIG_MEMSTATUS: ::core::ffi::c_int = 9;
223pub const SQLITE_CONFIG_MUTEX: ::core::ffi::c_int = 10;
224pub const SQLITE_CONFIG_GETMUTEX: ::core::ffi::c_int = 11;
225pub const SQLITE_CONFIG_LOOKASIDE: ::core::ffi::c_int = 13;
226pub const SQLITE_CONFIG_PCACHE: ::core::ffi::c_int = 14;
227pub const SQLITE_CONFIG_GETPCACHE: ::core::ffi::c_int = 15;
228pub const SQLITE_CONFIG_LOG: ::core::ffi::c_int = 16;
229pub const SQLITE_CONFIG_URI: ::core::ffi::c_int = 17;
230pub const SQLITE_CONFIG_PCACHE2: ::core::ffi::c_int = 18;
231pub const SQLITE_CONFIG_GETPCACHE2: ::core::ffi::c_int = 19;
232pub const SQLITE_CONFIG_COVERING_INDEX_SCAN: ::core::ffi::c_int = 20;
233pub const SQLITE_CONFIG_SQLLOG: ::core::ffi::c_int = 21;
234pub const SQLITE_CONFIG_MMAP_SIZE: ::core::ffi::c_int = 22;
235pub const SQLITE_CONFIG_WIN32_HEAPSIZE: ::core::ffi::c_int = 23;
236pub const SQLITE_CONFIG_PCACHE_HDRSZ: ::core::ffi::c_int = 24;
237pub const SQLITE_CONFIG_PMASZ: ::core::ffi::c_int = 25;
238pub const SQLITE_CONFIG_STMTJRNL_SPILL: ::core::ffi::c_int = 26;
239pub const SQLITE_CONFIG_SMALL_MALLOC: ::core::ffi::c_int = 27;
240pub const SQLITE_CONFIG_SORTERREF_SIZE: ::core::ffi::c_int = 28;
241pub const SQLITE_CONFIG_MEMDB_MAXSIZE: ::core::ffi::c_int = 29;
242pub const SQLITE_CONFIG_ROWID_IN_VIEW: ::core::ffi::c_int = 30;
243pub const SQLITE_DBCONFIG_MAINDBNAME: ::core::ffi::c_int = 1000;
244pub const SQLITE_DBCONFIG_LOOKASIDE: ::core::ffi::c_int = 1001;
245pub const SQLITE_DBCONFIG_ENABLE_FKEY: ::core::ffi::c_int = 1002;
246pub const SQLITE_DBCONFIG_ENABLE_TRIGGER: ::core::ffi::c_int = 1003;
247pub const SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER: ::core::ffi::c_int = 1004;
248pub const SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION: ::core::ffi::c_int = 1005;
249pub const SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE: ::core::ffi::c_int = 1006;
250pub const SQLITE_DBCONFIG_ENABLE_QPSG: ::core::ffi::c_int = 1007;
251pub const SQLITE_DBCONFIG_TRIGGER_EQP: ::core::ffi::c_int = 1008;
252pub const SQLITE_DBCONFIG_RESET_DATABASE: ::core::ffi::c_int = 1009;
253pub const SQLITE_DBCONFIG_DEFENSIVE: ::core::ffi::c_int = 1010;
254pub const SQLITE_DBCONFIG_WRITABLE_SCHEMA: ::core::ffi::c_int = 1011;
255pub const SQLITE_DBCONFIG_LEGACY_ALTER_TABLE: ::core::ffi::c_int = 1012;
256pub const SQLITE_DBCONFIG_DQS_DML: ::core::ffi::c_int = 1013;
257pub const SQLITE_DBCONFIG_DQS_DDL: ::core::ffi::c_int = 1014;
258pub const SQLITE_DBCONFIG_ENABLE_VIEW: ::core::ffi::c_int = 1015;
259pub const SQLITE_DBCONFIG_LEGACY_FILE_FORMAT: ::core::ffi::c_int = 1016;
260pub const SQLITE_DBCONFIG_TRUSTED_SCHEMA: ::core::ffi::c_int = 1017;
261pub const SQLITE_DBCONFIG_STMT_SCANSTATUS: ::core::ffi::c_int = 1018;
262pub const SQLITE_DBCONFIG_REVERSE_SCANORDER: ::core::ffi::c_int = 1019;
263pub const SQLITE_DBCONFIG_MAX: ::core::ffi::c_int = 1019;
264pub const SQLITE_DENY: ::core::ffi::c_int = 1;
265pub const SQLITE_IGNORE: ::core::ffi::c_int = 2;
266pub const SQLITE_CREATE_INDEX: ::core::ffi::c_int = 1;
267pub const SQLITE_CREATE_TABLE: ::core::ffi::c_int = 2;
268pub const SQLITE_CREATE_TEMP_INDEX: ::core::ffi::c_int = 3;
269pub const SQLITE_CREATE_TEMP_TABLE: ::core::ffi::c_int = 4;
270pub const SQLITE_CREATE_TEMP_TRIGGER: ::core::ffi::c_int = 5;
271pub const SQLITE_CREATE_TEMP_VIEW: ::core::ffi::c_int = 6;
272pub const SQLITE_CREATE_TRIGGER: ::core::ffi::c_int = 7;
273pub const SQLITE_CREATE_VIEW: ::core::ffi::c_int = 8;
274pub const SQLITE_DELETE: ::core::ffi::c_int = 9;
275pub const SQLITE_DROP_INDEX: ::core::ffi::c_int = 10;
276pub const SQLITE_DROP_TABLE: ::core::ffi::c_int = 11;
277pub const SQLITE_DROP_TEMP_INDEX: ::core::ffi::c_int = 12;
278pub const SQLITE_DROP_TEMP_TABLE: ::core::ffi::c_int = 13;
279pub const SQLITE_DROP_TEMP_TRIGGER: ::core::ffi::c_int = 14;
280pub const SQLITE_DROP_TEMP_VIEW: ::core::ffi::c_int = 15;
281pub const SQLITE_DROP_TRIGGER: ::core::ffi::c_int = 16;
282pub const SQLITE_DROP_VIEW: ::core::ffi::c_int = 17;
283pub const SQLITE_INSERT: ::core::ffi::c_int = 18;
284pub const SQLITE_PRAGMA: ::core::ffi::c_int = 19;
285pub const SQLITE_READ: ::core::ffi::c_int = 20;
286pub const SQLITE_SELECT: ::core::ffi::c_int = 21;
287pub const SQLITE_TRANSACTION: ::core::ffi::c_int = 22;
288pub const SQLITE_UPDATE: ::core::ffi::c_int = 23;
289pub const SQLITE_ATTACH: ::core::ffi::c_int = 24;
290pub const SQLITE_DETACH: ::core::ffi::c_int = 25;
291pub const SQLITE_ALTER_TABLE: ::core::ffi::c_int = 26;
292pub const SQLITE_REINDEX: ::core::ffi::c_int = 27;
293pub const SQLITE_ANALYZE: ::core::ffi::c_int = 28;
294pub const SQLITE_CREATE_VTABLE: ::core::ffi::c_int = 29;
295pub const SQLITE_DROP_VTABLE: ::core::ffi::c_int = 30;
296pub const SQLITE_FUNCTION: ::core::ffi::c_int = 31;
297pub const SQLITE_SAVEPOINT: ::core::ffi::c_int = 32;
298pub const SQLITE_COPY: ::core::ffi::c_int = 0;
299pub const SQLITE_RECURSIVE: ::core::ffi::c_int = 33;
300pub const SQLITE_TRACE_STMT: ::core::ffi::c_int = 1;
301pub const SQLITE_TRACE_PROFILE: ::core::ffi::c_int = 2;
302pub const SQLITE_TRACE_ROW: ::core::ffi::c_int = 4;
303pub const SQLITE_TRACE_CLOSE: ::core::ffi::c_int = 8;
304pub const SQLITE_LIMIT_LENGTH: ::core::ffi::c_int = 0;
305pub const SQLITE_LIMIT_SQL_LENGTH: ::core::ffi::c_int = 1;
306pub const SQLITE_LIMIT_COLUMN: ::core::ffi::c_int = 2;
307pub const SQLITE_LIMIT_EXPR_DEPTH: ::core::ffi::c_int = 3;
308pub const SQLITE_LIMIT_COMPOUND_SELECT: ::core::ffi::c_int = 4;
309pub const SQLITE_LIMIT_VDBE_OP: ::core::ffi::c_int = 5;
310pub const SQLITE_LIMIT_FUNCTION_ARG: ::core::ffi::c_int = 6;
311pub const SQLITE_LIMIT_ATTACHED: ::core::ffi::c_int = 7;
312pub const SQLITE_LIMIT_LIKE_PATTERN_LENGTH: ::core::ffi::c_int = 8;
313pub const SQLITE_LIMIT_VARIABLE_NUMBER: ::core::ffi::c_int = 9;
314pub const SQLITE_LIMIT_TRIGGER_DEPTH: ::core::ffi::c_int = 10;
315pub const SQLITE_LIMIT_WORKER_THREADS: ::core::ffi::c_int = 11;
316pub const SQLITE_PREPARE_PERSISTENT: ::core::ffi::c_int = 1;
317pub const SQLITE_PREPARE_NORMALIZE: ::core::ffi::c_int = 2;
318pub const SQLITE_PREPARE_NO_VTAB: ::core::ffi::c_int = 4;
319pub const SQLITE_INTEGER: ::core::ffi::c_int = 1;
320pub const SQLITE_FLOAT: ::core::ffi::c_int = 2;
321pub const SQLITE_BLOB: ::core::ffi::c_int = 4;
322pub const SQLITE_NULL: ::core::ffi::c_int = 5;
323pub const SQLITE_TEXT: ::core::ffi::c_int = 3;
324pub const SQLITE3_TEXT: ::core::ffi::c_int = 3;
325pub const SQLITE_UTF8: ::core::ffi::c_int = 1;
326pub const SQLITE_UTF16LE: ::core::ffi::c_int = 2;
327pub const SQLITE_UTF16BE: ::core::ffi::c_int = 3;
328pub const SQLITE_UTF16: ::core::ffi::c_int = 4;
329pub const SQLITE_ANY: ::core::ffi::c_int = 5;
330pub const SQLITE_UTF16_ALIGNED: ::core::ffi::c_int = 8;
331pub const SQLITE_DETERMINISTIC: ::core::ffi::c_int = 2048;
332pub const SQLITE_DIRECTONLY: ::core::ffi::c_int = 524288;
333pub const SQLITE_SUBTYPE: ::core::ffi::c_int = 1048576;
334pub const SQLITE_INNOCUOUS: ::core::ffi::c_int = 2097152;
335pub const SQLITE_RESULT_SUBTYPE: ::core::ffi::c_int = 16777216;
336pub const SQLITE_WIN32_DATA_DIRECTORY_TYPE: ::core::ffi::c_int = 1;
337pub const SQLITE_WIN32_TEMP_DIRECTORY_TYPE: ::core::ffi::c_int = 2;
338pub const SQLITE_TXN_NONE: ::core::ffi::c_int = 0;
339pub const SQLITE_TXN_READ: ::core::ffi::c_int = 1;
340pub const SQLITE_TXN_WRITE: ::core::ffi::c_int = 2;
341pub const SQLITE_INDEX_SCAN_UNIQUE: ::core::ffi::c_int = 1;
342pub const SQLITE_INDEX_CONSTRAINT_EQ: ::core::ffi::c_int = 2;
343pub const SQLITE_INDEX_CONSTRAINT_GT: ::core::ffi::c_int = 4;
344pub const SQLITE_INDEX_CONSTRAINT_LE: ::core::ffi::c_int = 8;
345pub const SQLITE_INDEX_CONSTRAINT_LT: ::core::ffi::c_int = 16;
346pub const SQLITE_INDEX_CONSTRAINT_GE: ::core::ffi::c_int = 32;
347pub const SQLITE_INDEX_CONSTRAINT_MATCH: ::core::ffi::c_int = 64;
348pub const SQLITE_INDEX_CONSTRAINT_LIKE: ::core::ffi::c_int = 65;
349pub const SQLITE_INDEX_CONSTRAINT_GLOB: ::core::ffi::c_int = 66;
350pub const SQLITE_INDEX_CONSTRAINT_REGEXP: ::core::ffi::c_int = 67;
351pub const SQLITE_INDEX_CONSTRAINT_NE: ::core::ffi::c_int = 68;
352pub const SQLITE_INDEX_CONSTRAINT_ISNOT: ::core::ffi::c_int = 69;
353pub const SQLITE_INDEX_CONSTRAINT_ISNOTNULL: ::core::ffi::c_int = 70;
354pub const SQLITE_INDEX_CONSTRAINT_ISNULL: ::core::ffi::c_int = 71;
355pub const SQLITE_INDEX_CONSTRAINT_IS: ::core::ffi::c_int = 72;
356pub const SQLITE_INDEX_CONSTRAINT_LIMIT: ::core::ffi::c_int = 73;
357pub const SQLITE_INDEX_CONSTRAINT_OFFSET: ::core::ffi::c_int = 74;
358pub const SQLITE_INDEX_CONSTRAINT_FUNCTION: ::core::ffi::c_int = 150;
359pub const SQLITE_MUTEX_FAST: ::core::ffi::c_int = 0;
360pub const SQLITE_MUTEX_RECURSIVE: ::core::ffi::c_int = 1;
361pub const SQLITE_MUTEX_STATIC_MAIN: ::core::ffi::c_int = 2;
362pub const SQLITE_MUTEX_STATIC_MEM: ::core::ffi::c_int = 3;
363pub const SQLITE_MUTEX_STATIC_MEM2: ::core::ffi::c_int = 4;
364pub const SQLITE_MUTEX_STATIC_OPEN: ::core::ffi::c_int = 4;
365pub const SQLITE_MUTEX_STATIC_PRNG: ::core::ffi::c_int = 5;
366pub const SQLITE_MUTEX_STATIC_LRU: ::core::ffi::c_int = 6;
367pub const SQLITE_MUTEX_STATIC_LRU2: ::core::ffi::c_int = 7;
368pub const SQLITE_MUTEX_STATIC_PMEM: ::core::ffi::c_int = 7;
369pub const SQLITE_MUTEX_STATIC_APP1: ::core::ffi::c_int = 8;
370pub const SQLITE_MUTEX_STATIC_APP2: ::core::ffi::c_int = 9;
371pub const SQLITE_MUTEX_STATIC_APP3: ::core::ffi::c_int = 10;
372pub const SQLITE_MUTEX_STATIC_VFS1: ::core::ffi::c_int = 11;
373pub const SQLITE_MUTEX_STATIC_VFS2: ::core::ffi::c_int = 12;
374pub const SQLITE_MUTEX_STATIC_VFS3: ::core::ffi::c_int = 13;
375pub const SQLITE_MUTEX_STATIC_MASTER: ::core::ffi::c_int = 2;
376pub const SQLITE_TESTCTRL_FIRST: ::core::ffi::c_int = 5;
377pub const SQLITE_TESTCTRL_PRNG_SAVE: ::core::ffi::c_int = 5;
378pub const SQLITE_TESTCTRL_PRNG_RESTORE: ::core::ffi::c_int = 6;
379pub const SQLITE_TESTCTRL_PRNG_RESET: ::core::ffi::c_int = 7;
380pub const SQLITE_TESTCTRL_FK_NO_ACTION: ::core::ffi::c_int = 7;
381pub const SQLITE_TESTCTRL_BITVEC_TEST: ::core::ffi::c_int = 8;
382pub const SQLITE_TESTCTRL_FAULT_INSTALL: ::core::ffi::c_int = 9;
383pub const SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS: ::core::ffi::c_int = 10;
384pub const SQLITE_TESTCTRL_PENDING_BYTE: ::core::ffi::c_int = 11;
385pub const SQLITE_TESTCTRL_ASSERT: ::core::ffi::c_int = 12;
386pub const SQLITE_TESTCTRL_ALWAYS: ::core::ffi::c_int = 13;
387pub const SQLITE_TESTCTRL_RESERVE: ::core::ffi::c_int = 14;
388pub const SQLITE_TESTCTRL_JSON_SELFCHECK: ::core::ffi::c_int = 14;
389pub const SQLITE_TESTCTRL_OPTIMIZATIONS: ::core::ffi::c_int = 15;
390pub const SQLITE_TESTCTRL_ISKEYWORD: ::core::ffi::c_int = 16;
391pub const SQLITE_TESTCTRL_SCRATCHMALLOC: ::core::ffi::c_int = 17;
392pub const SQLITE_TESTCTRL_INTERNAL_FUNCTIONS: ::core::ffi::c_int = 17;
393pub const SQLITE_TESTCTRL_LOCALTIME_FAULT: ::core::ffi::c_int = 18;
394pub const SQLITE_TESTCTRL_EXPLAIN_STMT: ::core::ffi::c_int = 19;
395pub const SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD: ::core::ffi::c_int = 19;
396pub const SQLITE_TESTCTRL_NEVER_CORRUPT: ::core::ffi::c_int = 20;
397pub const SQLITE_TESTCTRL_VDBE_COVERAGE: ::core::ffi::c_int = 21;
398pub const SQLITE_TESTCTRL_BYTEORDER: ::core::ffi::c_int = 22;
399pub const SQLITE_TESTCTRL_ISINIT: ::core::ffi::c_int = 23;
400pub const SQLITE_TESTCTRL_SORTER_MMAP: ::core::ffi::c_int = 24;
401pub const SQLITE_TESTCTRL_IMPOSTER: ::core::ffi::c_int = 25;
402pub const SQLITE_TESTCTRL_PARSER_COVERAGE: ::core::ffi::c_int = 26;
403pub const SQLITE_TESTCTRL_RESULT_INTREAL: ::core::ffi::c_int = 27;
404pub const SQLITE_TESTCTRL_PRNG_SEED: ::core::ffi::c_int = 28;
405pub const SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS: ::core::ffi::c_int = 29;
406pub const SQLITE_TESTCTRL_SEEK_COUNT: ::core::ffi::c_int = 30;
407pub const SQLITE_TESTCTRL_TRACEFLAGS: ::core::ffi::c_int = 31;
408pub const SQLITE_TESTCTRL_TUNE: ::core::ffi::c_int = 32;
409pub const SQLITE_TESTCTRL_LOGEST: ::core::ffi::c_int = 33;
410pub const SQLITE_TESTCTRL_USELONGDOUBLE: ::core::ffi::c_int = 34;
411pub const SQLITE_TESTCTRL_LAST: ::core::ffi::c_int = 34;
412pub const SQLITE_STATUS_MEMORY_USED: ::core::ffi::c_int = 0;
413pub const SQLITE_STATUS_PAGECACHE_USED: ::core::ffi::c_int = 1;
414pub const SQLITE_STATUS_PAGECACHE_OVERFLOW: ::core::ffi::c_int = 2;
415pub const SQLITE_STATUS_SCRATCH_USED: ::core::ffi::c_int = 3;
416pub const SQLITE_STATUS_SCRATCH_OVERFLOW: ::core::ffi::c_int = 4;
417pub const SQLITE_STATUS_MALLOC_SIZE: ::core::ffi::c_int = 5;
418pub const SQLITE_STATUS_PARSER_STACK: ::core::ffi::c_int = 6;
419pub const SQLITE_STATUS_PAGECACHE_SIZE: ::core::ffi::c_int = 7;
420pub const SQLITE_STATUS_SCRATCH_SIZE: ::core::ffi::c_int = 8;
421pub const SQLITE_STATUS_MALLOC_COUNT: ::core::ffi::c_int = 9;
422pub const SQLITE_DBSTATUS_LOOKASIDE_USED: ::core::ffi::c_int = 0;
423pub const SQLITE_DBSTATUS_CACHE_USED: ::core::ffi::c_int = 1;
424pub const SQLITE_DBSTATUS_SCHEMA_USED: ::core::ffi::c_int = 2;
425pub const SQLITE_DBSTATUS_STMT_USED: ::core::ffi::c_int = 3;
426pub const SQLITE_DBSTATUS_LOOKASIDE_HIT: ::core::ffi::c_int = 4;
427pub const SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE: ::core::ffi::c_int = 5;
428pub const SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL: ::core::ffi::c_int = 6;
429pub const SQLITE_DBSTATUS_CACHE_HIT: ::core::ffi::c_int = 7;
430pub const SQLITE_DBSTATUS_CACHE_MISS: ::core::ffi::c_int = 8;
431pub const SQLITE_DBSTATUS_CACHE_WRITE: ::core::ffi::c_int = 9;
432pub const SQLITE_DBSTATUS_DEFERRED_FKS: ::core::ffi::c_int = 10;
433pub const SQLITE_DBSTATUS_CACHE_USED_SHARED: ::core::ffi::c_int = 11;
434pub const SQLITE_DBSTATUS_CACHE_SPILL: ::core::ffi::c_int = 12;
435pub const SQLITE_DBSTATUS_MAX: ::core::ffi::c_int = 12;
436pub const SQLITE_STMTSTATUS_FULLSCAN_STEP: ::core::ffi::c_int = 1;
437pub const SQLITE_STMTSTATUS_SORT: ::core::ffi::c_int = 2;
438pub const SQLITE_STMTSTATUS_AUTOINDEX: ::core::ffi::c_int = 3;
439pub const SQLITE_STMTSTATUS_VM_STEP: ::core::ffi::c_int = 4;
440pub const SQLITE_STMTSTATUS_REPREPARE: ::core::ffi::c_int = 5;
441pub const SQLITE_STMTSTATUS_RUN: ::core::ffi::c_int = 6;
442pub const SQLITE_STMTSTATUS_FILTER_MISS: ::core::ffi::c_int = 7;
443pub const SQLITE_STMTSTATUS_FILTER_HIT: ::core::ffi::c_int = 8;
444pub const SQLITE_STMTSTATUS_MEMUSED: ::core::ffi::c_int = 99;
445pub const SQLITE_CHECKPOINT_PASSIVE: ::core::ffi::c_int = 0;
446pub const SQLITE_CHECKPOINT_FULL: ::core::ffi::c_int = 1;
447pub const SQLITE_CHECKPOINT_RESTART: ::core::ffi::c_int = 2;
448pub const SQLITE_CHECKPOINT_TRUNCATE: ::core::ffi::c_int = 3;
449pub const SQLITE_VTAB_CONSTRAINT_SUPPORT: ::core::ffi::c_int = 1;
450pub const SQLITE_VTAB_INNOCUOUS: ::core::ffi::c_int = 2;
451pub const SQLITE_VTAB_DIRECTONLY: ::core::ffi::c_int = 3;
452pub const SQLITE_VTAB_USES_ALL_SCHEMAS: ::core::ffi::c_int = 4;
453pub const SQLITE_ROLLBACK: ::core::ffi::c_int = 1;
454pub const SQLITE_FAIL: ::core::ffi::c_int = 3;
455pub const SQLITE_REPLACE: ::core::ffi::c_int = 5;
456pub const SQLITE_SCANSTAT_NLOOP: ::core::ffi::c_int = 0;
457pub const SQLITE_SCANSTAT_NVISIT: ::core::ffi::c_int = 1;
458pub const SQLITE_SCANSTAT_EST: ::core::ffi::c_int = 2;
459pub const SQLITE_SCANSTAT_NAME: ::core::ffi::c_int = 3;
460pub const SQLITE_SCANSTAT_EXPLAIN: ::core::ffi::c_int = 4;
461pub const SQLITE_SCANSTAT_SELECTID: ::core::ffi::c_int = 5;
462pub const SQLITE_SCANSTAT_PARENTID: ::core::ffi::c_int = 6;
463pub const SQLITE_SCANSTAT_NCYCLE: ::core::ffi::c_int = 7;
464pub const SQLITE_SCANSTAT_COMPLEX: ::core::ffi::c_int = 1;
465pub const SQLITE_SERIALIZE_NOCOPY: ::core::ffi::c_int = 1;
466pub const SQLITE_DESERIALIZE_FREEONCLOSE: ::core::ffi::c_int = 1;
467pub const SQLITE_DESERIALIZE_RESIZEABLE: ::core::ffi::c_int = 2;
468pub const SQLITE_DESERIALIZE_READONLY: ::core::ffi::c_int = 4;
469pub const NOT_WITHIN: ::core::ffi::c_int = 0;
470pub const PARTLY_WITHIN: ::core::ffi::c_int = 1;
471pub const FULLY_WITHIN: ::core::ffi::c_int = 2;
472pub const FTS5_TOKENIZE_QUERY: ::core::ffi::c_int = 1;
473pub const FTS5_TOKENIZE_PREFIX: ::core::ffi::c_int = 2;
474pub const FTS5_TOKENIZE_DOCUMENT: ::core::ffi::c_int = 4;
475pub const FTS5_TOKENIZE_AUX: ::core::ffi::c_int = 8;
476pub const FTS5_TOKEN_COLOCATED: ::core::ffi::c_int = 1;
477pub type va_list = __builtin_va_list;
478pub type __gnuc_va_list = __builtin_va_list;
479extern "C" {
480    pub static sqlite3_version: [::core::ffi::c_char; 0usize];
481}
482extern "C" {
483    pub fn sqlite3_libversion() -> *const ::core::ffi::c_char;
484}
485extern "C" {
486    pub fn sqlite3_sourceid() -> *const ::core::ffi::c_char;
487}
488extern "C" {
489    pub fn sqlite3_libversion_number() -> ::core::ffi::c_int;
490}
491extern "C" {
492    pub fn sqlite3_compileoption_used(zOptName: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
493}
494extern "C" {
495    pub fn sqlite3_compileoption_get(N: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
496}
497extern "C" {
498    pub fn sqlite3_threadsafe() -> ::core::ffi::c_int;
499}
500#[repr(C)]
501#[derive(Debug, Copy, Clone)]
502pub struct sqlite3 {
503    _unused: [u8; 0],
504}
505pub type sqlite_int64 = ::core::ffi::c_longlong;
506pub type sqlite_uint64 = ::core::ffi::c_ulonglong;
507pub type sqlite3_int64 = sqlite_int64;
508pub type sqlite3_uint64 = sqlite_uint64;
509extern "C" {
510    pub fn sqlite3_close(arg1: *mut sqlite3) -> ::core::ffi::c_int;
511}
512extern "C" {
513    pub fn sqlite3_close_v2(arg1: *mut sqlite3) -> ::core::ffi::c_int;
514}
515pub type sqlite3_callback = ::core::option::Option<
516    unsafe extern "C" fn(
517        arg1: *mut ::core::ffi::c_void,
518        arg2: ::core::ffi::c_int,
519        arg3: *mut *mut ::core::ffi::c_char,
520        arg4: *mut *mut ::core::ffi::c_char,
521    ) -> ::core::ffi::c_int,
522>;
523extern "C" {
524    pub fn sqlite3_exec(
525        arg1: *mut sqlite3,
526        sql: *const ::core::ffi::c_char,
527        callback: ::core::option::Option<
528            unsafe extern "C" fn(
529                arg1: *mut ::core::ffi::c_void,
530                arg2: ::core::ffi::c_int,
531                arg3: *mut *mut ::core::ffi::c_char,
532                arg4: *mut *mut ::core::ffi::c_char,
533            ) -> ::core::ffi::c_int,
534        >,
535        arg2: *mut ::core::ffi::c_void,
536        errmsg: *mut *mut ::core::ffi::c_char,
537    ) -> ::core::ffi::c_int;
538}
539#[repr(C)]
540#[derive(Debug, Copy, Clone)]
541pub struct sqlite3_file {
542    pub pMethods: *const sqlite3_io_methods,
543}
544#[test]
545fn bindgen_test_layout_sqlite3_file() {
546    const UNINIT: ::core::mem::MaybeUninit<sqlite3_file> = ::core::mem::MaybeUninit::uninit();
547    let ptr = UNINIT.as_ptr();
548    assert_eq!(
549        ::core::mem::size_of::<sqlite3_file>(),
550        8usize,
551        concat!("Size of: ", stringify!(sqlite3_file))
552    );
553    assert_eq!(
554        ::core::mem::align_of::<sqlite3_file>(),
555        8usize,
556        concat!("Alignment of ", stringify!(sqlite3_file))
557    );
558    assert_eq!(
559        unsafe { ::core::ptr::addr_of!((*ptr).pMethods) as usize - ptr as usize },
560        0usize,
561        concat!(
562            "Offset of field: ",
563            stringify!(sqlite3_file),
564            "::",
565            stringify!(pMethods)
566        )
567    );
568}
569#[repr(C)]
570#[derive(Debug, Copy, Clone)]
571pub struct sqlite3_io_methods {
572    pub iVersion: ::core::ffi::c_int,
573    pub xClose:
574        ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_file) -> ::core::ffi::c_int>,
575    pub xRead: ::core::option::Option<
576        unsafe extern "C" fn(
577            arg1: *mut sqlite3_file,
578            arg2: *mut ::core::ffi::c_void,
579            iAmt: ::core::ffi::c_int,
580            iOfst: sqlite3_int64,
581        ) -> ::core::ffi::c_int,
582    >,
583    pub xWrite: ::core::option::Option<
584        unsafe extern "C" fn(
585            arg1: *mut sqlite3_file,
586            arg2: *const ::core::ffi::c_void,
587            iAmt: ::core::ffi::c_int,
588            iOfst: sqlite3_int64,
589        ) -> ::core::ffi::c_int,
590    >,
591    pub xTruncate: ::core::option::Option<
592        unsafe extern "C" fn(arg1: *mut sqlite3_file, size: sqlite3_int64) -> ::core::ffi::c_int,
593    >,
594    pub xSync: ::core::option::Option<
595        unsafe extern "C" fn(
596            arg1: *mut sqlite3_file,
597            flags: ::core::ffi::c_int,
598        ) -> ::core::ffi::c_int,
599    >,
600    pub xFileSize: ::core::option::Option<
601        unsafe extern "C" fn(
602            arg1: *mut sqlite3_file,
603            pSize: *mut sqlite3_int64,
604        ) -> ::core::ffi::c_int,
605    >,
606    pub xLock: ::core::option::Option<
607        unsafe extern "C" fn(
608            arg1: *mut sqlite3_file,
609            arg2: ::core::ffi::c_int,
610        ) -> ::core::ffi::c_int,
611    >,
612    pub xUnlock: ::core::option::Option<
613        unsafe extern "C" fn(
614            arg1: *mut sqlite3_file,
615            arg2: ::core::ffi::c_int,
616        ) -> ::core::ffi::c_int,
617    >,
618    pub xCheckReservedLock: ::core::option::Option<
619        unsafe extern "C" fn(
620            arg1: *mut sqlite3_file,
621            pResOut: *mut ::core::ffi::c_int,
622        ) -> ::core::ffi::c_int,
623    >,
624    pub xFileControl: ::core::option::Option<
625        unsafe extern "C" fn(
626            arg1: *mut sqlite3_file,
627            op: ::core::ffi::c_int,
628            pArg: *mut ::core::ffi::c_void,
629        ) -> ::core::ffi::c_int,
630    >,
631    pub xSectorSize:
632        ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_file) -> ::core::ffi::c_int>,
633    pub xDeviceCharacteristics:
634        ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_file) -> ::core::ffi::c_int>,
635    pub xShmMap: ::core::option::Option<
636        unsafe extern "C" fn(
637            arg1: *mut sqlite3_file,
638            iPg: ::core::ffi::c_int,
639            pgsz: ::core::ffi::c_int,
640            arg2: ::core::ffi::c_int,
641            arg3: *mut *mut ::core::ffi::c_void,
642        ) -> ::core::ffi::c_int,
643    >,
644    pub xShmLock: ::core::option::Option<
645        unsafe extern "C" fn(
646            arg1: *mut sqlite3_file,
647            offset: ::core::ffi::c_int,
648            n: ::core::ffi::c_int,
649            flags: ::core::ffi::c_int,
650        ) -> ::core::ffi::c_int,
651    >,
652    pub xShmBarrier: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_file)>,
653    pub xShmUnmap: ::core::option::Option<
654        unsafe extern "C" fn(
655            arg1: *mut sqlite3_file,
656            deleteFlag: ::core::ffi::c_int,
657        ) -> ::core::ffi::c_int,
658    >,
659    pub xFetch: ::core::option::Option<
660        unsafe extern "C" fn(
661            arg1: *mut sqlite3_file,
662            iOfst: sqlite3_int64,
663            iAmt: ::core::ffi::c_int,
664            pp: *mut *mut ::core::ffi::c_void,
665        ) -> ::core::ffi::c_int,
666    >,
667    pub xUnfetch: ::core::option::Option<
668        unsafe extern "C" fn(
669            arg1: *mut sqlite3_file,
670            iOfst: sqlite3_int64,
671            p: *mut ::core::ffi::c_void,
672        ) -> ::core::ffi::c_int,
673    >,
674}
675#[test]
676fn bindgen_test_layout_sqlite3_io_methods() {
677    const UNINIT: ::core::mem::MaybeUninit<sqlite3_io_methods> = ::core::mem::MaybeUninit::uninit();
678    let ptr = UNINIT.as_ptr();
679    assert_eq!(
680        ::core::mem::size_of::<sqlite3_io_methods>(),
681        152usize,
682        concat!("Size of: ", stringify!(sqlite3_io_methods))
683    );
684    assert_eq!(
685        ::core::mem::align_of::<sqlite3_io_methods>(),
686        8usize,
687        concat!("Alignment of ", stringify!(sqlite3_io_methods))
688    );
689    assert_eq!(
690        unsafe { ::core::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
691        0usize,
692        concat!(
693            "Offset of field: ",
694            stringify!(sqlite3_io_methods),
695            "::",
696            stringify!(iVersion)
697        )
698    );
699    assert_eq!(
700        unsafe { ::core::ptr::addr_of!((*ptr).xClose) as usize - ptr as usize },
701        8usize,
702        concat!(
703            "Offset of field: ",
704            stringify!(sqlite3_io_methods),
705            "::",
706            stringify!(xClose)
707        )
708    );
709    assert_eq!(
710        unsafe { ::core::ptr::addr_of!((*ptr).xRead) as usize - ptr as usize },
711        16usize,
712        concat!(
713            "Offset of field: ",
714            stringify!(sqlite3_io_methods),
715            "::",
716            stringify!(xRead)
717        )
718    );
719    assert_eq!(
720        unsafe { ::core::ptr::addr_of!((*ptr).xWrite) as usize - ptr as usize },
721        24usize,
722        concat!(
723            "Offset of field: ",
724            stringify!(sqlite3_io_methods),
725            "::",
726            stringify!(xWrite)
727        )
728    );
729    assert_eq!(
730        unsafe { ::core::ptr::addr_of!((*ptr).xTruncate) as usize - ptr as usize },
731        32usize,
732        concat!(
733            "Offset of field: ",
734            stringify!(sqlite3_io_methods),
735            "::",
736            stringify!(xTruncate)
737        )
738    );
739    assert_eq!(
740        unsafe { ::core::ptr::addr_of!((*ptr).xSync) as usize - ptr as usize },
741        40usize,
742        concat!(
743            "Offset of field: ",
744            stringify!(sqlite3_io_methods),
745            "::",
746            stringify!(xSync)
747        )
748    );
749    assert_eq!(
750        unsafe { ::core::ptr::addr_of!((*ptr).xFileSize) as usize - ptr as usize },
751        48usize,
752        concat!(
753            "Offset of field: ",
754            stringify!(sqlite3_io_methods),
755            "::",
756            stringify!(xFileSize)
757        )
758    );
759    assert_eq!(
760        unsafe { ::core::ptr::addr_of!((*ptr).xLock) as usize - ptr as usize },
761        56usize,
762        concat!(
763            "Offset of field: ",
764            stringify!(sqlite3_io_methods),
765            "::",
766            stringify!(xLock)
767        )
768    );
769    assert_eq!(
770        unsafe { ::core::ptr::addr_of!((*ptr).xUnlock) as usize - ptr as usize },
771        64usize,
772        concat!(
773            "Offset of field: ",
774            stringify!(sqlite3_io_methods),
775            "::",
776            stringify!(xUnlock)
777        )
778    );
779    assert_eq!(
780        unsafe { ::core::ptr::addr_of!((*ptr).xCheckReservedLock) as usize - ptr as usize },
781        72usize,
782        concat!(
783            "Offset of field: ",
784            stringify!(sqlite3_io_methods),
785            "::",
786            stringify!(xCheckReservedLock)
787        )
788    );
789    assert_eq!(
790        unsafe { ::core::ptr::addr_of!((*ptr).xFileControl) as usize - ptr as usize },
791        80usize,
792        concat!(
793            "Offset of field: ",
794            stringify!(sqlite3_io_methods),
795            "::",
796            stringify!(xFileControl)
797        )
798    );
799    assert_eq!(
800        unsafe { ::core::ptr::addr_of!((*ptr).xSectorSize) as usize - ptr as usize },
801        88usize,
802        concat!(
803            "Offset of field: ",
804            stringify!(sqlite3_io_methods),
805            "::",
806            stringify!(xSectorSize)
807        )
808    );
809    assert_eq!(
810        unsafe { ::core::ptr::addr_of!((*ptr).xDeviceCharacteristics) as usize - ptr as usize },
811        96usize,
812        concat!(
813            "Offset of field: ",
814            stringify!(sqlite3_io_methods),
815            "::",
816            stringify!(xDeviceCharacteristics)
817        )
818    );
819    assert_eq!(
820        unsafe { ::core::ptr::addr_of!((*ptr).xShmMap) as usize - ptr as usize },
821        104usize,
822        concat!(
823            "Offset of field: ",
824            stringify!(sqlite3_io_methods),
825            "::",
826            stringify!(xShmMap)
827        )
828    );
829    assert_eq!(
830        unsafe { ::core::ptr::addr_of!((*ptr).xShmLock) as usize - ptr as usize },
831        112usize,
832        concat!(
833            "Offset of field: ",
834            stringify!(sqlite3_io_methods),
835            "::",
836            stringify!(xShmLock)
837        )
838    );
839    assert_eq!(
840        unsafe { ::core::ptr::addr_of!((*ptr).xShmBarrier) as usize - ptr as usize },
841        120usize,
842        concat!(
843            "Offset of field: ",
844            stringify!(sqlite3_io_methods),
845            "::",
846            stringify!(xShmBarrier)
847        )
848    );
849    assert_eq!(
850        unsafe { ::core::ptr::addr_of!((*ptr).xShmUnmap) as usize - ptr as usize },
851        128usize,
852        concat!(
853            "Offset of field: ",
854            stringify!(sqlite3_io_methods),
855            "::",
856            stringify!(xShmUnmap)
857        )
858    );
859    assert_eq!(
860        unsafe { ::core::ptr::addr_of!((*ptr).xFetch) as usize - ptr as usize },
861        136usize,
862        concat!(
863            "Offset of field: ",
864            stringify!(sqlite3_io_methods),
865            "::",
866            stringify!(xFetch)
867        )
868    );
869    assert_eq!(
870        unsafe { ::core::ptr::addr_of!((*ptr).xUnfetch) as usize - ptr as usize },
871        144usize,
872        concat!(
873            "Offset of field: ",
874            stringify!(sqlite3_io_methods),
875            "::",
876            stringify!(xUnfetch)
877        )
878    );
879}
880#[repr(C)]
881#[derive(Debug, Copy, Clone)]
882pub struct sqlite3_mutex {
883    _unused: [u8; 0],
884}
885#[repr(C)]
886#[derive(Debug, Copy, Clone)]
887pub struct sqlite3_api_routines {
888    _unused: [u8; 0],
889}
890pub type sqlite3_filename = *const ::core::ffi::c_char;
891pub type sqlite3_syscall_ptr = ::core::option::Option<unsafe extern "C" fn()>;
892#[repr(C)]
893#[derive(Debug, Copy, Clone)]
894pub struct sqlite3_vfs {
895    pub iVersion: ::core::ffi::c_int,
896    pub szOsFile: ::core::ffi::c_int,
897    pub mxPathname: ::core::ffi::c_int,
898    pub pNext: *mut sqlite3_vfs,
899    pub zName: *const ::core::ffi::c_char,
900    pub pAppData: *mut ::core::ffi::c_void,
901    pub xOpen: ::core::option::Option<
902        unsafe extern "C" fn(
903            arg1: *mut sqlite3_vfs,
904            zName: sqlite3_filename,
905            arg2: *mut sqlite3_file,
906            flags: ::core::ffi::c_int,
907            pOutFlags: *mut ::core::ffi::c_int,
908        ) -> ::core::ffi::c_int,
909    >,
910    pub xDelete: ::core::option::Option<
911        unsafe extern "C" fn(
912            arg1: *mut sqlite3_vfs,
913            zName: *const ::core::ffi::c_char,
914            syncDir: ::core::ffi::c_int,
915        ) -> ::core::ffi::c_int,
916    >,
917    pub xAccess: ::core::option::Option<
918        unsafe extern "C" fn(
919            arg1: *mut sqlite3_vfs,
920            zName: *const ::core::ffi::c_char,
921            flags: ::core::ffi::c_int,
922            pResOut: *mut ::core::ffi::c_int,
923        ) -> ::core::ffi::c_int,
924    >,
925    pub xFullPathname: ::core::option::Option<
926        unsafe extern "C" fn(
927            arg1: *mut sqlite3_vfs,
928            zName: *const ::core::ffi::c_char,
929            nOut: ::core::ffi::c_int,
930            zOut: *mut ::core::ffi::c_char,
931        ) -> ::core::ffi::c_int,
932    >,
933    pub xDlOpen: ::core::option::Option<
934        unsafe extern "C" fn(
935            arg1: *mut sqlite3_vfs,
936            zFilename: *const ::core::ffi::c_char,
937        ) -> *mut ::core::ffi::c_void,
938    >,
939    pub xDlError: ::core::option::Option<
940        unsafe extern "C" fn(
941            arg1: *mut sqlite3_vfs,
942            nByte: ::core::ffi::c_int,
943            zErrMsg: *mut ::core::ffi::c_char,
944        ),
945    >,
946    pub xDlSym: ::core::option::Option<
947        unsafe extern "C" fn(
948            arg1: *mut sqlite3_vfs,
949            arg2: *mut ::core::ffi::c_void,
950            zSymbol: *const ::core::ffi::c_char,
951        ) -> ::core::option::Option<
952            unsafe extern "C" fn(
953                arg1: *mut sqlite3_vfs,
954                arg2: *mut ::core::ffi::c_void,
955                zSymbol: *const ::core::ffi::c_char,
956            ),
957        >,
958    >,
959    pub xDlClose: ::core::option::Option<
960        unsafe extern "C" fn(arg1: *mut sqlite3_vfs, arg2: *mut ::core::ffi::c_void),
961    >,
962    pub xRandomness: ::core::option::Option<
963        unsafe extern "C" fn(
964            arg1: *mut sqlite3_vfs,
965            nByte: ::core::ffi::c_int,
966            zOut: *mut ::core::ffi::c_char,
967        ) -> ::core::ffi::c_int,
968    >,
969    pub xSleep: ::core::option::Option<
970        unsafe extern "C" fn(
971            arg1: *mut sqlite3_vfs,
972            microseconds: ::core::ffi::c_int,
973        ) -> ::core::ffi::c_int,
974    >,
975    pub xCurrentTime: ::core::option::Option<
976        unsafe extern "C" fn(arg1: *mut sqlite3_vfs, arg2: *mut f64) -> ::core::ffi::c_int,
977    >,
978    pub xGetLastError: ::core::option::Option<
979        unsafe extern "C" fn(
980            arg1: *mut sqlite3_vfs,
981            arg2: ::core::ffi::c_int,
982            arg3: *mut ::core::ffi::c_char,
983        ) -> ::core::ffi::c_int,
984    >,
985    pub xCurrentTimeInt64: ::core::option::Option<
986        unsafe extern "C" fn(
987            arg1: *mut sqlite3_vfs,
988            arg2: *mut sqlite3_int64,
989        ) -> ::core::ffi::c_int,
990    >,
991    pub xSetSystemCall: ::core::option::Option<
992        unsafe extern "C" fn(
993            arg1: *mut sqlite3_vfs,
994            zName: *const ::core::ffi::c_char,
995            arg2: sqlite3_syscall_ptr,
996        ) -> ::core::ffi::c_int,
997    >,
998    pub xGetSystemCall: ::core::option::Option<
999        unsafe extern "C" fn(
1000            arg1: *mut sqlite3_vfs,
1001            zName: *const ::core::ffi::c_char,
1002        ) -> sqlite3_syscall_ptr,
1003    >,
1004    pub xNextSystemCall: ::core::option::Option<
1005        unsafe extern "C" fn(
1006            arg1: *mut sqlite3_vfs,
1007            zName: *const ::core::ffi::c_char,
1008        ) -> *const ::core::ffi::c_char,
1009    >,
1010}
1011#[test]
1012fn bindgen_test_layout_sqlite3_vfs() {
1013    const UNINIT: ::core::mem::MaybeUninit<sqlite3_vfs> = ::core::mem::MaybeUninit::uninit();
1014    let ptr = UNINIT.as_ptr();
1015    assert_eq!(
1016        ::core::mem::size_of::<sqlite3_vfs>(),
1017        168usize,
1018        concat!("Size of: ", stringify!(sqlite3_vfs))
1019    );
1020    assert_eq!(
1021        ::core::mem::align_of::<sqlite3_vfs>(),
1022        8usize,
1023        concat!("Alignment of ", stringify!(sqlite3_vfs))
1024    );
1025    assert_eq!(
1026        unsafe { ::core::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
1027        0usize,
1028        concat!(
1029            "Offset of field: ",
1030            stringify!(sqlite3_vfs),
1031            "::",
1032            stringify!(iVersion)
1033        )
1034    );
1035    assert_eq!(
1036        unsafe { ::core::ptr::addr_of!((*ptr).szOsFile) as usize - ptr as usize },
1037        4usize,
1038        concat!(
1039            "Offset of field: ",
1040            stringify!(sqlite3_vfs),
1041            "::",
1042            stringify!(szOsFile)
1043        )
1044    );
1045    assert_eq!(
1046        unsafe { ::core::ptr::addr_of!((*ptr).mxPathname) as usize - ptr as usize },
1047        8usize,
1048        concat!(
1049            "Offset of field: ",
1050            stringify!(sqlite3_vfs),
1051            "::",
1052            stringify!(mxPathname)
1053        )
1054    );
1055    assert_eq!(
1056        unsafe { ::core::ptr::addr_of!((*ptr).pNext) as usize - ptr as usize },
1057        16usize,
1058        concat!(
1059            "Offset of field: ",
1060            stringify!(sqlite3_vfs),
1061            "::",
1062            stringify!(pNext)
1063        )
1064    );
1065    assert_eq!(
1066        unsafe { ::core::ptr::addr_of!((*ptr).zName) as usize - ptr as usize },
1067        24usize,
1068        concat!(
1069            "Offset of field: ",
1070            stringify!(sqlite3_vfs),
1071            "::",
1072            stringify!(zName)
1073        )
1074    );
1075    assert_eq!(
1076        unsafe { ::core::ptr::addr_of!((*ptr).pAppData) as usize - ptr as usize },
1077        32usize,
1078        concat!(
1079            "Offset of field: ",
1080            stringify!(sqlite3_vfs),
1081            "::",
1082            stringify!(pAppData)
1083        )
1084    );
1085    assert_eq!(
1086        unsafe { ::core::ptr::addr_of!((*ptr).xOpen) as usize - ptr as usize },
1087        40usize,
1088        concat!(
1089            "Offset of field: ",
1090            stringify!(sqlite3_vfs),
1091            "::",
1092            stringify!(xOpen)
1093        )
1094    );
1095    assert_eq!(
1096        unsafe { ::core::ptr::addr_of!((*ptr).xDelete) as usize - ptr as usize },
1097        48usize,
1098        concat!(
1099            "Offset of field: ",
1100            stringify!(sqlite3_vfs),
1101            "::",
1102            stringify!(xDelete)
1103        )
1104    );
1105    assert_eq!(
1106        unsafe { ::core::ptr::addr_of!((*ptr).xAccess) as usize - ptr as usize },
1107        56usize,
1108        concat!(
1109            "Offset of field: ",
1110            stringify!(sqlite3_vfs),
1111            "::",
1112            stringify!(xAccess)
1113        )
1114    );
1115    assert_eq!(
1116        unsafe { ::core::ptr::addr_of!((*ptr).xFullPathname) as usize - ptr as usize },
1117        64usize,
1118        concat!(
1119            "Offset of field: ",
1120            stringify!(sqlite3_vfs),
1121            "::",
1122            stringify!(xFullPathname)
1123        )
1124    );
1125    assert_eq!(
1126        unsafe { ::core::ptr::addr_of!((*ptr).xDlOpen) as usize - ptr as usize },
1127        72usize,
1128        concat!(
1129            "Offset of field: ",
1130            stringify!(sqlite3_vfs),
1131            "::",
1132            stringify!(xDlOpen)
1133        )
1134    );
1135    assert_eq!(
1136        unsafe { ::core::ptr::addr_of!((*ptr).xDlError) as usize - ptr as usize },
1137        80usize,
1138        concat!(
1139            "Offset of field: ",
1140            stringify!(sqlite3_vfs),
1141            "::",
1142            stringify!(xDlError)
1143        )
1144    );
1145    assert_eq!(
1146        unsafe { ::core::ptr::addr_of!((*ptr).xDlSym) as usize - ptr as usize },
1147        88usize,
1148        concat!(
1149            "Offset of field: ",
1150            stringify!(sqlite3_vfs),
1151            "::",
1152            stringify!(xDlSym)
1153        )
1154    );
1155    assert_eq!(
1156        unsafe { ::core::ptr::addr_of!((*ptr).xDlClose) as usize - ptr as usize },
1157        96usize,
1158        concat!(
1159            "Offset of field: ",
1160            stringify!(sqlite3_vfs),
1161            "::",
1162            stringify!(xDlClose)
1163        )
1164    );
1165    assert_eq!(
1166        unsafe { ::core::ptr::addr_of!((*ptr).xRandomness) as usize - ptr as usize },
1167        104usize,
1168        concat!(
1169            "Offset of field: ",
1170            stringify!(sqlite3_vfs),
1171            "::",
1172            stringify!(xRandomness)
1173        )
1174    );
1175    assert_eq!(
1176        unsafe { ::core::ptr::addr_of!((*ptr).xSleep) as usize - ptr as usize },
1177        112usize,
1178        concat!(
1179            "Offset of field: ",
1180            stringify!(sqlite3_vfs),
1181            "::",
1182            stringify!(xSleep)
1183        )
1184    );
1185    assert_eq!(
1186        unsafe { ::core::ptr::addr_of!((*ptr).xCurrentTime) as usize - ptr as usize },
1187        120usize,
1188        concat!(
1189            "Offset of field: ",
1190            stringify!(sqlite3_vfs),
1191            "::",
1192            stringify!(xCurrentTime)
1193        )
1194    );
1195    assert_eq!(
1196        unsafe { ::core::ptr::addr_of!((*ptr).xGetLastError) as usize - ptr as usize },
1197        128usize,
1198        concat!(
1199            "Offset of field: ",
1200            stringify!(sqlite3_vfs),
1201            "::",
1202            stringify!(xGetLastError)
1203        )
1204    );
1205    assert_eq!(
1206        unsafe { ::core::ptr::addr_of!((*ptr).xCurrentTimeInt64) as usize - ptr as usize },
1207        136usize,
1208        concat!(
1209            "Offset of field: ",
1210            stringify!(sqlite3_vfs),
1211            "::",
1212            stringify!(xCurrentTimeInt64)
1213        )
1214    );
1215    assert_eq!(
1216        unsafe { ::core::ptr::addr_of!((*ptr).xSetSystemCall) as usize - ptr as usize },
1217        144usize,
1218        concat!(
1219            "Offset of field: ",
1220            stringify!(sqlite3_vfs),
1221            "::",
1222            stringify!(xSetSystemCall)
1223        )
1224    );
1225    assert_eq!(
1226        unsafe { ::core::ptr::addr_of!((*ptr).xGetSystemCall) as usize - ptr as usize },
1227        152usize,
1228        concat!(
1229            "Offset of field: ",
1230            stringify!(sqlite3_vfs),
1231            "::",
1232            stringify!(xGetSystemCall)
1233        )
1234    );
1235    assert_eq!(
1236        unsafe { ::core::ptr::addr_of!((*ptr).xNextSystemCall) as usize - ptr as usize },
1237        160usize,
1238        concat!(
1239            "Offset of field: ",
1240            stringify!(sqlite3_vfs),
1241            "::",
1242            stringify!(xNextSystemCall)
1243        )
1244    );
1245}
1246extern "C" {
1247    pub fn sqlite3_initialize() -> ::core::ffi::c_int;
1248}
1249extern "C" {
1250    pub fn sqlite3_shutdown() -> ::core::ffi::c_int;
1251}
1252extern "C" {
1253    pub fn sqlite3_os_init() -> ::core::ffi::c_int;
1254}
1255extern "C" {
1256    pub fn sqlite3_os_end() -> ::core::ffi::c_int;
1257}
1258extern "C" {
1259    pub fn sqlite3_config(arg1: ::core::ffi::c_int, ...) -> ::core::ffi::c_int;
1260}
1261extern "C" {
1262    pub fn sqlite3_db_config(arg1: *mut sqlite3, op: ::core::ffi::c_int, ...)
1263        -> ::core::ffi::c_int;
1264}
1265#[repr(C)]
1266#[derive(Debug, Copy, Clone)]
1267pub struct sqlite3_mem_methods {
1268    pub xMalloc: ::core::option::Option<
1269        unsafe extern "C" fn(arg1: ::core::ffi::c_int) -> *mut ::core::ffi::c_void,
1270    >,
1271    pub xFree: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
1272    pub xRealloc: ::core::option::Option<
1273        unsafe extern "C" fn(
1274            arg1: *mut ::core::ffi::c_void,
1275            arg2: ::core::ffi::c_int,
1276        ) -> *mut ::core::ffi::c_void,
1277    >,
1278    pub xSize: ::core::option::Option<
1279        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
1280    >,
1281    pub xRoundup: ::core::option::Option<
1282        unsafe extern "C" fn(arg1: ::core::ffi::c_int) -> ::core::ffi::c_int,
1283    >,
1284    pub xInit: ::core::option::Option<
1285        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
1286    >,
1287    pub xShutdown: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
1288    pub pAppData: *mut ::core::ffi::c_void,
1289}
1290#[test]
1291fn bindgen_test_layout_sqlite3_mem_methods() {
1292    const UNINIT: ::core::mem::MaybeUninit<sqlite3_mem_methods> =
1293        ::core::mem::MaybeUninit::uninit();
1294    let ptr = UNINIT.as_ptr();
1295    assert_eq!(
1296        ::core::mem::size_of::<sqlite3_mem_methods>(),
1297        64usize,
1298        concat!("Size of: ", stringify!(sqlite3_mem_methods))
1299    );
1300    assert_eq!(
1301        ::core::mem::align_of::<sqlite3_mem_methods>(),
1302        8usize,
1303        concat!("Alignment of ", stringify!(sqlite3_mem_methods))
1304    );
1305    assert_eq!(
1306        unsafe { ::core::ptr::addr_of!((*ptr).xMalloc) as usize - ptr as usize },
1307        0usize,
1308        concat!(
1309            "Offset of field: ",
1310            stringify!(sqlite3_mem_methods),
1311            "::",
1312            stringify!(xMalloc)
1313        )
1314    );
1315    assert_eq!(
1316        unsafe { ::core::ptr::addr_of!((*ptr).xFree) as usize - ptr as usize },
1317        8usize,
1318        concat!(
1319            "Offset of field: ",
1320            stringify!(sqlite3_mem_methods),
1321            "::",
1322            stringify!(xFree)
1323        )
1324    );
1325    assert_eq!(
1326        unsafe { ::core::ptr::addr_of!((*ptr).xRealloc) as usize - ptr as usize },
1327        16usize,
1328        concat!(
1329            "Offset of field: ",
1330            stringify!(sqlite3_mem_methods),
1331            "::",
1332            stringify!(xRealloc)
1333        )
1334    );
1335    assert_eq!(
1336        unsafe { ::core::ptr::addr_of!((*ptr).xSize) as usize - ptr as usize },
1337        24usize,
1338        concat!(
1339            "Offset of field: ",
1340            stringify!(sqlite3_mem_methods),
1341            "::",
1342            stringify!(xSize)
1343        )
1344    );
1345    assert_eq!(
1346        unsafe { ::core::ptr::addr_of!((*ptr).xRoundup) as usize - ptr as usize },
1347        32usize,
1348        concat!(
1349            "Offset of field: ",
1350            stringify!(sqlite3_mem_methods),
1351            "::",
1352            stringify!(xRoundup)
1353        )
1354    );
1355    assert_eq!(
1356        unsafe { ::core::ptr::addr_of!((*ptr).xInit) as usize - ptr as usize },
1357        40usize,
1358        concat!(
1359            "Offset of field: ",
1360            stringify!(sqlite3_mem_methods),
1361            "::",
1362            stringify!(xInit)
1363        )
1364    );
1365    assert_eq!(
1366        unsafe { ::core::ptr::addr_of!((*ptr).xShutdown) as usize - ptr as usize },
1367        48usize,
1368        concat!(
1369            "Offset of field: ",
1370            stringify!(sqlite3_mem_methods),
1371            "::",
1372            stringify!(xShutdown)
1373        )
1374    );
1375    assert_eq!(
1376        unsafe { ::core::ptr::addr_of!((*ptr).pAppData) as usize - ptr as usize },
1377        56usize,
1378        concat!(
1379            "Offset of field: ",
1380            stringify!(sqlite3_mem_methods),
1381            "::",
1382            stringify!(pAppData)
1383        )
1384    );
1385}
1386extern "C" {
1387    pub fn sqlite3_extended_result_codes(
1388        arg1: *mut sqlite3,
1389        onoff: ::core::ffi::c_int,
1390    ) -> ::core::ffi::c_int;
1391}
1392extern "C" {
1393    pub fn sqlite3_last_insert_rowid(arg1: *mut sqlite3) -> sqlite3_int64;
1394}
1395extern "C" {
1396    pub fn sqlite3_set_last_insert_rowid(arg1: *mut sqlite3, arg2: sqlite3_int64);
1397}
1398extern "C" {
1399    pub fn sqlite3_changes(arg1: *mut sqlite3) -> ::core::ffi::c_int;
1400}
1401extern "C" {
1402    pub fn sqlite3_changes64(arg1: *mut sqlite3) -> sqlite3_int64;
1403}
1404extern "C" {
1405    pub fn sqlite3_total_changes(arg1: *mut sqlite3) -> ::core::ffi::c_int;
1406}
1407extern "C" {
1408    pub fn sqlite3_total_changes64(arg1: *mut sqlite3) -> sqlite3_int64;
1409}
1410extern "C" {
1411    pub fn sqlite3_interrupt(arg1: *mut sqlite3);
1412}
1413extern "C" {
1414    pub fn sqlite3_is_interrupted(arg1: *mut sqlite3) -> ::core::ffi::c_int;
1415}
1416extern "C" {
1417    pub fn sqlite3_complete(sql: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
1418}
1419extern "C" {
1420    pub fn sqlite3_complete16(sql: *const ::core::ffi::c_void) -> ::core::ffi::c_int;
1421}
1422extern "C" {
1423    pub fn sqlite3_busy_handler(
1424        arg1: *mut sqlite3,
1425        arg2: ::core::option::Option<
1426            unsafe extern "C" fn(
1427                arg1: *mut ::core::ffi::c_void,
1428                arg2: ::core::ffi::c_int,
1429            ) -> ::core::ffi::c_int,
1430        >,
1431        arg3: *mut ::core::ffi::c_void,
1432    ) -> ::core::ffi::c_int;
1433}
1434extern "C" {
1435    pub fn sqlite3_busy_timeout(arg1: *mut sqlite3, ms: ::core::ffi::c_int) -> ::core::ffi::c_int;
1436}
1437extern "C" {
1438    pub fn sqlite3_get_table(
1439        db: *mut sqlite3,
1440        zSql: *const ::core::ffi::c_char,
1441        pazResult: *mut *mut *mut ::core::ffi::c_char,
1442        pnRow: *mut ::core::ffi::c_int,
1443        pnColumn: *mut ::core::ffi::c_int,
1444        pzErrmsg: *mut *mut ::core::ffi::c_char,
1445    ) -> ::core::ffi::c_int;
1446}
1447extern "C" {
1448    pub fn sqlite3_free_table(result: *mut *mut ::core::ffi::c_char);
1449}
1450extern "C" {
1451    pub fn sqlite3_mprintf(arg1: *const ::core::ffi::c_char, ...) -> *mut ::core::ffi::c_char;
1452}
1453extern "C" {
1454    pub fn sqlite3_vmprintf(
1455        arg1: *const ::core::ffi::c_char,
1456        arg2: *mut __va_list_tag,
1457    ) -> *mut ::core::ffi::c_char;
1458}
1459extern "C" {
1460    pub fn sqlite3_snprintf(
1461        arg1: ::core::ffi::c_int,
1462        arg2: *mut ::core::ffi::c_char,
1463        arg3: *const ::core::ffi::c_char,
1464        ...
1465    ) -> *mut ::core::ffi::c_char;
1466}
1467extern "C" {
1468    pub fn sqlite3_vsnprintf(
1469        arg1: ::core::ffi::c_int,
1470        arg2: *mut ::core::ffi::c_char,
1471        arg3: *const ::core::ffi::c_char,
1472        arg4: *mut __va_list_tag,
1473    ) -> *mut ::core::ffi::c_char;
1474}
1475extern "C" {
1476    pub fn sqlite3_malloc(arg1: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
1477}
1478extern "C" {
1479    pub fn sqlite3_malloc64(arg1: sqlite3_uint64) -> *mut ::core::ffi::c_void;
1480}
1481extern "C" {
1482    pub fn sqlite3_realloc(
1483        arg1: *mut ::core::ffi::c_void,
1484        arg2: ::core::ffi::c_int,
1485    ) -> *mut ::core::ffi::c_void;
1486}
1487extern "C" {
1488    pub fn sqlite3_realloc64(
1489        arg1: *mut ::core::ffi::c_void,
1490        arg2: sqlite3_uint64,
1491    ) -> *mut ::core::ffi::c_void;
1492}
1493extern "C" {
1494    pub fn sqlite3_free(arg1: *mut ::core::ffi::c_void);
1495}
1496extern "C" {
1497    pub fn sqlite3_msize(arg1: *mut ::core::ffi::c_void) -> sqlite3_uint64;
1498}
1499extern "C" {
1500    pub fn sqlite3_memory_used() -> sqlite3_int64;
1501}
1502extern "C" {
1503    pub fn sqlite3_memory_highwater(resetFlag: ::core::ffi::c_int) -> sqlite3_int64;
1504}
1505extern "C" {
1506    pub fn sqlite3_randomness(N: ::core::ffi::c_int, P: *mut ::core::ffi::c_void);
1507}
1508extern "C" {
1509    pub fn sqlite3_set_authorizer(
1510        arg1: *mut sqlite3,
1511        xAuth: ::core::option::Option<
1512            unsafe extern "C" fn(
1513                arg1: *mut ::core::ffi::c_void,
1514                arg2: ::core::ffi::c_int,
1515                arg3: *const ::core::ffi::c_char,
1516                arg4: *const ::core::ffi::c_char,
1517                arg5: *const ::core::ffi::c_char,
1518                arg6: *const ::core::ffi::c_char,
1519            ) -> ::core::ffi::c_int,
1520        >,
1521        pUserData: *mut ::core::ffi::c_void,
1522    ) -> ::core::ffi::c_int;
1523}
1524extern "C" {
1525    pub fn sqlite3_trace(
1526        arg1: *mut sqlite3,
1527        xTrace: ::core::option::Option<
1528            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void, arg2: *const ::core::ffi::c_char),
1529        >,
1530        arg2: *mut ::core::ffi::c_void,
1531    ) -> *mut ::core::ffi::c_void;
1532}
1533extern "C" {
1534    pub fn sqlite3_profile(
1535        arg1: *mut sqlite3,
1536        xProfile: ::core::option::Option<
1537            unsafe extern "C" fn(
1538                arg1: *mut ::core::ffi::c_void,
1539                arg2: *const ::core::ffi::c_char,
1540                arg3: sqlite3_uint64,
1541            ),
1542        >,
1543        arg2: *mut ::core::ffi::c_void,
1544    ) -> *mut ::core::ffi::c_void;
1545}
1546extern "C" {
1547    pub fn sqlite3_trace_v2(
1548        arg1: *mut sqlite3,
1549        uMask: ::core::ffi::c_uint,
1550        xCallback: ::core::option::Option<
1551            unsafe extern "C" fn(
1552                arg1: ::core::ffi::c_uint,
1553                arg2: *mut ::core::ffi::c_void,
1554                arg3: *mut ::core::ffi::c_void,
1555                arg4: *mut ::core::ffi::c_void,
1556            ) -> ::core::ffi::c_int,
1557        >,
1558        pCtx: *mut ::core::ffi::c_void,
1559    ) -> ::core::ffi::c_int;
1560}
1561extern "C" {
1562    pub fn sqlite3_progress_handler(
1563        arg1: *mut sqlite3,
1564        arg2: ::core::ffi::c_int,
1565        arg3: ::core::option::Option<
1566            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
1567        >,
1568        arg4: *mut ::core::ffi::c_void,
1569    );
1570}
1571extern "C" {
1572    pub fn sqlite3_open(
1573        filename: *const ::core::ffi::c_char,
1574        ppDb: *mut *mut sqlite3,
1575    ) -> ::core::ffi::c_int;
1576}
1577extern "C" {
1578    pub fn sqlite3_open16(
1579        filename: *const ::core::ffi::c_void,
1580        ppDb: *mut *mut sqlite3,
1581    ) -> ::core::ffi::c_int;
1582}
1583extern "C" {
1584    pub fn sqlite3_open_v2(
1585        filename: *const ::core::ffi::c_char,
1586        ppDb: *mut *mut sqlite3,
1587        flags: ::core::ffi::c_int,
1588        zVfs: *const ::core::ffi::c_char,
1589    ) -> ::core::ffi::c_int;
1590}
1591extern "C" {
1592    pub fn sqlite3_uri_parameter(
1593        z: sqlite3_filename,
1594        zParam: *const ::core::ffi::c_char,
1595    ) -> *const ::core::ffi::c_char;
1596}
1597extern "C" {
1598    pub fn sqlite3_uri_boolean(
1599        z: sqlite3_filename,
1600        zParam: *const ::core::ffi::c_char,
1601        bDefault: ::core::ffi::c_int,
1602    ) -> ::core::ffi::c_int;
1603}
1604extern "C" {
1605    pub fn sqlite3_uri_int64(
1606        arg1: sqlite3_filename,
1607        arg2: *const ::core::ffi::c_char,
1608        arg3: sqlite3_int64,
1609    ) -> sqlite3_int64;
1610}
1611extern "C" {
1612    pub fn sqlite3_uri_key(
1613        z: sqlite3_filename,
1614        N: ::core::ffi::c_int,
1615    ) -> *const ::core::ffi::c_char;
1616}
1617extern "C" {
1618    pub fn sqlite3_filename_database(arg1: sqlite3_filename) -> *const ::core::ffi::c_char;
1619}
1620extern "C" {
1621    pub fn sqlite3_filename_journal(arg1: sqlite3_filename) -> *const ::core::ffi::c_char;
1622}
1623extern "C" {
1624    pub fn sqlite3_filename_wal(arg1: sqlite3_filename) -> *const ::core::ffi::c_char;
1625}
1626extern "C" {
1627    pub fn sqlite3_database_file_object(arg1: *const ::core::ffi::c_char) -> *mut sqlite3_file;
1628}
1629extern "C" {
1630    pub fn sqlite3_create_filename(
1631        zDatabase: *const ::core::ffi::c_char,
1632        zJournal: *const ::core::ffi::c_char,
1633        zWal: *const ::core::ffi::c_char,
1634        nParam: ::core::ffi::c_int,
1635        azParam: *mut *const ::core::ffi::c_char,
1636    ) -> sqlite3_filename;
1637}
1638extern "C" {
1639    pub fn sqlite3_free_filename(arg1: sqlite3_filename);
1640}
1641extern "C" {
1642    pub fn sqlite3_errcode(db: *mut sqlite3) -> ::core::ffi::c_int;
1643}
1644extern "C" {
1645    pub fn sqlite3_extended_errcode(db: *mut sqlite3) -> ::core::ffi::c_int;
1646}
1647extern "C" {
1648    pub fn sqlite3_errmsg(arg1: *mut sqlite3) -> *const ::core::ffi::c_char;
1649}
1650extern "C" {
1651    pub fn sqlite3_errmsg16(arg1: *mut sqlite3) -> *const ::core::ffi::c_void;
1652}
1653extern "C" {
1654    pub fn sqlite3_errstr(arg1: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
1655}
1656extern "C" {
1657    pub fn sqlite3_error_offset(db: *mut sqlite3) -> ::core::ffi::c_int;
1658}
1659#[repr(C)]
1660#[derive(Debug, Copy, Clone)]
1661pub struct sqlite3_stmt {
1662    _unused: [u8; 0],
1663}
1664extern "C" {
1665    pub fn sqlite3_limit(
1666        arg1: *mut sqlite3,
1667        id: ::core::ffi::c_int,
1668        newVal: ::core::ffi::c_int,
1669    ) -> ::core::ffi::c_int;
1670}
1671extern "C" {
1672    pub fn sqlite3_prepare(
1673        db: *mut sqlite3,
1674        zSql: *const ::core::ffi::c_char,
1675        nByte: ::core::ffi::c_int,
1676        ppStmt: *mut *mut sqlite3_stmt,
1677        pzTail: *mut *const ::core::ffi::c_char,
1678    ) -> ::core::ffi::c_int;
1679}
1680extern "C" {
1681    pub fn sqlite3_prepare_v2(
1682        db: *mut sqlite3,
1683        zSql: *const ::core::ffi::c_char,
1684        nByte: ::core::ffi::c_int,
1685        ppStmt: *mut *mut sqlite3_stmt,
1686        pzTail: *mut *const ::core::ffi::c_char,
1687    ) -> ::core::ffi::c_int;
1688}
1689extern "C" {
1690    pub fn sqlite3_prepare_v3(
1691        db: *mut sqlite3,
1692        zSql: *const ::core::ffi::c_char,
1693        nByte: ::core::ffi::c_int,
1694        prepFlags: ::core::ffi::c_uint,
1695        ppStmt: *mut *mut sqlite3_stmt,
1696        pzTail: *mut *const ::core::ffi::c_char,
1697    ) -> ::core::ffi::c_int;
1698}
1699extern "C" {
1700    pub fn sqlite3_prepare16(
1701        db: *mut sqlite3,
1702        zSql: *const ::core::ffi::c_void,
1703        nByte: ::core::ffi::c_int,
1704        ppStmt: *mut *mut sqlite3_stmt,
1705        pzTail: *mut *const ::core::ffi::c_void,
1706    ) -> ::core::ffi::c_int;
1707}
1708extern "C" {
1709    pub fn sqlite3_prepare16_v2(
1710        db: *mut sqlite3,
1711        zSql: *const ::core::ffi::c_void,
1712        nByte: ::core::ffi::c_int,
1713        ppStmt: *mut *mut sqlite3_stmt,
1714        pzTail: *mut *const ::core::ffi::c_void,
1715    ) -> ::core::ffi::c_int;
1716}
1717extern "C" {
1718    pub fn sqlite3_prepare16_v3(
1719        db: *mut sqlite3,
1720        zSql: *const ::core::ffi::c_void,
1721        nByte: ::core::ffi::c_int,
1722        prepFlags: ::core::ffi::c_uint,
1723        ppStmt: *mut *mut sqlite3_stmt,
1724        pzTail: *mut *const ::core::ffi::c_void,
1725    ) -> ::core::ffi::c_int;
1726}
1727extern "C" {
1728    pub fn sqlite3_sql(pStmt: *mut sqlite3_stmt) -> *const ::core::ffi::c_char;
1729}
1730extern "C" {
1731    pub fn sqlite3_expanded_sql(pStmt: *mut sqlite3_stmt) -> *mut ::core::ffi::c_char;
1732}
1733extern "C" {
1734    pub fn sqlite3_stmt_readonly(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1735}
1736extern "C" {
1737    pub fn sqlite3_stmt_isexplain(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1738}
1739extern "C" {
1740    pub fn sqlite3_stmt_explain(
1741        pStmt: *mut sqlite3_stmt,
1742        eMode: ::core::ffi::c_int,
1743    ) -> ::core::ffi::c_int;
1744}
1745extern "C" {
1746    pub fn sqlite3_stmt_busy(arg1: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1747}
1748#[repr(C)]
1749#[derive(Debug, Copy, Clone)]
1750pub struct sqlite3_value {
1751    _unused: [u8; 0],
1752}
1753#[repr(C)]
1754#[derive(Debug, Copy, Clone)]
1755pub struct sqlite3_context {
1756    _unused: [u8; 0],
1757}
1758extern "C" {
1759    pub fn sqlite3_bind_blob(
1760        arg1: *mut sqlite3_stmt,
1761        arg2: ::core::ffi::c_int,
1762        arg3: *const ::core::ffi::c_void,
1763        n: ::core::ffi::c_int,
1764        arg4: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
1765    ) -> ::core::ffi::c_int;
1766}
1767extern "C" {
1768    pub fn sqlite3_bind_blob64(
1769        arg1: *mut sqlite3_stmt,
1770        arg2: ::core::ffi::c_int,
1771        arg3: *const ::core::ffi::c_void,
1772        arg4: sqlite3_uint64,
1773        arg5: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
1774    ) -> ::core::ffi::c_int;
1775}
1776extern "C" {
1777    pub fn sqlite3_bind_double(
1778        arg1: *mut sqlite3_stmt,
1779        arg2: ::core::ffi::c_int,
1780        arg3: f64,
1781    ) -> ::core::ffi::c_int;
1782}
1783extern "C" {
1784    pub fn sqlite3_bind_int(
1785        arg1: *mut sqlite3_stmt,
1786        arg2: ::core::ffi::c_int,
1787        arg3: ::core::ffi::c_int,
1788    ) -> ::core::ffi::c_int;
1789}
1790extern "C" {
1791    pub fn sqlite3_bind_int64(
1792        arg1: *mut sqlite3_stmt,
1793        arg2: ::core::ffi::c_int,
1794        arg3: sqlite3_int64,
1795    ) -> ::core::ffi::c_int;
1796}
1797extern "C" {
1798    pub fn sqlite3_bind_null(
1799        arg1: *mut sqlite3_stmt,
1800        arg2: ::core::ffi::c_int,
1801    ) -> ::core::ffi::c_int;
1802}
1803extern "C" {
1804    pub fn sqlite3_bind_text(
1805        arg1: *mut sqlite3_stmt,
1806        arg2: ::core::ffi::c_int,
1807        arg3: *const ::core::ffi::c_char,
1808        arg4: ::core::ffi::c_int,
1809        arg5: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
1810    ) -> ::core::ffi::c_int;
1811}
1812extern "C" {
1813    pub fn sqlite3_bind_text16(
1814        arg1: *mut sqlite3_stmt,
1815        arg2: ::core::ffi::c_int,
1816        arg3: *const ::core::ffi::c_void,
1817        arg4: ::core::ffi::c_int,
1818        arg5: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
1819    ) -> ::core::ffi::c_int;
1820}
1821extern "C" {
1822    pub fn sqlite3_bind_text64(
1823        arg1: *mut sqlite3_stmt,
1824        arg2: ::core::ffi::c_int,
1825        arg3: *const ::core::ffi::c_char,
1826        arg4: sqlite3_uint64,
1827        arg5: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
1828        encoding: ::core::ffi::c_uchar,
1829    ) -> ::core::ffi::c_int;
1830}
1831extern "C" {
1832    pub fn sqlite3_bind_value(
1833        arg1: *mut sqlite3_stmt,
1834        arg2: ::core::ffi::c_int,
1835        arg3: *const sqlite3_value,
1836    ) -> ::core::ffi::c_int;
1837}
1838extern "C" {
1839    pub fn sqlite3_bind_pointer(
1840        arg1: *mut sqlite3_stmt,
1841        arg2: ::core::ffi::c_int,
1842        arg3: *mut ::core::ffi::c_void,
1843        arg4: *const ::core::ffi::c_char,
1844        arg5: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
1845    ) -> ::core::ffi::c_int;
1846}
1847extern "C" {
1848    pub fn sqlite3_bind_zeroblob(
1849        arg1: *mut sqlite3_stmt,
1850        arg2: ::core::ffi::c_int,
1851        n: ::core::ffi::c_int,
1852    ) -> ::core::ffi::c_int;
1853}
1854extern "C" {
1855    pub fn sqlite3_bind_zeroblob64(
1856        arg1: *mut sqlite3_stmt,
1857        arg2: ::core::ffi::c_int,
1858        arg3: sqlite3_uint64,
1859    ) -> ::core::ffi::c_int;
1860}
1861extern "C" {
1862    pub fn sqlite3_bind_parameter_count(arg1: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1863}
1864extern "C" {
1865    pub fn sqlite3_bind_parameter_name(
1866        arg1: *mut sqlite3_stmt,
1867        arg2: ::core::ffi::c_int,
1868    ) -> *const ::core::ffi::c_char;
1869}
1870extern "C" {
1871    pub fn sqlite3_bind_parameter_index(
1872        arg1: *mut sqlite3_stmt,
1873        zName: *const ::core::ffi::c_char,
1874    ) -> ::core::ffi::c_int;
1875}
1876extern "C" {
1877    pub fn sqlite3_clear_bindings(arg1: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1878}
1879extern "C" {
1880    pub fn sqlite3_column_count(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1881}
1882extern "C" {
1883    pub fn sqlite3_column_name(
1884        arg1: *mut sqlite3_stmt,
1885        N: ::core::ffi::c_int,
1886    ) -> *const ::core::ffi::c_char;
1887}
1888extern "C" {
1889    pub fn sqlite3_column_name16(
1890        arg1: *mut sqlite3_stmt,
1891        N: ::core::ffi::c_int,
1892    ) -> *const ::core::ffi::c_void;
1893}
1894extern "C" {
1895    pub fn sqlite3_column_database_name(
1896        arg1: *mut sqlite3_stmt,
1897        arg2: ::core::ffi::c_int,
1898    ) -> *const ::core::ffi::c_char;
1899}
1900extern "C" {
1901    pub fn sqlite3_column_database_name16(
1902        arg1: *mut sqlite3_stmt,
1903        arg2: ::core::ffi::c_int,
1904    ) -> *const ::core::ffi::c_void;
1905}
1906extern "C" {
1907    pub fn sqlite3_column_table_name(
1908        arg1: *mut sqlite3_stmt,
1909        arg2: ::core::ffi::c_int,
1910    ) -> *const ::core::ffi::c_char;
1911}
1912extern "C" {
1913    pub fn sqlite3_column_table_name16(
1914        arg1: *mut sqlite3_stmt,
1915        arg2: ::core::ffi::c_int,
1916    ) -> *const ::core::ffi::c_void;
1917}
1918extern "C" {
1919    pub fn sqlite3_column_origin_name(
1920        arg1: *mut sqlite3_stmt,
1921        arg2: ::core::ffi::c_int,
1922    ) -> *const ::core::ffi::c_char;
1923}
1924extern "C" {
1925    pub fn sqlite3_column_origin_name16(
1926        arg1: *mut sqlite3_stmt,
1927        arg2: ::core::ffi::c_int,
1928    ) -> *const ::core::ffi::c_void;
1929}
1930extern "C" {
1931    pub fn sqlite3_column_decltype(
1932        arg1: *mut sqlite3_stmt,
1933        arg2: ::core::ffi::c_int,
1934    ) -> *const ::core::ffi::c_char;
1935}
1936extern "C" {
1937    pub fn sqlite3_column_decltype16(
1938        arg1: *mut sqlite3_stmt,
1939        arg2: ::core::ffi::c_int,
1940    ) -> *const ::core::ffi::c_void;
1941}
1942extern "C" {
1943    pub fn sqlite3_step(arg1: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1944}
1945extern "C" {
1946    pub fn sqlite3_data_count(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1947}
1948extern "C" {
1949    pub fn sqlite3_column_blob(
1950        arg1: *mut sqlite3_stmt,
1951        iCol: ::core::ffi::c_int,
1952    ) -> *const ::core::ffi::c_void;
1953}
1954extern "C" {
1955    pub fn sqlite3_column_double(arg1: *mut sqlite3_stmt, iCol: ::core::ffi::c_int) -> f64;
1956}
1957extern "C" {
1958    pub fn sqlite3_column_int(
1959        arg1: *mut sqlite3_stmt,
1960        iCol: ::core::ffi::c_int,
1961    ) -> ::core::ffi::c_int;
1962}
1963extern "C" {
1964    pub fn sqlite3_column_int64(arg1: *mut sqlite3_stmt, iCol: ::core::ffi::c_int)
1965        -> sqlite3_int64;
1966}
1967extern "C" {
1968    pub fn sqlite3_column_text(
1969        arg1: *mut sqlite3_stmt,
1970        iCol: ::core::ffi::c_int,
1971    ) -> *const ::core::ffi::c_uchar;
1972}
1973extern "C" {
1974    pub fn sqlite3_column_text16(
1975        arg1: *mut sqlite3_stmt,
1976        iCol: ::core::ffi::c_int,
1977    ) -> *const ::core::ffi::c_void;
1978}
1979extern "C" {
1980    pub fn sqlite3_column_value(
1981        arg1: *mut sqlite3_stmt,
1982        iCol: ::core::ffi::c_int,
1983    ) -> *mut sqlite3_value;
1984}
1985extern "C" {
1986    pub fn sqlite3_column_bytes(
1987        arg1: *mut sqlite3_stmt,
1988        iCol: ::core::ffi::c_int,
1989    ) -> ::core::ffi::c_int;
1990}
1991extern "C" {
1992    pub fn sqlite3_column_bytes16(
1993        arg1: *mut sqlite3_stmt,
1994        iCol: ::core::ffi::c_int,
1995    ) -> ::core::ffi::c_int;
1996}
1997extern "C" {
1998    pub fn sqlite3_column_type(
1999        arg1: *mut sqlite3_stmt,
2000        iCol: ::core::ffi::c_int,
2001    ) -> ::core::ffi::c_int;
2002}
2003extern "C" {
2004    pub fn sqlite3_finalize(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
2005}
2006extern "C" {
2007    pub fn sqlite3_reset(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
2008}
2009extern "C" {
2010    pub fn sqlite3_create_function(
2011        db: *mut sqlite3,
2012        zFunctionName: *const ::core::ffi::c_char,
2013        nArg: ::core::ffi::c_int,
2014        eTextRep: ::core::ffi::c_int,
2015        pApp: *mut ::core::ffi::c_void,
2016        xFunc: ::core::option::Option<
2017            unsafe extern "C" fn(
2018                arg1: *mut sqlite3_context,
2019                arg2: ::core::ffi::c_int,
2020                arg3: *mut *mut sqlite3_value,
2021            ),
2022        >,
2023        xStep: ::core::option::Option<
2024            unsafe extern "C" fn(
2025                arg1: *mut sqlite3_context,
2026                arg2: ::core::ffi::c_int,
2027                arg3: *mut *mut sqlite3_value,
2028            ),
2029        >,
2030        xFinal: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
2031    ) -> ::core::ffi::c_int;
2032}
2033extern "C" {
2034    pub fn sqlite3_create_function16(
2035        db: *mut sqlite3,
2036        zFunctionName: *const ::core::ffi::c_void,
2037        nArg: ::core::ffi::c_int,
2038        eTextRep: ::core::ffi::c_int,
2039        pApp: *mut ::core::ffi::c_void,
2040        xFunc: ::core::option::Option<
2041            unsafe extern "C" fn(
2042                arg1: *mut sqlite3_context,
2043                arg2: ::core::ffi::c_int,
2044                arg3: *mut *mut sqlite3_value,
2045            ),
2046        >,
2047        xStep: ::core::option::Option<
2048            unsafe extern "C" fn(
2049                arg1: *mut sqlite3_context,
2050                arg2: ::core::ffi::c_int,
2051                arg3: *mut *mut sqlite3_value,
2052            ),
2053        >,
2054        xFinal: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
2055    ) -> ::core::ffi::c_int;
2056}
2057extern "C" {
2058    pub fn sqlite3_create_function_v2(
2059        db: *mut sqlite3,
2060        zFunctionName: *const ::core::ffi::c_char,
2061        nArg: ::core::ffi::c_int,
2062        eTextRep: ::core::ffi::c_int,
2063        pApp: *mut ::core::ffi::c_void,
2064        xFunc: ::core::option::Option<
2065            unsafe extern "C" fn(
2066                arg1: *mut sqlite3_context,
2067                arg2: ::core::ffi::c_int,
2068                arg3: *mut *mut sqlite3_value,
2069            ),
2070        >,
2071        xStep: ::core::option::Option<
2072            unsafe extern "C" fn(
2073                arg1: *mut sqlite3_context,
2074                arg2: ::core::ffi::c_int,
2075                arg3: *mut *mut sqlite3_value,
2076            ),
2077        >,
2078        xFinal: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
2079        xDestroy: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2080    ) -> ::core::ffi::c_int;
2081}
2082extern "C" {
2083    pub fn sqlite3_create_window_function(
2084        db: *mut sqlite3,
2085        zFunctionName: *const ::core::ffi::c_char,
2086        nArg: ::core::ffi::c_int,
2087        eTextRep: ::core::ffi::c_int,
2088        pApp: *mut ::core::ffi::c_void,
2089        xStep: ::core::option::Option<
2090            unsafe extern "C" fn(
2091                arg1: *mut sqlite3_context,
2092                arg2: ::core::ffi::c_int,
2093                arg3: *mut *mut sqlite3_value,
2094            ),
2095        >,
2096        xFinal: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
2097        xValue: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
2098        xInverse: ::core::option::Option<
2099            unsafe extern "C" fn(
2100                arg1: *mut sqlite3_context,
2101                arg2: ::core::ffi::c_int,
2102                arg3: *mut *mut sqlite3_value,
2103            ),
2104        >,
2105        xDestroy: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2106    ) -> ::core::ffi::c_int;
2107}
2108extern "C" {
2109    pub fn sqlite3_aggregate_count(arg1: *mut sqlite3_context) -> ::core::ffi::c_int;
2110}
2111extern "C" {
2112    pub fn sqlite3_expired(arg1: *mut sqlite3_stmt) -> ::core::ffi::c_int;
2113}
2114extern "C" {
2115    pub fn sqlite3_transfer_bindings(
2116        arg1: *mut sqlite3_stmt,
2117        arg2: *mut sqlite3_stmt,
2118    ) -> ::core::ffi::c_int;
2119}
2120extern "C" {
2121    pub fn sqlite3_global_recover() -> ::core::ffi::c_int;
2122}
2123extern "C" {
2124    pub fn sqlite3_thread_cleanup();
2125}
2126extern "C" {
2127    pub fn sqlite3_memory_alarm(
2128        arg1: ::core::option::Option<
2129            unsafe extern "C" fn(
2130                arg1: *mut ::core::ffi::c_void,
2131                arg2: sqlite3_int64,
2132                arg3: ::core::ffi::c_int,
2133            ),
2134        >,
2135        arg2: *mut ::core::ffi::c_void,
2136        arg3: sqlite3_int64,
2137    ) -> ::core::ffi::c_int;
2138}
2139extern "C" {
2140    pub fn sqlite3_value_blob(arg1: *mut sqlite3_value) -> *const ::core::ffi::c_void;
2141}
2142extern "C" {
2143    pub fn sqlite3_value_double(arg1: *mut sqlite3_value) -> f64;
2144}
2145extern "C" {
2146    pub fn sqlite3_value_int(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
2147}
2148extern "C" {
2149    pub fn sqlite3_value_int64(arg1: *mut sqlite3_value) -> sqlite3_int64;
2150}
2151extern "C" {
2152    pub fn sqlite3_value_pointer(
2153        arg1: *mut sqlite3_value,
2154        arg2: *const ::core::ffi::c_char,
2155    ) -> *mut ::core::ffi::c_void;
2156}
2157extern "C" {
2158    pub fn sqlite3_value_text(arg1: *mut sqlite3_value) -> *const ::core::ffi::c_uchar;
2159}
2160extern "C" {
2161    pub fn sqlite3_value_text16(arg1: *mut sqlite3_value) -> *const ::core::ffi::c_void;
2162}
2163extern "C" {
2164    pub fn sqlite3_value_text16le(arg1: *mut sqlite3_value) -> *const ::core::ffi::c_void;
2165}
2166extern "C" {
2167    pub fn sqlite3_value_text16be(arg1: *mut sqlite3_value) -> *const ::core::ffi::c_void;
2168}
2169extern "C" {
2170    pub fn sqlite3_value_bytes(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
2171}
2172extern "C" {
2173    pub fn sqlite3_value_bytes16(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
2174}
2175extern "C" {
2176    pub fn sqlite3_value_type(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
2177}
2178extern "C" {
2179    pub fn sqlite3_value_numeric_type(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
2180}
2181extern "C" {
2182    pub fn sqlite3_value_nochange(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
2183}
2184extern "C" {
2185    pub fn sqlite3_value_frombind(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
2186}
2187extern "C" {
2188    pub fn sqlite3_value_encoding(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
2189}
2190extern "C" {
2191    pub fn sqlite3_value_subtype(arg1: *mut sqlite3_value) -> ::core::ffi::c_uint;
2192}
2193extern "C" {
2194    pub fn sqlite3_value_dup(arg1: *const sqlite3_value) -> *mut sqlite3_value;
2195}
2196extern "C" {
2197    pub fn sqlite3_value_free(arg1: *mut sqlite3_value);
2198}
2199extern "C" {
2200    pub fn sqlite3_aggregate_context(
2201        arg1: *mut sqlite3_context,
2202        nBytes: ::core::ffi::c_int,
2203    ) -> *mut ::core::ffi::c_void;
2204}
2205extern "C" {
2206    pub fn sqlite3_user_data(arg1: *mut sqlite3_context) -> *mut ::core::ffi::c_void;
2207}
2208extern "C" {
2209    pub fn sqlite3_context_db_handle(arg1: *mut sqlite3_context) -> *mut sqlite3;
2210}
2211extern "C" {
2212    pub fn sqlite3_get_auxdata(
2213        arg1: *mut sqlite3_context,
2214        N: ::core::ffi::c_int,
2215    ) -> *mut ::core::ffi::c_void;
2216}
2217extern "C" {
2218    pub fn sqlite3_set_auxdata(
2219        arg1: *mut sqlite3_context,
2220        N: ::core::ffi::c_int,
2221        arg2: *mut ::core::ffi::c_void,
2222        arg3: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2223    );
2224}
2225extern "C" {
2226    pub fn sqlite3_get_clientdata(
2227        arg1: *mut sqlite3,
2228        arg2: *const ::core::ffi::c_char,
2229    ) -> *mut ::core::ffi::c_void;
2230}
2231extern "C" {
2232    pub fn sqlite3_set_clientdata(
2233        arg1: *mut sqlite3,
2234        arg2: *const ::core::ffi::c_char,
2235        arg3: *mut ::core::ffi::c_void,
2236        arg4: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2237    ) -> ::core::ffi::c_int;
2238}
2239pub type sqlite3_destructor_type =
2240    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>;
2241extern "C" {
2242    pub fn sqlite3_result_blob(
2243        arg1: *mut sqlite3_context,
2244        arg2: *const ::core::ffi::c_void,
2245        arg3: ::core::ffi::c_int,
2246        arg4: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2247    );
2248}
2249extern "C" {
2250    pub fn sqlite3_result_blob64(
2251        arg1: *mut sqlite3_context,
2252        arg2: *const ::core::ffi::c_void,
2253        arg3: sqlite3_uint64,
2254        arg4: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2255    );
2256}
2257extern "C" {
2258    pub fn sqlite3_result_double(arg1: *mut sqlite3_context, arg2: f64);
2259}
2260extern "C" {
2261    pub fn sqlite3_result_error(
2262        arg1: *mut sqlite3_context,
2263        arg2: *const ::core::ffi::c_char,
2264        arg3: ::core::ffi::c_int,
2265    );
2266}
2267extern "C" {
2268    pub fn sqlite3_result_error16(
2269        arg1: *mut sqlite3_context,
2270        arg2: *const ::core::ffi::c_void,
2271        arg3: ::core::ffi::c_int,
2272    );
2273}
2274extern "C" {
2275    pub fn sqlite3_result_error_toobig(arg1: *mut sqlite3_context);
2276}
2277extern "C" {
2278    pub fn sqlite3_result_error_nomem(arg1: *mut sqlite3_context);
2279}
2280extern "C" {
2281    pub fn sqlite3_result_error_code(arg1: *mut sqlite3_context, arg2: ::core::ffi::c_int);
2282}
2283extern "C" {
2284    pub fn sqlite3_result_int(arg1: *mut sqlite3_context, arg2: ::core::ffi::c_int);
2285}
2286extern "C" {
2287    pub fn sqlite3_result_int64(arg1: *mut sqlite3_context, arg2: sqlite3_int64);
2288}
2289extern "C" {
2290    pub fn sqlite3_result_null(arg1: *mut sqlite3_context);
2291}
2292extern "C" {
2293    pub fn sqlite3_result_text(
2294        arg1: *mut sqlite3_context,
2295        arg2: *const ::core::ffi::c_char,
2296        arg3: ::core::ffi::c_int,
2297        arg4: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2298    );
2299}
2300extern "C" {
2301    pub fn sqlite3_result_text64(
2302        arg1: *mut sqlite3_context,
2303        arg2: *const ::core::ffi::c_char,
2304        arg3: sqlite3_uint64,
2305        arg4: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2306        encoding: ::core::ffi::c_uchar,
2307    );
2308}
2309extern "C" {
2310    pub fn sqlite3_result_text16(
2311        arg1: *mut sqlite3_context,
2312        arg2: *const ::core::ffi::c_void,
2313        arg3: ::core::ffi::c_int,
2314        arg4: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2315    );
2316}
2317extern "C" {
2318    pub fn sqlite3_result_text16le(
2319        arg1: *mut sqlite3_context,
2320        arg2: *const ::core::ffi::c_void,
2321        arg3: ::core::ffi::c_int,
2322        arg4: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2323    );
2324}
2325extern "C" {
2326    pub fn sqlite3_result_text16be(
2327        arg1: *mut sqlite3_context,
2328        arg2: *const ::core::ffi::c_void,
2329        arg3: ::core::ffi::c_int,
2330        arg4: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2331    );
2332}
2333extern "C" {
2334    pub fn sqlite3_result_value(arg1: *mut sqlite3_context, arg2: *mut sqlite3_value);
2335}
2336extern "C" {
2337    pub fn sqlite3_result_pointer(
2338        arg1: *mut sqlite3_context,
2339        arg2: *mut ::core::ffi::c_void,
2340        arg3: *const ::core::ffi::c_char,
2341        arg4: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2342    );
2343}
2344extern "C" {
2345    pub fn sqlite3_result_zeroblob(arg1: *mut sqlite3_context, n: ::core::ffi::c_int);
2346}
2347extern "C" {
2348    pub fn sqlite3_result_zeroblob64(
2349        arg1: *mut sqlite3_context,
2350        n: sqlite3_uint64,
2351    ) -> ::core::ffi::c_int;
2352}
2353extern "C" {
2354    pub fn sqlite3_result_subtype(arg1: *mut sqlite3_context, arg2: ::core::ffi::c_uint);
2355}
2356extern "C" {
2357    pub fn sqlite3_create_collation(
2358        arg1: *mut sqlite3,
2359        zName: *const ::core::ffi::c_char,
2360        eTextRep: ::core::ffi::c_int,
2361        pArg: *mut ::core::ffi::c_void,
2362        xCompare: ::core::option::Option<
2363            unsafe extern "C" fn(
2364                arg1: *mut ::core::ffi::c_void,
2365                arg2: ::core::ffi::c_int,
2366                arg3: *const ::core::ffi::c_void,
2367                arg4: ::core::ffi::c_int,
2368                arg5: *const ::core::ffi::c_void,
2369            ) -> ::core::ffi::c_int,
2370        >,
2371    ) -> ::core::ffi::c_int;
2372}
2373extern "C" {
2374    pub fn sqlite3_create_collation_v2(
2375        arg1: *mut sqlite3,
2376        zName: *const ::core::ffi::c_char,
2377        eTextRep: ::core::ffi::c_int,
2378        pArg: *mut ::core::ffi::c_void,
2379        xCompare: ::core::option::Option<
2380            unsafe extern "C" fn(
2381                arg1: *mut ::core::ffi::c_void,
2382                arg2: ::core::ffi::c_int,
2383                arg3: *const ::core::ffi::c_void,
2384                arg4: ::core::ffi::c_int,
2385                arg5: *const ::core::ffi::c_void,
2386            ) -> ::core::ffi::c_int,
2387        >,
2388        xDestroy: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2389    ) -> ::core::ffi::c_int;
2390}
2391extern "C" {
2392    pub fn sqlite3_create_collation16(
2393        arg1: *mut sqlite3,
2394        zName: *const ::core::ffi::c_void,
2395        eTextRep: ::core::ffi::c_int,
2396        pArg: *mut ::core::ffi::c_void,
2397        xCompare: ::core::option::Option<
2398            unsafe extern "C" fn(
2399                arg1: *mut ::core::ffi::c_void,
2400                arg2: ::core::ffi::c_int,
2401                arg3: *const ::core::ffi::c_void,
2402                arg4: ::core::ffi::c_int,
2403                arg5: *const ::core::ffi::c_void,
2404            ) -> ::core::ffi::c_int,
2405        >,
2406    ) -> ::core::ffi::c_int;
2407}
2408extern "C" {
2409    pub fn sqlite3_collation_needed(
2410        arg1: *mut sqlite3,
2411        arg2: *mut ::core::ffi::c_void,
2412        arg3: ::core::option::Option<
2413            unsafe extern "C" fn(
2414                arg1: *mut ::core::ffi::c_void,
2415                arg2: *mut sqlite3,
2416                eTextRep: ::core::ffi::c_int,
2417                arg3: *const ::core::ffi::c_char,
2418            ),
2419        >,
2420    ) -> ::core::ffi::c_int;
2421}
2422extern "C" {
2423    pub fn sqlite3_collation_needed16(
2424        arg1: *mut sqlite3,
2425        arg2: *mut ::core::ffi::c_void,
2426        arg3: ::core::option::Option<
2427            unsafe extern "C" fn(
2428                arg1: *mut ::core::ffi::c_void,
2429                arg2: *mut sqlite3,
2430                eTextRep: ::core::ffi::c_int,
2431                arg3: *const ::core::ffi::c_void,
2432            ),
2433        >,
2434    ) -> ::core::ffi::c_int;
2435}
2436extern "C" {
2437    pub fn sqlite3_sleep(arg1: ::core::ffi::c_int) -> ::core::ffi::c_int;
2438}
2439extern "C" {
2440    pub static mut sqlite3_temp_directory: *mut ::core::ffi::c_char;
2441}
2442extern "C" {
2443    pub static mut sqlite3_data_directory: *mut ::core::ffi::c_char;
2444}
2445extern "C" {
2446    pub fn sqlite3_win32_set_directory(
2447        type_: ::core::ffi::c_ulong,
2448        zValue: *mut ::core::ffi::c_void,
2449    ) -> ::core::ffi::c_int;
2450}
2451extern "C" {
2452    pub fn sqlite3_win32_set_directory8(
2453        type_: ::core::ffi::c_ulong,
2454        zValue: *const ::core::ffi::c_char,
2455    ) -> ::core::ffi::c_int;
2456}
2457extern "C" {
2458    pub fn sqlite3_win32_set_directory16(
2459        type_: ::core::ffi::c_ulong,
2460        zValue: *const ::core::ffi::c_void,
2461    ) -> ::core::ffi::c_int;
2462}
2463extern "C" {
2464    pub fn sqlite3_get_autocommit(arg1: *mut sqlite3) -> ::core::ffi::c_int;
2465}
2466extern "C" {
2467    pub fn sqlite3_db_handle(arg1: *mut sqlite3_stmt) -> *mut sqlite3;
2468}
2469extern "C" {
2470    pub fn sqlite3_db_name(db: *mut sqlite3, N: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
2471}
2472extern "C" {
2473    pub fn sqlite3_db_filename(
2474        db: *mut sqlite3,
2475        zDbName: *const ::core::ffi::c_char,
2476    ) -> sqlite3_filename;
2477}
2478extern "C" {
2479    pub fn sqlite3_db_readonly(
2480        db: *mut sqlite3,
2481        zDbName: *const ::core::ffi::c_char,
2482    ) -> ::core::ffi::c_int;
2483}
2484extern "C" {
2485    pub fn sqlite3_txn_state(
2486        arg1: *mut sqlite3,
2487        zSchema: *const ::core::ffi::c_char,
2488    ) -> ::core::ffi::c_int;
2489}
2490extern "C" {
2491    pub fn sqlite3_next_stmt(pDb: *mut sqlite3, pStmt: *mut sqlite3_stmt) -> *mut sqlite3_stmt;
2492}
2493extern "C" {
2494    pub fn sqlite3_commit_hook(
2495        arg1: *mut sqlite3,
2496        arg2: ::core::option::Option<
2497            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
2498        >,
2499        arg3: *mut ::core::ffi::c_void,
2500    ) -> *mut ::core::ffi::c_void;
2501}
2502extern "C" {
2503    pub fn sqlite3_rollback_hook(
2504        arg1: *mut sqlite3,
2505        arg2: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2506        arg3: *mut ::core::ffi::c_void,
2507    ) -> *mut ::core::ffi::c_void;
2508}
2509extern "C" {
2510    pub fn sqlite3_autovacuum_pages(
2511        db: *mut sqlite3,
2512        arg1: ::core::option::Option<
2513            unsafe extern "C" fn(
2514                arg1: *mut ::core::ffi::c_void,
2515                arg2: *const ::core::ffi::c_char,
2516                arg3: ::core::ffi::c_uint,
2517                arg4: ::core::ffi::c_uint,
2518                arg5: ::core::ffi::c_uint,
2519            ) -> ::core::ffi::c_uint,
2520        >,
2521        arg2: *mut ::core::ffi::c_void,
2522        arg3: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
2523    ) -> ::core::ffi::c_int;
2524}
2525extern "C" {
2526    pub fn sqlite3_update_hook(
2527        arg1: *mut sqlite3,
2528        arg2: ::core::option::Option<
2529            unsafe extern "C" fn(
2530                arg1: *mut ::core::ffi::c_void,
2531                arg2: ::core::ffi::c_int,
2532                arg3: *const ::core::ffi::c_char,
2533                arg4: *const ::core::ffi::c_char,
2534                arg5: sqlite3_int64,
2535            ),
2536        >,
2537        arg3: *mut ::core::ffi::c_void,
2538    ) -> *mut ::core::ffi::c_void;
2539}
2540extern "C" {
2541    pub fn sqlite3_enable_shared_cache(arg1: ::core::ffi::c_int) -> ::core::ffi::c_int;
2542}
2543extern "C" {
2544    pub fn sqlite3_release_memory(arg1: ::core::ffi::c_int) -> ::core::ffi::c_int;
2545}
2546extern "C" {
2547    pub fn sqlite3_db_release_memory(arg1: *mut sqlite3) -> ::core::ffi::c_int;
2548}
2549extern "C" {
2550    pub fn sqlite3_soft_heap_limit64(N: sqlite3_int64) -> sqlite3_int64;
2551}
2552extern "C" {
2553    pub fn sqlite3_hard_heap_limit64(N: sqlite3_int64) -> sqlite3_int64;
2554}
2555extern "C" {
2556    pub fn sqlite3_soft_heap_limit(N: ::core::ffi::c_int);
2557}
2558extern "C" {
2559    pub fn sqlite3_table_column_metadata(
2560        db: *mut sqlite3,
2561        zDbName: *const ::core::ffi::c_char,
2562        zTableName: *const ::core::ffi::c_char,
2563        zColumnName: *const ::core::ffi::c_char,
2564        pzDataType: *mut *const ::core::ffi::c_char,
2565        pzCollSeq: *mut *const ::core::ffi::c_char,
2566        pNotNull: *mut ::core::ffi::c_int,
2567        pPrimaryKey: *mut ::core::ffi::c_int,
2568        pAutoinc: *mut ::core::ffi::c_int,
2569    ) -> ::core::ffi::c_int;
2570}
2571extern "C" {
2572    pub fn sqlite3_load_extension(
2573        db: *mut sqlite3,
2574        zFile: *const ::core::ffi::c_char,
2575        zProc: *const ::core::ffi::c_char,
2576        pzErrMsg: *mut *mut ::core::ffi::c_char,
2577    ) -> ::core::ffi::c_int;
2578}
2579extern "C" {
2580    pub fn sqlite3_enable_load_extension(
2581        db: *mut sqlite3,
2582        onoff: ::core::ffi::c_int,
2583    ) -> ::core::ffi::c_int;
2584}
2585extern "C" {
2586    pub fn sqlite3_auto_extension(
2587        xEntryPoint: ::core::option::Option<unsafe extern "C" fn()>,
2588    ) -> ::core::ffi::c_int;
2589}
2590extern "C" {
2591    pub fn sqlite3_cancel_auto_extension(
2592        xEntryPoint: ::core::option::Option<unsafe extern "C" fn()>,
2593    ) -> ::core::ffi::c_int;
2594}
2595extern "C" {
2596    pub fn sqlite3_reset_auto_extension();
2597}
2598#[repr(C)]
2599#[derive(Debug, Copy, Clone)]
2600pub struct sqlite3_module {
2601    pub iVersion: ::core::ffi::c_int,
2602    pub xCreate: ::core::option::Option<
2603        unsafe extern "C" fn(
2604            arg1: *mut sqlite3,
2605            pAux: *mut ::core::ffi::c_void,
2606            argc: ::core::ffi::c_int,
2607            argv: *const *const ::core::ffi::c_char,
2608            ppVTab: *mut *mut sqlite3_vtab,
2609            arg2: *mut *mut ::core::ffi::c_char,
2610        ) -> ::core::ffi::c_int,
2611    >,
2612    pub xConnect: ::core::option::Option<
2613        unsafe extern "C" fn(
2614            arg1: *mut sqlite3,
2615            pAux: *mut ::core::ffi::c_void,
2616            argc: ::core::ffi::c_int,
2617            argv: *const *const ::core::ffi::c_char,
2618            ppVTab: *mut *mut sqlite3_vtab,
2619            arg2: *mut *mut ::core::ffi::c_char,
2620        ) -> ::core::ffi::c_int,
2621    >,
2622    pub xBestIndex: ::core::option::Option<
2623        unsafe extern "C" fn(
2624            pVTab: *mut sqlite3_vtab,
2625            arg1: *mut sqlite3_index_info,
2626        ) -> ::core::ffi::c_int,
2627    >,
2628    pub xDisconnect: ::core::option::Option<
2629        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
2630    >,
2631    pub xDestroy: ::core::option::Option<
2632        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
2633    >,
2634    pub xOpen: ::core::option::Option<
2635        unsafe extern "C" fn(
2636            pVTab: *mut sqlite3_vtab,
2637            ppCursor: *mut *mut sqlite3_vtab_cursor,
2638        ) -> ::core::ffi::c_int,
2639    >,
2640    pub xClose: ::core::option::Option<
2641        unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor) -> ::core::ffi::c_int,
2642    >,
2643    pub xFilter: ::core::option::Option<
2644        unsafe extern "C" fn(
2645            arg1: *mut sqlite3_vtab_cursor,
2646            idxNum: ::core::ffi::c_int,
2647            idxStr: *const ::core::ffi::c_char,
2648            argc: ::core::ffi::c_int,
2649            argv: *mut *mut sqlite3_value,
2650        ) -> ::core::ffi::c_int,
2651    >,
2652    pub xNext: ::core::option::Option<
2653        unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor) -> ::core::ffi::c_int,
2654    >,
2655    pub xEof: ::core::option::Option<
2656        unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor) -> ::core::ffi::c_int,
2657    >,
2658    pub xColumn: ::core::option::Option<
2659        unsafe extern "C" fn(
2660            arg1: *mut sqlite3_vtab_cursor,
2661            arg2: *mut sqlite3_context,
2662            arg3: ::core::ffi::c_int,
2663        ) -> ::core::ffi::c_int,
2664    >,
2665    pub xRowid: ::core::option::Option<
2666        unsafe extern "C" fn(
2667            arg1: *mut sqlite3_vtab_cursor,
2668            pRowid: *mut sqlite3_int64,
2669        ) -> ::core::ffi::c_int,
2670    >,
2671    pub xUpdate: ::core::option::Option<
2672        unsafe extern "C" fn(
2673            arg1: *mut sqlite3_vtab,
2674            arg2: ::core::ffi::c_int,
2675            arg3: *mut *mut sqlite3_value,
2676            arg4: *mut sqlite3_int64,
2677        ) -> ::core::ffi::c_int,
2678    >,
2679    pub xBegin: ::core::option::Option<
2680        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
2681    >,
2682    pub xSync: ::core::option::Option<
2683        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
2684    >,
2685    pub xCommit: ::core::option::Option<
2686        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
2687    >,
2688    pub xRollback: ::core::option::Option<
2689        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
2690    >,
2691    pub xFindFunction: ::core::option::Option<
2692        unsafe extern "C" fn(
2693            pVtab: *mut sqlite3_vtab,
2694            nArg: ::core::ffi::c_int,
2695            zName: *const ::core::ffi::c_char,
2696            pxFunc: *mut ::core::option::Option<
2697                unsafe extern "C" fn(
2698                    arg1: *mut sqlite3_context,
2699                    arg2: ::core::ffi::c_int,
2700                    arg3: *mut *mut sqlite3_value,
2701                ),
2702            >,
2703            ppArg: *mut *mut ::core::ffi::c_void,
2704        ) -> ::core::ffi::c_int,
2705    >,
2706    pub xRename: ::core::option::Option<
2707        unsafe extern "C" fn(
2708            pVtab: *mut sqlite3_vtab,
2709            zNew: *const ::core::ffi::c_char,
2710        ) -> ::core::ffi::c_int,
2711    >,
2712    pub xSavepoint: ::core::option::Option<
2713        unsafe extern "C" fn(
2714            pVTab: *mut sqlite3_vtab,
2715            arg1: ::core::ffi::c_int,
2716        ) -> ::core::ffi::c_int,
2717    >,
2718    pub xRelease: ::core::option::Option<
2719        unsafe extern "C" fn(
2720            pVTab: *mut sqlite3_vtab,
2721            arg1: ::core::ffi::c_int,
2722        ) -> ::core::ffi::c_int,
2723    >,
2724    pub xRollbackTo: ::core::option::Option<
2725        unsafe extern "C" fn(
2726            pVTab: *mut sqlite3_vtab,
2727            arg1: ::core::ffi::c_int,
2728        ) -> ::core::ffi::c_int,
2729    >,
2730    pub xShadowName: ::core::option::Option<
2731        unsafe extern "C" fn(arg1: *const ::core::ffi::c_char) -> ::core::ffi::c_int,
2732    >,
2733    pub xIntegrity: ::core::option::Option<
2734        unsafe extern "C" fn(
2735            pVTab: *mut sqlite3_vtab,
2736            zSchema: *const ::core::ffi::c_char,
2737            zTabName: *const ::core::ffi::c_char,
2738            mFlags: ::core::ffi::c_int,
2739            pzErr: *mut *mut ::core::ffi::c_char,
2740        ) -> ::core::ffi::c_int,
2741    >,
2742}
2743#[test]
2744fn bindgen_test_layout_sqlite3_module() {
2745    const UNINIT: ::core::mem::MaybeUninit<sqlite3_module> = ::core::mem::MaybeUninit::uninit();
2746    let ptr = UNINIT.as_ptr();
2747    assert_eq!(
2748        ::core::mem::size_of::<sqlite3_module>(),
2749        200usize,
2750        concat!("Size of: ", stringify!(sqlite3_module))
2751    );
2752    assert_eq!(
2753        ::core::mem::align_of::<sqlite3_module>(),
2754        8usize,
2755        concat!("Alignment of ", stringify!(sqlite3_module))
2756    );
2757    assert_eq!(
2758        unsafe { ::core::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
2759        0usize,
2760        concat!(
2761            "Offset of field: ",
2762            stringify!(sqlite3_module),
2763            "::",
2764            stringify!(iVersion)
2765        )
2766    );
2767    assert_eq!(
2768        unsafe { ::core::ptr::addr_of!((*ptr).xCreate) as usize - ptr as usize },
2769        8usize,
2770        concat!(
2771            "Offset of field: ",
2772            stringify!(sqlite3_module),
2773            "::",
2774            stringify!(xCreate)
2775        )
2776    );
2777    assert_eq!(
2778        unsafe { ::core::ptr::addr_of!((*ptr).xConnect) as usize - ptr as usize },
2779        16usize,
2780        concat!(
2781            "Offset of field: ",
2782            stringify!(sqlite3_module),
2783            "::",
2784            stringify!(xConnect)
2785        )
2786    );
2787    assert_eq!(
2788        unsafe { ::core::ptr::addr_of!((*ptr).xBestIndex) as usize - ptr as usize },
2789        24usize,
2790        concat!(
2791            "Offset of field: ",
2792            stringify!(sqlite3_module),
2793            "::",
2794            stringify!(xBestIndex)
2795        )
2796    );
2797    assert_eq!(
2798        unsafe { ::core::ptr::addr_of!((*ptr).xDisconnect) as usize - ptr as usize },
2799        32usize,
2800        concat!(
2801            "Offset of field: ",
2802            stringify!(sqlite3_module),
2803            "::",
2804            stringify!(xDisconnect)
2805        )
2806    );
2807    assert_eq!(
2808        unsafe { ::core::ptr::addr_of!((*ptr).xDestroy) as usize - ptr as usize },
2809        40usize,
2810        concat!(
2811            "Offset of field: ",
2812            stringify!(sqlite3_module),
2813            "::",
2814            stringify!(xDestroy)
2815        )
2816    );
2817    assert_eq!(
2818        unsafe { ::core::ptr::addr_of!((*ptr).xOpen) as usize - ptr as usize },
2819        48usize,
2820        concat!(
2821            "Offset of field: ",
2822            stringify!(sqlite3_module),
2823            "::",
2824            stringify!(xOpen)
2825        )
2826    );
2827    assert_eq!(
2828        unsafe { ::core::ptr::addr_of!((*ptr).xClose) as usize - ptr as usize },
2829        56usize,
2830        concat!(
2831            "Offset of field: ",
2832            stringify!(sqlite3_module),
2833            "::",
2834            stringify!(xClose)
2835        )
2836    );
2837    assert_eq!(
2838        unsafe { ::core::ptr::addr_of!((*ptr).xFilter) as usize - ptr as usize },
2839        64usize,
2840        concat!(
2841            "Offset of field: ",
2842            stringify!(sqlite3_module),
2843            "::",
2844            stringify!(xFilter)
2845        )
2846    );
2847    assert_eq!(
2848        unsafe { ::core::ptr::addr_of!((*ptr).xNext) as usize - ptr as usize },
2849        72usize,
2850        concat!(
2851            "Offset of field: ",
2852            stringify!(sqlite3_module),
2853            "::",
2854            stringify!(xNext)
2855        )
2856    );
2857    assert_eq!(
2858        unsafe { ::core::ptr::addr_of!((*ptr).xEof) as usize - ptr as usize },
2859        80usize,
2860        concat!(
2861            "Offset of field: ",
2862            stringify!(sqlite3_module),
2863            "::",
2864            stringify!(xEof)
2865        )
2866    );
2867    assert_eq!(
2868        unsafe { ::core::ptr::addr_of!((*ptr).xColumn) as usize - ptr as usize },
2869        88usize,
2870        concat!(
2871            "Offset of field: ",
2872            stringify!(sqlite3_module),
2873            "::",
2874            stringify!(xColumn)
2875        )
2876    );
2877    assert_eq!(
2878        unsafe { ::core::ptr::addr_of!((*ptr).xRowid) as usize - ptr as usize },
2879        96usize,
2880        concat!(
2881            "Offset of field: ",
2882            stringify!(sqlite3_module),
2883            "::",
2884            stringify!(xRowid)
2885        )
2886    );
2887    assert_eq!(
2888        unsafe { ::core::ptr::addr_of!((*ptr).xUpdate) as usize - ptr as usize },
2889        104usize,
2890        concat!(
2891            "Offset of field: ",
2892            stringify!(sqlite3_module),
2893            "::",
2894            stringify!(xUpdate)
2895        )
2896    );
2897    assert_eq!(
2898        unsafe { ::core::ptr::addr_of!((*ptr).xBegin) as usize - ptr as usize },
2899        112usize,
2900        concat!(
2901            "Offset of field: ",
2902            stringify!(sqlite3_module),
2903            "::",
2904            stringify!(xBegin)
2905        )
2906    );
2907    assert_eq!(
2908        unsafe { ::core::ptr::addr_of!((*ptr).xSync) as usize - ptr as usize },
2909        120usize,
2910        concat!(
2911            "Offset of field: ",
2912            stringify!(sqlite3_module),
2913            "::",
2914            stringify!(xSync)
2915        )
2916    );
2917    assert_eq!(
2918        unsafe { ::core::ptr::addr_of!((*ptr).xCommit) as usize - ptr as usize },
2919        128usize,
2920        concat!(
2921            "Offset of field: ",
2922            stringify!(sqlite3_module),
2923            "::",
2924            stringify!(xCommit)
2925        )
2926    );
2927    assert_eq!(
2928        unsafe { ::core::ptr::addr_of!((*ptr).xRollback) as usize - ptr as usize },
2929        136usize,
2930        concat!(
2931            "Offset of field: ",
2932            stringify!(sqlite3_module),
2933            "::",
2934            stringify!(xRollback)
2935        )
2936    );
2937    assert_eq!(
2938        unsafe { ::core::ptr::addr_of!((*ptr).xFindFunction) as usize - ptr as usize },
2939        144usize,
2940        concat!(
2941            "Offset of field: ",
2942            stringify!(sqlite3_module),
2943            "::",
2944            stringify!(xFindFunction)
2945        )
2946    );
2947    assert_eq!(
2948        unsafe { ::core::ptr::addr_of!((*ptr).xRename) as usize - ptr as usize },
2949        152usize,
2950        concat!(
2951            "Offset of field: ",
2952            stringify!(sqlite3_module),
2953            "::",
2954            stringify!(xRename)
2955        )
2956    );
2957    assert_eq!(
2958        unsafe { ::core::ptr::addr_of!((*ptr).xSavepoint) as usize - ptr as usize },
2959        160usize,
2960        concat!(
2961            "Offset of field: ",
2962            stringify!(sqlite3_module),
2963            "::",
2964            stringify!(xSavepoint)
2965        )
2966    );
2967    assert_eq!(
2968        unsafe { ::core::ptr::addr_of!((*ptr).xRelease) as usize - ptr as usize },
2969        168usize,
2970        concat!(
2971            "Offset of field: ",
2972            stringify!(sqlite3_module),
2973            "::",
2974            stringify!(xRelease)
2975        )
2976    );
2977    assert_eq!(
2978        unsafe { ::core::ptr::addr_of!((*ptr).xRollbackTo) as usize - ptr as usize },
2979        176usize,
2980        concat!(
2981            "Offset of field: ",
2982            stringify!(sqlite3_module),
2983            "::",
2984            stringify!(xRollbackTo)
2985        )
2986    );
2987    assert_eq!(
2988        unsafe { ::core::ptr::addr_of!((*ptr).xShadowName) as usize - ptr as usize },
2989        184usize,
2990        concat!(
2991            "Offset of field: ",
2992            stringify!(sqlite3_module),
2993            "::",
2994            stringify!(xShadowName)
2995        )
2996    );
2997    assert_eq!(
2998        unsafe { ::core::ptr::addr_of!((*ptr).xIntegrity) as usize - ptr as usize },
2999        192usize,
3000        concat!(
3001            "Offset of field: ",
3002            stringify!(sqlite3_module),
3003            "::",
3004            stringify!(xIntegrity)
3005        )
3006    );
3007}
3008#[repr(C)]
3009#[derive(Debug, Copy, Clone)]
3010pub struct sqlite3_index_info {
3011    pub nConstraint: ::core::ffi::c_int,
3012    pub aConstraint: *mut sqlite3_index_info_sqlite3_index_constraint,
3013    pub nOrderBy: ::core::ffi::c_int,
3014    pub aOrderBy: *mut sqlite3_index_info_sqlite3_index_orderby,
3015    pub aConstraintUsage: *mut sqlite3_index_info_sqlite3_index_constraint_usage,
3016    pub idxNum: ::core::ffi::c_int,
3017    pub idxStr: *mut ::core::ffi::c_char,
3018    pub needToFreeIdxStr: ::core::ffi::c_int,
3019    pub orderByConsumed: ::core::ffi::c_int,
3020    pub estimatedCost: f64,
3021    pub estimatedRows: sqlite3_int64,
3022    pub idxFlags: ::core::ffi::c_int,
3023    pub colUsed: sqlite3_uint64,
3024}
3025#[repr(C)]
3026#[derive(Debug, Copy, Clone)]
3027pub struct sqlite3_index_info_sqlite3_index_constraint {
3028    pub iColumn: ::core::ffi::c_int,
3029    pub op: ::core::ffi::c_uchar,
3030    pub usable: ::core::ffi::c_uchar,
3031    pub iTermOffset: ::core::ffi::c_int,
3032}
3033#[test]
3034fn bindgen_test_layout_sqlite3_index_info_sqlite3_index_constraint() {
3035    const UNINIT: ::core::mem::MaybeUninit<sqlite3_index_info_sqlite3_index_constraint> =
3036        ::core::mem::MaybeUninit::uninit();
3037    let ptr = UNINIT.as_ptr();
3038    assert_eq!(
3039        ::core::mem::size_of::<sqlite3_index_info_sqlite3_index_constraint>(),
3040        12usize,
3041        concat!(
3042            "Size of: ",
3043            stringify!(sqlite3_index_info_sqlite3_index_constraint)
3044        )
3045    );
3046    assert_eq!(
3047        ::core::mem::align_of::<sqlite3_index_info_sqlite3_index_constraint>(),
3048        4usize,
3049        concat!(
3050            "Alignment of ",
3051            stringify!(sqlite3_index_info_sqlite3_index_constraint)
3052        )
3053    );
3054    assert_eq!(
3055        unsafe { ::core::ptr::addr_of!((*ptr).iColumn) as usize - ptr as usize },
3056        0usize,
3057        concat!(
3058            "Offset of field: ",
3059            stringify!(sqlite3_index_info_sqlite3_index_constraint),
3060            "::",
3061            stringify!(iColumn)
3062        )
3063    );
3064    assert_eq!(
3065        unsafe { ::core::ptr::addr_of!((*ptr).op) as usize - ptr as usize },
3066        4usize,
3067        concat!(
3068            "Offset of field: ",
3069            stringify!(sqlite3_index_info_sqlite3_index_constraint),
3070            "::",
3071            stringify!(op)
3072        )
3073    );
3074    assert_eq!(
3075        unsafe { ::core::ptr::addr_of!((*ptr).usable) as usize - ptr as usize },
3076        5usize,
3077        concat!(
3078            "Offset of field: ",
3079            stringify!(sqlite3_index_info_sqlite3_index_constraint),
3080            "::",
3081            stringify!(usable)
3082        )
3083    );
3084    assert_eq!(
3085        unsafe { ::core::ptr::addr_of!((*ptr).iTermOffset) as usize - ptr as usize },
3086        8usize,
3087        concat!(
3088            "Offset of field: ",
3089            stringify!(sqlite3_index_info_sqlite3_index_constraint),
3090            "::",
3091            stringify!(iTermOffset)
3092        )
3093    );
3094}
3095#[repr(C)]
3096#[derive(Debug, Copy, Clone)]
3097pub struct sqlite3_index_info_sqlite3_index_orderby {
3098    pub iColumn: ::core::ffi::c_int,
3099    pub desc: ::core::ffi::c_uchar,
3100}
3101#[test]
3102fn bindgen_test_layout_sqlite3_index_info_sqlite3_index_orderby() {
3103    const UNINIT: ::core::mem::MaybeUninit<sqlite3_index_info_sqlite3_index_orderby> =
3104        ::core::mem::MaybeUninit::uninit();
3105    let ptr = UNINIT.as_ptr();
3106    assert_eq!(
3107        ::core::mem::size_of::<sqlite3_index_info_sqlite3_index_orderby>(),
3108        8usize,
3109        concat!(
3110            "Size of: ",
3111            stringify!(sqlite3_index_info_sqlite3_index_orderby)
3112        )
3113    );
3114    assert_eq!(
3115        ::core::mem::align_of::<sqlite3_index_info_sqlite3_index_orderby>(),
3116        4usize,
3117        concat!(
3118            "Alignment of ",
3119            stringify!(sqlite3_index_info_sqlite3_index_orderby)
3120        )
3121    );
3122    assert_eq!(
3123        unsafe { ::core::ptr::addr_of!((*ptr).iColumn) as usize - ptr as usize },
3124        0usize,
3125        concat!(
3126            "Offset of field: ",
3127            stringify!(sqlite3_index_info_sqlite3_index_orderby),
3128            "::",
3129            stringify!(iColumn)
3130        )
3131    );
3132    assert_eq!(
3133        unsafe { ::core::ptr::addr_of!((*ptr).desc) as usize - ptr as usize },
3134        4usize,
3135        concat!(
3136            "Offset of field: ",
3137            stringify!(sqlite3_index_info_sqlite3_index_orderby),
3138            "::",
3139            stringify!(desc)
3140        )
3141    );
3142}
3143#[repr(C)]
3144#[derive(Debug, Copy, Clone)]
3145pub struct sqlite3_index_info_sqlite3_index_constraint_usage {
3146    pub argvIndex: ::core::ffi::c_int,
3147    pub omit: ::core::ffi::c_uchar,
3148}
3149#[test]
3150fn bindgen_test_layout_sqlite3_index_info_sqlite3_index_constraint_usage() {
3151    const UNINIT: ::core::mem::MaybeUninit<sqlite3_index_info_sqlite3_index_constraint_usage> =
3152        ::core::mem::MaybeUninit::uninit();
3153    let ptr = UNINIT.as_ptr();
3154    assert_eq!(
3155        ::core::mem::size_of::<sqlite3_index_info_sqlite3_index_constraint_usage>(),
3156        8usize,
3157        concat!(
3158            "Size of: ",
3159            stringify!(sqlite3_index_info_sqlite3_index_constraint_usage)
3160        )
3161    );
3162    assert_eq!(
3163        ::core::mem::align_of::<sqlite3_index_info_sqlite3_index_constraint_usage>(),
3164        4usize,
3165        concat!(
3166            "Alignment of ",
3167            stringify!(sqlite3_index_info_sqlite3_index_constraint_usage)
3168        )
3169    );
3170    assert_eq!(
3171        unsafe { ::core::ptr::addr_of!((*ptr).argvIndex) as usize - ptr as usize },
3172        0usize,
3173        concat!(
3174            "Offset of field: ",
3175            stringify!(sqlite3_index_info_sqlite3_index_constraint_usage),
3176            "::",
3177            stringify!(argvIndex)
3178        )
3179    );
3180    assert_eq!(
3181        unsafe { ::core::ptr::addr_of!((*ptr).omit) as usize - ptr as usize },
3182        4usize,
3183        concat!(
3184            "Offset of field: ",
3185            stringify!(sqlite3_index_info_sqlite3_index_constraint_usage),
3186            "::",
3187            stringify!(omit)
3188        )
3189    );
3190}
3191#[test]
3192fn bindgen_test_layout_sqlite3_index_info() {
3193    const UNINIT: ::core::mem::MaybeUninit<sqlite3_index_info> = ::core::mem::MaybeUninit::uninit();
3194    let ptr = UNINIT.as_ptr();
3195    assert_eq!(
3196        ::core::mem::size_of::<sqlite3_index_info>(),
3197        96usize,
3198        concat!("Size of: ", stringify!(sqlite3_index_info))
3199    );
3200    assert_eq!(
3201        ::core::mem::align_of::<sqlite3_index_info>(),
3202        8usize,
3203        concat!("Alignment of ", stringify!(sqlite3_index_info))
3204    );
3205    assert_eq!(
3206        unsafe { ::core::ptr::addr_of!((*ptr).nConstraint) as usize - ptr as usize },
3207        0usize,
3208        concat!(
3209            "Offset of field: ",
3210            stringify!(sqlite3_index_info),
3211            "::",
3212            stringify!(nConstraint)
3213        )
3214    );
3215    assert_eq!(
3216        unsafe { ::core::ptr::addr_of!((*ptr).aConstraint) as usize - ptr as usize },
3217        8usize,
3218        concat!(
3219            "Offset of field: ",
3220            stringify!(sqlite3_index_info),
3221            "::",
3222            stringify!(aConstraint)
3223        )
3224    );
3225    assert_eq!(
3226        unsafe { ::core::ptr::addr_of!((*ptr).nOrderBy) as usize - ptr as usize },
3227        16usize,
3228        concat!(
3229            "Offset of field: ",
3230            stringify!(sqlite3_index_info),
3231            "::",
3232            stringify!(nOrderBy)
3233        )
3234    );
3235    assert_eq!(
3236        unsafe { ::core::ptr::addr_of!((*ptr).aOrderBy) as usize - ptr as usize },
3237        24usize,
3238        concat!(
3239            "Offset of field: ",
3240            stringify!(sqlite3_index_info),
3241            "::",
3242            stringify!(aOrderBy)
3243        )
3244    );
3245    assert_eq!(
3246        unsafe { ::core::ptr::addr_of!((*ptr).aConstraintUsage) as usize - ptr as usize },
3247        32usize,
3248        concat!(
3249            "Offset of field: ",
3250            stringify!(sqlite3_index_info),
3251            "::",
3252            stringify!(aConstraintUsage)
3253        )
3254    );
3255    assert_eq!(
3256        unsafe { ::core::ptr::addr_of!((*ptr).idxNum) as usize - ptr as usize },
3257        40usize,
3258        concat!(
3259            "Offset of field: ",
3260            stringify!(sqlite3_index_info),
3261            "::",
3262            stringify!(idxNum)
3263        )
3264    );
3265    assert_eq!(
3266        unsafe { ::core::ptr::addr_of!((*ptr).idxStr) as usize - ptr as usize },
3267        48usize,
3268        concat!(
3269            "Offset of field: ",
3270            stringify!(sqlite3_index_info),
3271            "::",
3272            stringify!(idxStr)
3273        )
3274    );
3275    assert_eq!(
3276        unsafe { ::core::ptr::addr_of!((*ptr).needToFreeIdxStr) as usize - ptr as usize },
3277        56usize,
3278        concat!(
3279            "Offset of field: ",
3280            stringify!(sqlite3_index_info),
3281            "::",
3282            stringify!(needToFreeIdxStr)
3283        )
3284    );
3285    assert_eq!(
3286        unsafe { ::core::ptr::addr_of!((*ptr).orderByConsumed) as usize - ptr as usize },
3287        60usize,
3288        concat!(
3289            "Offset of field: ",
3290            stringify!(sqlite3_index_info),
3291            "::",
3292            stringify!(orderByConsumed)
3293        )
3294    );
3295    assert_eq!(
3296        unsafe { ::core::ptr::addr_of!((*ptr).estimatedCost) as usize - ptr as usize },
3297        64usize,
3298        concat!(
3299            "Offset of field: ",
3300            stringify!(sqlite3_index_info),
3301            "::",
3302            stringify!(estimatedCost)
3303        )
3304    );
3305    assert_eq!(
3306        unsafe { ::core::ptr::addr_of!((*ptr).estimatedRows) as usize - ptr as usize },
3307        72usize,
3308        concat!(
3309            "Offset of field: ",
3310            stringify!(sqlite3_index_info),
3311            "::",
3312            stringify!(estimatedRows)
3313        )
3314    );
3315    assert_eq!(
3316        unsafe { ::core::ptr::addr_of!((*ptr).idxFlags) as usize - ptr as usize },
3317        80usize,
3318        concat!(
3319            "Offset of field: ",
3320            stringify!(sqlite3_index_info),
3321            "::",
3322            stringify!(idxFlags)
3323        )
3324    );
3325    assert_eq!(
3326        unsafe { ::core::ptr::addr_of!((*ptr).colUsed) as usize - ptr as usize },
3327        88usize,
3328        concat!(
3329            "Offset of field: ",
3330            stringify!(sqlite3_index_info),
3331            "::",
3332            stringify!(colUsed)
3333        )
3334    );
3335}
3336extern "C" {
3337    pub fn sqlite3_create_module(
3338        db: *mut sqlite3,
3339        zName: *const ::core::ffi::c_char,
3340        p: *const sqlite3_module,
3341        pClientData: *mut ::core::ffi::c_void,
3342    ) -> ::core::ffi::c_int;
3343}
3344extern "C" {
3345    pub fn sqlite3_create_module_v2(
3346        db: *mut sqlite3,
3347        zName: *const ::core::ffi::c_char,
3348        p: *const sqlite3_module,
3349        pClientData: *mut ::core::ffi::c_void,
3350        xDestroy: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
3351    ) -> ::core::ffi::c_int;
3352}
3353extern "C" {
3354    pub fn sqlite3_drop_modules(
3355        db: *mut sqlite3,
3356        azKeep: *mut *const ::core::ffi::c_char,
3357    ) -> ::core::ffi::c_int;
3358}
3359#[repr(C)]
3360#[derive(Debug, Copy, Clone)]
3361pub struct sqlite3_vtab {
3362    pub pModule: *const sqlite3_module,
3363    pub nRef: ::core::ffi::c_int,
3364    pub zErrMsg: *mut ::core::ffi::c_char,
3365}
3366#[test]
3367fn bindgen_test_layout_sqlite3_vtab() {
3368    const UNINIT: ::core::mem::MaybeUninit<sqlite3_vtab> = ::core::mem::MaybeUninit::uninit();
3369    let ptr = UNINIT.as_ptr();
3370    assert_eq!(
3371        ::core::mem::size_of::<sqlite3_vtab>(),
3372        24usize,
3373        concat!("Size of: ", stringify!(sqlite3_vtab))
3374    );
3375    assert_eq!(
3376        ::core::mem::align_of::<sqlite3_vtab>(),
3377        8usize,
3378        concat!("Alignment of ", stringify!(sqlite3_vtab))
3379    );
3380    assert_eq!(
3381        unsafe { ::core::ptr::addr_of!((*ptr).pModule) as usize - ptr as usize },
3382        0usize,
3383        concat!(
3384            "Offset of field: ",
3385            stringify!(sqlite3_vtab),
3386            "::",
3387            stringify!(pModule)
3388        )
3389    );
3390    assert_eq!(
3391        unsafe { ::core::ptr::addr_of!((*ptr).nRef) as usize - ptr as usize },
3392        8usize,
3393        concat!(
3394            "Offset of field: ",
3395            stringify!(sqlite3_vtab),
3396            "::",
3397            stringify!(nRef)
3398        )
3399    );
3400    assert_eq!(
3401        unsafe { ::core::ptr::addr_of!((*ptr).zErrMsg) as usize - ptr as usize },
3402        16usize,
3403        concat!(
3404            "Offset of field: ",
3405            stringify!(sqlite3_vtab),
3406            "::",
3407            stringify!(zErrMsg)
3408        )
3409    );
3410}
3411#[repr(C)]
3412#[derive(Debug, Copy, Clone)]
3413pub struct sqlite3_vtab_cursor {
3414    pub pVtab: *mut sqlite3_vtab,
3415}
3416#[test]
3417fn bindgen_test_layout_sqlite3_vtab_cursor() {
3418    const UNINIT: ::core::mem::MaybeUninit<sqlite3_vtab_cursor> =
3419        ::core::mem::MaybeUninit::uninit();
3420    let ptr = UNINIT.as_ptr();
3421    assert_eq!(
3422        ::core::mem::size_of::<sqlite3_vtab_cursor>(),
3423        8usize,
3424        concat!("Size of: ", stringify!(sqlite3_vtab_cursor))
3425    );
3426    assert_eq!(
3427        ::core::mem::align_of::<sqlite3_vtab_cursor>(),
3428        8usize,
3429        concat!("Alignment of ", stringify!(sqlite3_vtab_cursor))
3430    );
3431    assert_eq!(
3432        unsafe { ::core::ptr::addr_of!((*ptr).pVtab) as usize - ptr as usize },
3433        0usize,
3434        concat!(
3435            "Offset of field: ",
3436            stringify!(sqlite3_vtab_cursor),
3437            "::",
3438            stringify!(pVtab)
3439        )
3440    );
3441}
3442extern "C" {
3443    pub fn sqlite3_declare_vtab(
3444        arg1: *mut sqlite3,
3445        zSQL: *const ::core::ffi::c_char,
3446    ) -> ::core::ffi::c_int;
3447}
3448extern "C" {
3449    pub fn sqlite3_overload_function(
3450        arg1: *mut sqlite3,
3451        zFuncName: *const ::core::ffi::c_char,
3452        nArg: ::core::ffi::c_int,
3453    ) -> ::core::ffi::c_int;
3454}
3455#[repr(C)]
3456#[derive(Debug, Copy, Clone)]
3457pub struct sqlite3_blob {
3458    _unused: [u8; 0],
3459}
3460extern "C" {
3461    pub fn sqlite3_blob_open(
3462        arg1: *mut sqlite3,
3463        zDb: *const ::core::ffi::c_char,
3464        zTable: *const ::core::ffi::c_char,
3465        zColumn: *const ::core::ffi::c_char,
3466        iRow: sqlite3_int64,
3467        flags: ::core::ffi::c_int,
3468        ppBlob: *mut *mut sqlite3_blob,
3469    ) -> ::core::ffi::c_int;
3470}
3471extern "C" {
3472    pub fn sqlite3_blob_reopen(arg1: *mut sqlite3_blob, arg2: sqlite3_int64) -> ::core::ffi::c_int;
3473}
3474extern "C" {
3475    pub fn sqlite3_blob_close(arg1: *mut sqlite3_blob) -> ::core::ffi::c_int;
3476}
3477extern "C" {
3478    pub fn sqlite3_blob_bytes(arg1: *mut sqlite3_blob) -> ::core::ffi::c_int;
3479}
3480extern "C" {
3481    pub fn sqlite3_blob_read(
3482        arg1: *mut sqlite3_blob,
3483        Z: *mut ::core::ffi::c_void,
3484        N: ::core::ffi::c_int,
3485        iOffset: ::core::ffi::c_int,
3486    ) -> ::core::ffi::c_int;
3487}
3488extern "C" {
3489    pub fn sqlite3_blob_write(
3490        arg1: *mut sqlite3_blob,
3491        z: *const ::core::ffi::c_void,
3492        n: ::core::ffi::c_int,
3493        iOffset: ::core::ffi::c_int,
3494    ) -> ::core::ffi::c_int;
3495}
3496extern "C" {
3497    pub fn sqlite3_vfs_find(zVfsName: *const ::core::ffi::c_char) -> *mut sqlite3_vfs;
3498}
3499extern "C" {
3500    pub fn sqlite3_vfs_register(
3501        arg1: *mut sqlite3_vfs,
3502        makeDflt: ::core::ffi::c_int,
3503    ) -> ::core::ffi::c_int;
3504}
3505extern "C" {
3506    pub fn sqlite3_vfs_unregister(arg1: *mut sqlite3_vfs) -> ::core::ffi::c_int;
3507}
3508extern "C" {
3509    pub fn sqlite3_mutex_alloc(arg1: ::core::ffi::c_int) -> *mut sqlite3_mutex;
3510}
3511extern "C" {
3512    pub fn sqlite3_mutex_free(arg1: *mut sqlite3_mutex);
3513}
3514extern "C" {
3515    pub fn sqlite3_mutex_enter(arg1: *mut sqlite3_mutex);
3516}
3517extern "C" {
3518    pub fn sqlite3_mutex_try(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int;
3519}
3520extern "C" {
3521    pub fn sqlite3_mutex_leave(arg1: *mut sqlite3_mutex);
3522}
3523#[repr(C)]
3524#[derive(Debug, Copy, Clone)]
3525pub struct sqlite3_mutex_methods {
3526    pub xMutexInit: ::core::option::Option<unsafe extern "C" fn() -> ::core::ffi::c_int>,
3527    pub xMutexEnd: ::core::option::Option<unsafe extern "C" fn() -> ::core::ffi::c_int>,
3528    pub xMutexAlloc: ::core::option::Option<
3529        unsafe extern "C" fn(arg1: ::core::ffi::c_int) -> *mut sqlite3_mutex,
3530    >,
3531    pub xMutexFree: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_mutex)>,
3532    pub xMutexEnter: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_mutex)>,
3533    pub xMutexTry: ::core::option::Option<
3534        unsafe extern "C" fn(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int,
3535    >,
3536    pub xMutexLeave: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_mutex)>,
3537    pub xMutexHeld: ::core::option::Option<
3538        unsafe extern "C" fn(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int,
3539    >,
3540    pub xMutexNotheld: ::core::option::Option<
3541        unsafe extern "C" fn(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int,
3542    >,
3543}
3544#[test]
3545fn bindgen_test_layout_sqlite3_mutex_methods() {
3546    const UNINIT: ::core::mem::MaybeUninit<sqlite3_mutex_methods> =
3547        ::core::mem::MaybeUninit::uninit();
3548    let ptr = UNINIT.as_ptr();
3549    assert_eq!(
3550        ::core::mem::size_of::<sqlite3_mutex_methods>(),
3551        72usize,
3552        concat!("Size of: ", stringify!(sqlite3_mutex_methods))
3553    );
3554    assert_eq!(
3555        ::core::mem::align_of::<sqlite3_mutex_methods>(),
3556        8usize,
3557        concat!("Alignment of ", stringify!(sqlite3_mutex_methods))
3558    );
3559    assert_eq!(
3560        unsafe { ::core::ptr::addr_of!((*ptr).xMutexInit) as usize - ptr as usize },
3561        0usize,
3562        concat!(
3563            "Offset of field: ",
3564            stringify!(sqlite3_mutex_methods),
3565            "::",
3566            stringify!(xMutexInit)
3567        )
3568    );
3569    assert_eq!(
3570        unsafe { ::core::ptr::addr_of!((*ptr).xMutexEnd) as usize - ptr as usize },
3571        8usize,
3572        concat!(
3573            "Offset of field: ",
3574            stringify!(sqlite3_mutex_methods),
3575            "::",
3576            stringify!(xMutexEnd)
3577        )
3578    );
3579    assert_eq!(
3580        unsafe { ::core::ptr::addr_of!((*ptr).xMutexAlloc) as usize - ptr as usize },
3581        16usize,
3582        concat!(
3583            "Offset of field: ",
3584            stringify!(sqlite3_mutex_methods),
3585            "::",
3586            stringify!(xMutexAlloc)
3587        )
3588    );
3589    assert_eq!(
3590        unsafe { ::core::ptr::addr_of!((*ptr).xMutexFree) as usize - ptr as usize },
3591        24usize,
3592        concat!(
3593            "Offset of field: ",
3594            stringify!(sqlite3_mutex_methods),
3595            "::",
3596            stringify!(xMutexFree)
3597        )
3598    );
3599    assert_eq!(
3600        unsafe { ::core::ptr::addr_of!((*ptr).xMutexEnter) as usize - ptr as usize },
3601        32usize,
3602        concat!(
3603            "Offset of field: ",
3604            stringify!(sqlite3_mutex_methods),
3605            "::",
3606            stringify!(xMutexEnter)
3607        )
3608    );
3609    assert_eq!(
3610        unsafe { ::core::ptr::addr_of!((*ptr).xMutexTry) as usize - ptr as usize },
3611        40usize,
3612        concat!(
3613            "Offset of field: ",
3614            stringify!(sqlite3_mutex_methods),
3615            "::",
3616            stringify!(xMutexTry)
3617        )
3618    );
3619    assert_eq!(
3620        unsafe { ::core::ptr::addr_of!((*ptr).xMutexLeave) as usize - ptr as usize },
3621        48usize,
3622        concat!(
3623            "Offset of field: ",
3624            stringify!(sqlite3_mutex_methods),
3625            "::",
3626            stringify!(xMutexLeave)
3627        )
3628    );
3629    assert_eq!(
3630        unsafe { ::core::ptr::addr_of!((*ptr).xMutexHeld) as usize - ptr as usize },
3631        56usize,
3632        concat!(
3633            "Offset of field: ",
3634            stringify!(sqlite3_mutex_methods),
3635            "::",
3636            stringify!(xMutexHeld)
3637        )
3638    );
3639    assert_eq!(
3640        unsafe { ::core::ptr::addr_of!((*ptr).xMutexNotheld) as usize - ptr as usize },
3641        64usize,
3642        concat!(
3643            "Offset of field: ",
3644            stringify!(sqlite3_mutex_methods),
3645            "::",
3646            stringify!(xMutexNotheld)
3647        )
3648    );
3649}
3650extern "C" {
3651    pub fn sqlite3_mutex_held(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int;
3652}
3653extern "C" {
3654    pub fn sqlite3_mutex_notheld(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int;
3655}
3656extern "C" {
3657    pub fn sqlite3_db_mutex(arg1: *mut sqlite3) -> *mut sqlite3_mutex;
3658}
3659extern "C" {
3660    pub fn sqlite3_file_control(
3661        arg1: *mut sqlite3,
3662        zDbName: *const ::core::ffi::c_char,
3663        op: ::core::ffi::c_int,
3664        arg2: *mut ::core::ffi::c_void,
3665    ) -> ::core::ffi::c_int;
3666}
3667extern "C" {
3668    pub fn sqlite3_test_control(op: ::core::ffi::c_int, ...) -> ::core::ffi::c_int;
3669}
3670extern "C" {
3671    pub fn sqlite3_keyword_count() -> ::core::ffi::c_int;
3672}
3673extern "C" {
3674    pub fn sqlite3_keyword_name(
3675        arg1: ::core::ffi::c_int,
3676        arg2: *mut *const ::core::ffi::c_char,
3677        arg3: *mut ::core::ffi::c_int,
3678    ) -> ::core::ffi::c_int;
3679}
3680extern "C" {
3681    pub fn sqlite3_keyword_check(
3682        arg1: *const ::core::ffi::c_char,
3683        arg2: ::core::ffi::c_int,
3684    ) -> ::core::ffi::c_int;
3685}
3686#[repr(C)]
3687#[derive(Debug, Copy, Clone)]
3688pub struct sqlite3_str {
3689    _unused: [u8; 0],
3690}
3691extern "C" {
3692    pub fn sqlite3_str_new(arg1: *mut sqlite3) -> *mut sqlite3_str;
3693}
3694extern "C" {
3695    pub fn sqlite3_str_finish(arg1: *mut sqlite3_str) -> *mut ::core::ffi::c_char;
3696}
3697extern "C" {
3698    pub fn sqlite3_str_appendf(arg1: *mut sqlite3_str, zFormat: *const ::core::ffi::c_char, ...);
3699}
3700extern "C" {
3701    pub fn sqlite3_str_vappendf(
3702        arg1: *mut sqlite3_str,
3703        zFormat: *const ::core::ffi::c_char,
3704        arg2: *mut __va_list_tag,
3705    );
3706}
3707extern "C" {
3708    pub fn sqlite3_str_append(
3709        arg1: *mut sqlite3_str,
3710        zIn: *const ::core::ffi::c_char,
3711        N: ::core::ffi::c_int,
3712    );
3713}
3714extern "C" {
3715    pub fn sqlite3_str_appendall(arg1: *mut sqlite3_str, zIn: *const ::core::ffi::c_char);
3716}
3717extern "C" {
3718    pub fn sqlite3_str_appendchar(
3719        arg1: *mut sqlite3_str,
3720        N: ::core::ffi::c_int,
3721        C: ::core::ffi::c_char,
3722    );
3723}
3724extern "C" {
3725    pub fn sqlite3_str_reset(arg1: *mut sqlite3_str);
3726}
3727extern "C" {
3728    pub fn sqlite3_str_errcode(arg1: *mut sqlite3_str) -> ::core::ffi::c_int;
3729}
3730extern "C" {
3731    pub fn sqlite3_str_length(arg1: *mut sqlite3_str) -> ::core::ffi::c_int;
3732}
3733extern "C" {
3734    pub fn sqlite3_str_value(arg1: *mut sqlite3_str) -> *mut ::core::ffi::c_char;
3735}
3736extern "C" {
3737    pub fn sqlite3_status(
3738        op: ::core::ffi::c_int,
3739        pCurrent: *mut ::core::ffi::c_int,
3740        pHighwater: *mut ::core::ffi::c_int,
3741        resetFlag: ::core::ffi::c_int,
3742    ) -> ::core::ffi::c_int;
3743}
3744extern "C" {
3745    pub fn sqlite3_status64(
3746        op: ::core::ffi::c_int,
3747        pCurrent: *mut sqlite3_int64,
3748        pHighwater: *mut sqlite3_int64,
3749        resetFlag: ::core::ffi::c_int,
3750    ) -> ::core::ffi::c_int;
3751}
3752extern "C" {
3753    pub fn sqlite3_db_status(
3754        arg1: *mut sqlite3,
3755        op: ::core::ffi::c_int,
3756        pCur: *mut ::core::ffi::c_int,
3757        pHiwtr: *mut ::core::ffi::c_int,
3758        resetFlg: ::core::ffi::c_int,
3759    ) -> ::core::ffi::c_int;
3760}
3761extern "C" {
3762    pub fn sqlite3_stmt_status(
3763        arg1: *mut sqlite3_stmt,
3764        op: ::core::ffi::c_int,
3765        resetFlg: ::core::ffi::c_int,
3766    ) -> ::core::ffi::c_int;
3767}
3768#[repr(C)]
3769#[derive(Debug, Copy, Clone)]
3770pub struct sqlite3_pcache {
3771    _unused: [u8; 0],
3772}
3773#[repr(C)]
3774#[derive(Debug, Copy, Clone)]
3775pub struct sqlite3_pcache_page {
3776    pub pBuf: *mut ::core::ffi::c_void,
3777    pub pExtra: *mut ::core::ffi::c_void,
3778}
3779#[test]
3780fn bindgen_test_layout_sqlite3_pcache_page() {
3781    const UNINIT: ::core::mem::MaybeUninit<sqlite3_pcache_page> =
3782        ::core::mem::MaybeUninit::uninit();
3783    let ptr = UNINIT.as_ptr();
3784    assert_eq!(
3785        ::core::mem::size_of::<sqlite3_pcache_page>(),
3786        16usize,
3787        concat!("Size of: ", stringify!(sqlite3_pcache_page))
3788    );
3789    assert_eq!(
3790        ::core::mem::align_of::<sqlite3_pcache_page>(),
3791        8usize,
3792        concat!("Alignment of ", stringify!(sqlite3_pcache_page))
3793    );
3794    assert_eq!(
3795        unsafe { ::core::ptr::addr_of!((*ptr).pBuf) as usize - ptr as usize },
3796        0usize,
3797        concat!(
3798            "Offset of field: ",
3799            stringify!(sqlite3_pcache_page),
3800            "::",
3801            stringify!(pBuf)
3802        )
3803    );
3804    assert_eq!(
3805        unsafe { ::core::ptr::addr_of!((*ptr).pExtra) as usize - ptr as usize },
3806        8usize,
3807        concat!(
3808            "Offset of field: ",
3809            stringify!(sqlite3_pcache_page),
3810            "::",
3811            stringify!(pExtra)
3812        )
3813    );
3814}
3815#[repr(C)]
3816#[derive(Debug, Copy, Clone)]
3817pub struct sqlite3_pcache_methods2 {
3818    pub iVersion: ::core::ffi::c_int,
3819    pub pArg: *mut ::core::ffi::c_void,
3820    pub xInit: ::core::option::Option<
3821        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
3822    >,
3823    pub xShutdown: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
3824    pub xCreate: ::core::option::Option<
3825        unsafe extern "C" fn(
3826            szPage: ::core::ffi::c_int,
3827            szExtra: ::core::ffi::c_int,
3828            bPurgeable: ::core::ffi::c_int,
3829        ) -> *mut sqlite3_pcache,
3830    >,
3831    pub xCachesize: ::core::option::Option<
3832        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, nCachesize: ::core::ffi::c_int),
3833    >,
3834    pub xPagecount: ::core::option::Option<
3835        unsafe extern "C" fn(arg1: *mut sqlite3_pcache) -> ::core::ffi::c_int,
3836    >,
3837    pub xFetch: ::core::option::Option<
3838        unsafe extern "C" fn(
3839            arg1: *mut sqlite3_pcache,
3840            key: ::core::ffi::c_uint,
3841            createFlag: ::core::ffi::c_int,
3842        ) -> *mut sqlite3_pcache_page,
3843    >,
3844    pub xUnpin: ::core::option::Option<
3845        unsafe extern "C" fn(
3846            arg1: *mut sqlite3_pcache,
3847            arg2: *mut sqlite3_pcache_page,
3848            discard: ::core::ffi::c_int,
3849        ),
3850    >,
3851    pub xRekey: ::core::option::Option<
3852        unsafe extern "C" fn(
3853            arg1: *mut sqlite3_pcache,
3854            arg2: *mut sqlite3_pcache_page,
3855            oldKey: ::core::ffi::c_uint,
3856            newKey: ::core::ffi::c_uint,
3857        ),
3858    >,
3859    pub xTruncate: ::core::option::Option<
3860        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, iLimit: ::core::ffi::c_uint),
3861    >,
3862    pub xDestroy: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_pcache)>,
3863    pub xShrink: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_pcache)>,
3864}
3865#[test]
3866fn bindgen_test_layout_sqlite3_pcache_methods2() {
3867    const UNINIT: ::core::mem::MaybeUninit<sqlite3_pcache_methods2> =
3868        ::core::mem::MaybeUninit::uninit();
3869    let ptr = UNINIT.as_ptr();
3870    assert_eq!(
3871        ::core::mem::size_of::<sqlite3_pcache_methods2>(),
3872        104usize,
3873        concat!("Size of: ", stringify!(sqlite3_pcache_methods2))
3874    );
3875    assert_eq!(
3876        ::core::mem::align_of::<sqlite3_pcache_methods2>(),
3877        8usize,
3878        concat!("Alignment of ", stringify!(sqlite3_pcache_methods2))
3879    );
3880    assert_eq!(
3881        unsafe { ::core::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
3882        0usize,
3883        concat!(
3884            "Offset of field: ",
3885            stringify!(sqlite3_pcache_methods2),
3886            "::",
3887            stringify!(iVersion)
3888        )
3889    );
3890    assert_eq!(
3891        unsafe { ::core::ptr::addr_of!((*ptr).pArg) as usize - ptr as usize },
3892        8usize,
3893        concat!(
3894            "Offset of field: ",
3895            stringify!(sqlite3_pcache_methods2),
3896            "::",
3897            stringify!(pArg)
3898        )
3899    );
3900    assert_eq!(
3901        unsafe { ::core::ptr::addr_of!((*ptr).xInit) as usize - ptr as usize },
3902        16usize,
3903        concat!(
3904            "Offset of field: ",
3905            stringify!(sqlite3_pcache_methods2),
3906            "::",
3907            stringify!(xInit)
3908        )
3909    );
3910    assert_eq!(
3911        unsafe { ::core::ptr::addr_of!((*ptr).xShutdown) as usize - ptr as usize },
3912        24usize,
3913        concat!(
3914            "Offset of field: ",
3915            stringify!(sqlite3_pcache_methods2),
3916            "::",
3917            stringify!(xShutdown)
3918        )
3919    );
3920    assert_eq!(
3921        unsafe { ::core::ptr::addr_of!((*ptr).xCreate) as usize - ptr as usize },
3922        32usize,
3923        concat!(
3924            "Offset of field: ",
3925            stringify!(sqlite3_pcache_methods2),
3926            "::",
3927            stringify!(xCreate)
3928        )
3929    );
3930    assert_eq!(
3931        unsafe { ::core::ptr::addr_of!((*ptr).xCachesize) as usize - ptr as usize },
3932        40usize,
3933        concat!(
3934            "Offset of field: ",
3935            stringify!(sqlite3_pcache_methods2),
3936            "::",
3937            stringify!(xCachesize)
3938        )
3939    );
3940    assert_eq!(
3941        unsafe { ::core::ptr::addr_of!((*ptr).xPagecount) as usize - ptr as usize },
3942        48usize,
3943        concat!(
3944            "Offset of field: ",
3945            stringify!(sqlite3_pcache_methods2),
3946            "::",
3947            stringify!(xPagecount)
3948        )
3949    );
3950    assert_eq!(
3951        unsafe { ::core::ptr::addr_of!((*ptr).xFetch) as usize - ptr as usize },
3952        56usize,
3953        concat!(
3954            "Offset of field: ",
3955            stringify!(sqlite3_pcache_methods2),
3956            "::",
3957            stringify!(xFetch)
3958        )
3959    );
3960    assert_eq!(
3961        unsafe { ::core::ptr::addr_of!((*ptr).xUnpin) as usize - ptr as usize },
3962        64usize,
3963        concat!(
3964            "Offset of field: ",
3965            stringify!(sqlite3_pcache_methods2),
3966            "::",
3967            stringify!(xUnpin)
3968        )
3969    );
3970    assert_eq!(
3971        unsafe { ::core::ptr::addr_of!((*ptr).xRekey) as usize - ptr as usize },
3972        72usize,
3973        concat!(
3974            "Offset of field: ",
3975            stringify!(sqlite3_pcache_methods2),
3976            "::",
3977            stringify!(xRekey)
3978        )
3979    );
3980    assert_eq!(
3981        unsafe { ::core::ptr::addr_of!((*ptr).xTruncate) as usize - ptr as usize },
3982        80usize,
3983        concat!(
3984            "Offset of field: ",
3985            stringify!(sqlite3_pcache_methods2),
3986            "::",
3987            stringify!(xTruncate)
3988        )
3989    );
3990    assert_eq!(
3991        unsafe { ::core::ptr::addr_of!((*ptr).xDestroy) as usize - ptr as usize },
3992        88usize,
3993        concat!(
3994            "Offset of field: ",
3995            stringify!(sqlite3_pcache_methods2),
3996            "::",
3997            stringify!(xDestroy)
3998        )
3999    );
4000    assert_eq!(
4001        unsafe { ::core::ptr::addr_of!((*ptr).xShrink) as usize - ptr as usize },
4002        96usize,
4003        concat!(
4004            "Offset of field: ",
4005            stringify!(sqlite3_pcache_methods2),
4006            "::",
4007            stringify!(xShrink)
4008        )
4009    );
4010}
4011#[repr(C)]
4012#[derive(Debug, Copy, Clone)]
4013pub struct sqlite3_pcache_methods {
4014    pub pArg: *mut ::core::ffi::c_void,
4015    pub xInit: ::core::option::Option<
4016        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
4017    >,
4018    pub xShutdown: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
4019    pub xCreate: ::core::option::Option<
4020        unsafe extern "C" fn(
4021            szPage: ::core::ffi::c_int,
4022            bPurgeable: ::core::ffi::c_int,
4023        ) -> *mut sqlite3_pcache,
4024    >,
4025    pub xCachesize: ::core::option::Option<
4026        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, nCachesize: ::core::ffi::c_int),
4027    >,
4028    pub xPagecount: ::core::option::Option<
4029        unsafe extern "C" fn(arg1: *mut sqlite3_pcache) -> ::core::ffi::c_int,
4030    >,
4031    pub xFetch: ::core::option::Option<
4032        unsafe extern "C" fn(
4033            arg1: *mut sqlite3_pcache,
4034            key: ::core::ffi::c_uint,
4035            createFlag: ::core::ffi::c_int,
4036        ) -> *mut ::core::ffi::c_void,
4037    >,
4038    pub xUnpin: ::core::option::Option<
4039        unsafe extern "C" fn(
4040            arg1: *mut sqlite3_pcache,
4041            arg2: *mut ::core::ffi::c_void,
4042            discard: ::core::ffi::c_int,
4043        ),
4044    >,
4045    pub xRekey: ::core::option::Option<
4046        unsafe extern "C" fn(
4047            arg1: *mut sqlite3_pcache,
4048            arg2: *mut ::core::ffi::c_void,
4049            oldKey: ::core::ffi::c_uint,
4050            newKey: ::core::ffi::c_uint,
4051        ),
4052    >,
4053    pub xTruncate: ::core::option::Option<
4054        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, iLimit: ::core::ffi::c_uint),
4055    >,
4056    pub xDestroy: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_pcache)>,
4057}
4058#[test]
4059fn bindgen_test_layout_sqlite3_pcache_methods() {
4060    const UNINIT: ::core::mem::MaybeUninit<sqlite3_pcache_methods> =
4061        ::core::mem::MaybeUninit::uninit();
4062    let ptr = UNINIT.as_ptr();
4063    assert_eq!(
4064        ::core::mem::size_of::<sqlite3_pcache_methods>(),
4065        88usize,
4066        concat!("Size of: ", stringify!(sqlite3_pcache_methods))
4067    );
4068    assert_eq!(
4069        ::core::mem::align_of::<sqlite3_pcache_methods>(),
4070        8usize,
4071        concat!("Alignment of ", stringify!(sqlite3_pcache_methods))
4072    );
4073    assert_eq!(
4074        unsafe { ::core::ptr::addr_of!((*ptr).pArg) as usize - ptr as usize },
4075        0usize,
4076        concat!(
4077            "Offset of field: ",
4078            stringify!(sqlite3_pcache_methods),
4079            "::",
4080            stringify!(pArg)
4081        )
4082    );
4083    assert_eq!(
4084        unsafe { ::core::ptr::addr_of!((*ptr).xInit) as usize - ptr as usize },
4085        8usize,
4086        concat!(
4087            "Offset of field: ",
4088            stringify!(sqlite3_pcache_methods),
4089            "::",
4090            stringify!(xInit)
4091        )
4092    );
4093    assert_eq!(
4094        unsafe { ::core::ptr::addr_of!((*ptr).xShutdown) as usize - ptr as usize },
4095        16usize,
4096        concat!(
4097            "Offset of field: ",
4098            stringify!(sqlite3_pcache_methods),
4099            "::",
4100            stringify!(xShutdown)
4101        )
4102    );
4103    assert_eq!(
4104        unsafe { ::core::ptr::addr_of!((*ptr).xCreate) as usize - ptr as usize },
4105        24usize,
4106        concat!(
4107            "Offset of field: ",
4108            stringify!(sqlite3_pcache_methods),
4109            "::",
4110            stringify!(xCreate)
4111        )
4112    );
4113    assert_eq!(
4114        unsafe { ::core::ptr::addr_of!((*ptr).xCachesize) as usize - ptr as usize },
4115        32usize,
4116        concat!(
4117            "Offset of field: ",
4118            stringify!(sqlite3_pcache_methods),
4119            "::",
4120            stringify!(xCachesize)
4121        )
4122    );
4123    assert_eq!(
4124        unsafe { ::core::ptr::addr_of!((*ptr).xPagecount) as usize - ptr as usize },
4125        40usize,
4126        concat!(
4127            "Offset of field: ",
4128            stringify!(sqlite3_pcache_methods),
4129            "::",
4130            stringify!(xPagecount)
4131        )
4132    );
4133    assert_eq!(
4134        unsafe { ::core::ptr::addr_of!((*ptr).xFetch) as usize - ptr as usize },
4135        48usize,
4136        concat!(
4137            "Offset of field: ",
4138            stringify!(sqlite3_pcache_methods),
4139            "::",
4140            stringify!(xFetch)
4141        )
4142    );
4143    assert_eq!(
4144        unsafe { ::core::ptr::addr_of!((*ptr).xUnpin) as usize - ptr as usize },
4145        56usize,
4146        concat!(
4147            "Offset of field: ",
4148            stringify!(sqlite3_pcache_methods),
4149            "::",
4150            stringify!(xUnpin)
4151        )
4152    );
4153    assert_eq!(
4154        unsafe { ::core::ptr::addr_of!((*ptr).xRekey) as usize - ptr as usize },
4155        64usize,
4156        concat!(
4157            "Offset of field: ",
4158            stringify!(sqlite3_pcache_methods),
4159            "::",
4160            stringify!(xRekey)
4161        )
4162    );
4163    assert_eq!(
4164        unsafe { ::core::ptr::addr_of!((*ptr).xTruncate) as usize - ptr as usize },
4165        72usize,
4166        concat!(
4167            "Offset of field: ",
4168            stringify!(sqlite3_pcache_methods),
4169            "::",
4170            stringify!(xTruncate)
4171        )
4172    );
4173    assert_eq!(
4174        unsafe { ::core::ptr::addr_of!((*ptr).xDestroy) as usize - ptr as usize },
4175        80usize,
4176        concat!(
4177            "Offset of field: ",
4178            stringify!(sqlite3_pcache_methods),
4179            "::",
4180            stringify!(xDestroy)
4181        )
4182    );
4183}
4184#[repr(C)]
4185#[derive(Debug, Copy, Clone)]
4186pub struct sqlite3_backup {
4187    _unused: [u8; 0],
4188}
4189extern "C" {
4190    pub fn sqlite3_backup_init(
4191        pDest: *mut sqlite3,
4192        zDestName: *const ::core::ffi::c_char,
4193        pSource: *mut sqlite3,
4194        zSourceName: *const ::core::ffi::c_char,
4195    ) -> *mut sqlite3_backup;
4196}
4197extern "C" {
4198    pub fn sqlite3_backup_step(
4199        p: *mut sqlite3_backup,
4200        nPage: ::core::ffi::c_int,
4201    ) -> ::core::ffi::c_int;
4202}
4203extern "C" {
4204    pub fn sqlite3_backup_finish(p: *mut sqlite3_backup) -> ::core::ffi::c_int;
4205}
4206extern "C" {
4207    pub fn sqlite3_backup_remaining(p: *mut sqlite3_backup) -> ::core::ffi::c_int;
4208}
4209extern "C" {
4210    pub fn sqlite3_backup_pagecount(p: *mut sqlite3_backup) -> ::core::ffi::c_int;
4211}
4212extern "C" {
4213    pub fn sqlite3_unlock_notify(
4214        pBlocked: *mut sqlite3,
4215        xNotify: ::core::option::Option<
4216            unsafe extern "C" fn(apArg: *mut *mut ::core::ffi::c_void, nArg: ::core::ffi::c_int),
4217        >,
4218        pNotifyArg: *mut ::core::ffi::c_void,
4219    ) -> ::core::ffi::c_int;
4220}
4221extern "C" {
4222    pub fn sqlite3_stricmp(
4223        arg1: *const ::core::ffi::c_char,
4224        arg2: *const ::core::ffi::c_char,
4225    ) -> ::core::ffi::c_int;
4226}
4227extern "C" {
4228    pub fn sqlite3_strnicmp(
4229        arg1: *const ::core::ffi::c_char,
4230        arg2: *const ::core::ffi::c_char,
4231        arg3: ::core::ffi::c_int,
4232    ) -> ::core::ffi::c_int;
4233}
4234extern "C" {
4235    pub fn sqlite3_strglob(
4236        zGlob: *const ::core::ffi::c_char,
4237        zStr: *const ::core::ffi::c_char,
4238    ) -> ::core::ffi::c_int;
4239}
4240extern "C" {
4241    pub fn sqlite3_strlike(
4242        zGlob: *const ::core::ffi::c_char,
4243        zStr: *const ::core::ffi::c_char,
4244        cEsc: ::core::ffi::c_uint,
4245    ) -> ::core::ffi::c_int;
4246}
4247extern "C" {
4248    pub fn sqlite3_log(iErrCode: ::core::ffi::c_int, zFormat: *const ::core::ffi::c_char, ...);
4249}
4250extern "C" {
4251    pub fn sqlite3_wal_hook(
4252        arg1: *mut sqlite3,
4253        arg2: ::core::option::Option<
4254            unsafe extern "C" fn(
4255                arg1: *mut ::core::ffi::c_void,
4256                arg2: *mut sqlite3,
4257                arg3: *const ::core::ffi::c_char,
4258                arg4: ::core::ffi::c_int,
4259            ) -> ::core::ffi::c_int,
4260        >,
4261        arg3: *mut ::core::ffi::c_void,
4262    ) -> *mut ::core::ffi::c_void;
4263}
4264extern "C" {
4265    pub fn sqlite3_wal_autocheckpoint(
4266        db: *mut sqlite3,
4267        N: ::core::ffi::c_int,
4268    ) -> ::core::ffi::c_int;
4269}
4270extern "C" {
4271    pub fn sqlite3_wal_checkpoint(
4272        db: *mut sqlite3,
4273        zDb: *const ::core::ffi::c_char,
4274    ) -> ::core::ffi::c_int;
4275}
4276extern "C" {
4277    pub fn sqlite3_wal_checkpoint_v2(
4278        db: *mut sqlite3,
4279        zDb: *const ::core::ffi::c_char,
4280        eMode: ::core::ffi::c_int,
4281        pnLog: *mut ::core::ffi::c_int,
4282        pnCkpt: *mut ::core::ffi::c_int,
4283    ) -> ::core::ffi::c_int;
4284}
4285extern "C" {
4286    pub fn sqlite3_vtab_config(
4287        arg1: *mut sqlite3,
4288        op: ::core::ffi::c_int,
4289        ...
4290    ) -> ::core::ffi::c_int;
4291}
4292extern "C" {
4293    pub fn sqlite3_vtab_on_conflict(arg1: *mut sqlite3) -> ::core::ffi::c_int;
4294}
4295extern "C" {
4296    pub fn sqlite3_vtab_nochange(arg1: *mut sqlite3_context) -> ::core::ffi::c_int;
4297}
4298extern "C" {
4299    pub fn sqlite3_vtab_collation(
4300        arg1: *mut sqlite3_index_info,
4301        arg2: ::core::ffi::c_int,
4302    ) -> *const ::core::ffi::c_char;
4303}
4304extern "C" {
4305    pub fn sqlite3_vtab_distinct(arg1: *mut sqlite3_index_info) -> ::core::ffi::c_int;
4306}
4307extern "C" {
4308    pub fn sqlite3_vtab_in(
4309        arg1: *mut sqlite3_index_info,
4310        iCons: ::core::ffi::c_int,
4311        bHandle: ::core::ffi::c_int,
4312    ) -> ::core::ffi::c_int;
4313}
4314extern "C" {
4315    pub fn sqlite3_vtab_in_first(
4316        pVal: *mut sqlite3_value,
4317        ppOut: *mut *mut sqlite3_value,
4318    ) -> ::core::ffi::c_int;
4319}
4320extern "C" {
4321    pub fn sqlite3_vtab_in_next(
4322        pVal: *mut sqlite3_value,
4323        ppOut: *mut *mut sqlite3_value,
4324    ) -> ::core::ffi::c_int;
4325}
4326extern "C" {
4327    pub fn sqlite3_vtab_rhs_value(
4328        arg1: *mut sqlite3_index_info,
4329        arg2: ::core::ffi::c_int,
4330        ppVal: *mut *mut sqlite3_value,
4331    ) -> ::core::ffi::c_int;
4332}
4333extern "C" {
4334    pub fn sqlite3_stmt_scanstatus(
4335        pStmt: *mut sqlite3_stmt,
4336        idx: ::core::ffi::c_int,
4337        iScanStatusOp: ::core::ffi::c_int,
4338        pOut: *mut ::core::ffi::c_void,
4339    ) -> ::core::ffi::c_int;
4340}
4341extern "C" {
4342    pub fn sqlite3_stmt_scanstatus_v2(
4343        pStmt: *mut sqlite3_stmt,
4344        idx: ::core::ffi::c_int,
4345        iScanStatusOp: ::core::ffi::c_int,
4346        flags: ::core::ffi::c_int,
4347        pOut: *mut ::core::ffi::c_void,
4348    ) -> ::core::ffi::c_int;
4349}
4350extern "C" {
4351    pub fn sqlite3_stmt_scanstatus_reset(arg1: *mut sqlite3_stmt);
4352}
4353extern "C" {
4354    pub fn sqlite3_db_cacheflush(arg1: *mut sqlite3) -> ::core::ffi::c_int;
4355}
4356extern "C" {
4357    pub fn sqlite3_system_errno(arg1: *mut sqlite3) -> ::core::ffi::c_int;
4358}
4359#[repr(C)]
4360#[derive(Debug, Copy, Clone)]
4361pub struct sqlite3_snapshot {
4362    pub hidden: [::core::ffi::c_uchar; 48usize],
4363}
4364#[test]
4365fn bindgen_test_layout_sqlite3_snapshot() {
4366    const UNINIT: ::core::mem::MaybeUninit<sqlite3_snapshot> = ::core::mem::MaybeUninit::uninit();
4367    let ptr = UNINIT.as_ptr();
4368    assert_eq!(
4369        ::core::mem::size_of::<sqlite3_snapshot>(),
4370        48usize,
4371        concat!("Size of: ", stringify!(sqlite3_snapshot))
4372    );
4373    assert_eq!(
4374        ::core::mem::align_of::<sqlite3_snapshot>(),
4375        1usize,
4376        concat!("Alignment of ", stringify!(sqlite3_snapshot))
4377    );
4378    assert_eq!(
4379        unsafe { ::core::ptr::addr_of!((*ptr).hidden) as usize - ptr as usize },
4380        0usize,
4381        concat!(
4382            "Offset of field: ",
4383            stringify!(sqlite3_snapshot),
4384            "::",
4385            stringify!(hidden)
4386        )
4387    );
4388}
4389extern "C" {
4390    pub fn sqlite3_snapshot_get(
4391        db: *mut sqlite3,
4392        zSchema: *const ::core::ffi::c_char,
4393        ppSnapshot: *mut *mut sqlite3_snapshot,
4394    ) -> ::core::ffi::c_int;
4395}
4396extern "C" {
4397    pub fn sqlite3_snapshot_open(
4398        db: *mut sqlite3,
4399        zSchema: *const ::core::ffi::c_char,
4400        pSnapshot: *mut sqlite3_snapshot,
4401    ) -> ::core::ffi::c_int;
4402}
4403extern "C" {
4404    pub fn sqlite3_snapshot_free(arg1: *mut sqlite3_snapshot);
4405}
4406extern "C" {
4407    pub fn sqlite3_snapshot_cmp(
4408        p1: *mut sqlite3_snapshot,
4409        p2: *mut sqlite3_snapshot,
4410    ) -> ::core::ffi::c_int;
4411}
4412extern "C" {
4413    pub fn sqlite3_snapshot_recover(
4414        db: *mut sqlite3,
4415        zDb: *const ::core::ffi::c_char,
4416    ) -> ::core::ffi::c_int;
4417}
4418extern "C" {
4419    pub fn sqlite3_serialize(
4420        db: *mut sqlite3,
4421        zSchema: *const ::core::ffi::c_char,
4422        piSize: *mut sqlite3_int64,
4423        mFlags: ::core::ffi::c_uint,
4424    ) -> *mut ::core::ffi::c_uchar;
4425}
4426extern "C" {
4427    pub fn sqlite3_deserialize(
4428        db: *mut sqlite3,
4429        zSchema: *const ::core::ffi::c_char,
4430        pData: *mut ::core::ffi::c_uchar,
4431        szDb: sqlite3_int64,
4432        szBuf: sqlite3_int64,
4433        mFlags: ::core::ffi::c_uint,
4434    ) -> ::core::ffi::c_int;
4435}
4436pub type sqlite3_rtree_dbl = f64;
4437extern "C" {
4438    pub fn sqlite3_rtree_geometry_callback(
4439        db: *mut sqlite3,
4440        zGeom: *const ::core::ffi::c_char,
4441        xGeom: ::core::option::Option<
4442            unsafe extern "C" fn(
4443                arg1: *mut sqlite3_rtree_geometry,
4444                arg2: ::core::ffi::c_int,
4445                arg3: *mut sqlite3_rtree_dbl,
4446                arg4: *mut ::core::ffi::c_int,
4447            ) -> ::core::ffi::c_int,
4448        >,
4449        pContext: *mut ::core::ffi::c_void,
4450    ) -> ::core::ffi::c_int;
4451}
4452#[repr(C)]
4453#[derive(Debug, Copy, Clone)]
4454pub struct sqlite3_rtree_geometry {
4455    pub pContext: *mut ::core::ffi::c_void,
4456    pub nParam: ::core::ffi::c_int,
4457    pub aParam: *mut sqlite3_rtree_dbl,
4458    pub pUser: *mut ::core::ffi::c_void,
4459    pub xDelUser: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
4460}
4461#[test]
4462fn bindgen_test_layout_sqlite3_rtree_geometry() {
4463    const UNINIT: ::core::mem::MaybeUninit<sqlite3_rtree_geometry> =
4464        ::core::mem::MaybeUninit::uninit();
4465    let ptr = UNINIT.as_ptr();
4466    assert_eq!(
4467        ::core::mem::size_of::<sqlite3_rtree_geometry>(),
4468        40usize,
4469        concat!("Size of: ", stringify!(sqlite3_rtree_geometry))
4470    );
4471    assert_eq!(
4472        ::core::mem::align_of::<sqlite3_rtree_geometry>(),
4473        8usize,
4474        concat!("Alignment of ", stringify!(sqlite3_rtree_geometry))
4475    );
4476    assert_eq!(
4477        unsafe { ::core::ptr::addr_of!((*ptr).pContext) as usize - ptr as usize },
4478        0usize,
4479        concat!(
4480            "Offset of field: ",
4481            stringify!(sqlite3_rtree_geometry),
4482            "::",
4483            stringify!(pContext)
4484        )
4485    );
4486    assert_eq!(
4487        unsafe { ::core::ptr::addr_of!((*ptr).nParam) as usize - ptr as usize },
4488        8usize,
4489        concat!(
4490            "Offset of field: ",
4491            stringify!(sqlite3_rtree_geometry),
4492            "::",
4493            stringify!(nParam)
4494        )
4495    );
4496    assert_eq!(
4497        unsafe { ::core::ptr::addr_of!((*ptr).aParam) as usize - ptr as usize },
4498        16usize,
4499        concat!(
4500            "Offset of field: ",
4501            stringify!(sqlite3_rtree_geometry),
4502            "::",
4503            stringify!(aParam)
4504        )
4505    );
4506    assert_eq!(
4507        unsafe { ::core::ptr::addr_of!((*ptr).pUser) as usize - ptr as usize },
4508        24usize,
4509        concat!(
4510            "Offset of field: ",
4511            stringify!(sqlite3_rtree_geometry),
4512            "::",
4513            stringify!(pUser)
4514        )
4515    );
4516    assert_eq!(
4517        unsafe { ::core::ptr::addr_of!((*ptr).xDelUser) as usize - ptr as usize },
4518        32usize,
4519        concat!(
4520            "Offset of field: ",
4521            stringify!(sqlite3_rtree_geometry),
4522            "::",
4523            stringify!(xDelUser)
4524        )
4525    );
4526}
4527extern "C" {
4528    pub fn sqlite3_rtree_query_callback(
4529        db: *mut sqlite3,
4530        zQueryFunc: *const ::core::ffi::c_char,
4531        xQueryFunc: ::core::option::Option<
4532            unsafe extern "C" fn(arg1: *mut sqlite3_rtree_query_info) -> ::core::ffi::c_int,
4533        >,
4534        pContext: *mut ::core::ffi::c_void,
4535        xDestructor: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
4536    ) -> ::core::ffi::c_int;
4537}
4538#[repr(C)]
4539#[derive(Debug, Copy, Clone)]
4540pub struct sqlite3_rtree_query_info {
4541    pub pContext: *mut ::core::ffi::c_void,
4542    pub nParam: ::core::ffi::c_int,
4543    pub aParam: *mut sqlite3_rtree_dbl,
4544    pub pUser: *mut ::core::ffi::c_void,
4545    pub xDelUser: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
4546    pub aCoord: *mut sqlite3_rtree_dbl,
4547    pub anQueue: *mut ::core::ffi::c_uint,
4548    pub nCoord: ::core::ffi::c_int,
4549    pub iLevel: ::core::ffi::c_int,
4550    pub mxLevel: ::core::ffi::c_int,
4551    pub iRowid: sqlite3_int64,
4552    pub rParentScore: sqlite3_rtree_dbl,
4553    pub eParentWithin: ::core::ffi::c_int,
4554    pub eWithin: ::core::ffi::c_int,
4555    pub rScore: sqlite3_rtree_dbl,
4556    pub apSqlParam: *mut *mut sqlite3_value,
4557}
4558#[test]
4559fn bindgen_test_layout_sqlite3_rtree_query_info() {
4560    const UNINIT: ::core::mem::MaybeUninit<sqlite3_rtree_query_info> =
4561        ::core::mem::MaybeUninit::uninit();
4562    let ptr = UNINIT.as_ptr();
4563    assert_eq!(
4564        ::core::mem::size_of::<sqlite3_rtree_query_info>(),
4565        112usize,
4566        concat!("Size of: ", stringify!(sqlite3_rtree_query_info))
4567    );
4568    assert_eq!(
4569        ::core::mem::align_of::<sqlite3_rtree_query_info>(),
4570        8usize,
4571        concat!("Alignment of ", stringify!(sqlite3_rtree_query_info))
4572    );
4573    assert_eq!(
4574        unsafe { ::core::ptr::addr_of!((*ptr).pContext) as usize - ptr as usize },
4575        0usize,
4576        concat!(
4577            "Offset of field: ",
4578            stringify!(sqlite3_rtree_query_info),
4579            "::",
4580            stringify!(pContext)
4581        )
4582    );
4583    assert_eq!(
4584        unsafe { ::core::ptr::addr_of!((*ptr).nParam) as usize - ptr as usize },
4585        8usize,
4586        concat!(
4587            "Offset of field: ",
4588            stringify!(sqlite3_rtree_query_info),
4589            "::",
4590            stringify!(nParam)
4591        )
4592    );
4593    assert_eq!(
4594        unsafe { ::core::ptr::addr_of!((*ptr).aParam) as usize - ptr as usize },
4595        16usize,
4596        concat!(
4597            "Offset of field: ",
4598            stringify!(sqlite3_rtree_query_info),
4599            "::",
4600            stringify!(aParam)
4601        )
4602    );
4603    assert_eq!(
4604        unsafe { ::core::ptr::addr_of!((*ptr).pUser) as usize - ptr as usize },
4605        24usize,
4606        concat!(
4607            "Offset of field: ",
4608            stringify!(sqlite3_rtree_query_info),
4609            "::",
4610            stringify!(pUser)
4611        )
4612    );
4613    assert_eq!(
4614        unsafe { ::core::ptr::addr_of!((*ptr).xDelUser) as usize - ptr as usize },
4615        32usize,
4616        concat!(
4617            "Offset of field: ",
4618            stringify!(sqlite3_rtree_query_info),
4619            "::",
4620            stringify!(xDelUser)
4621        )
4622    );
4623    assert_eq!(
4624        unsafe { ::core::ptr::addr_of!((*ptr).aCoord) as usize - ptr as usize },
4625        40usize,
4626        concat!(
4627            "Offset of field: ",
4628            stringify!(sqlite3_rtree_query_info),
4629            "::",
4630            stringify!(aCoord)
4631        )
4632    );
4633    assert_eq!(
4634        unsafe { ::core::ptr::addr_of!((*ptr).anQueue) as usize - ptr as usize },
4635        48usize,
4636        concat!(
4637            "Offset of field: ",
4638            stringify!(sqlite3_rtree_query_info),
4639            "::",
4640            stringify!(anQueue)
4641        )
4642    );
4643    assert_eq!(
4644        unsafe { ::core::ptr::addr_of!((*ptr).nCoord) as usize - ptr as usize },
4645        56usize,
4646        concat!(
4647            "Offset of field: ",
4648            stringify!(sqlite3_rtree_query_info),
4649            "::",
4650            stringify!(nCoord)
4651        )
4652    );
4653    assert_eq!(
4654        unsafe { ::core::ptr::addr_of!((*ptr).iLevel) as usize - ptr as usize },
4655        60usize,
4656        concat!(
4657            "Offset of field: ",
4658            stringify!(sqlite3_rtree_query_info),
4659            "::",
4660            stringify!(iLevel)
4661        )
4662    );
4663    assert_eq!(
4664        unsafe { ::core::ptr::addr_of!((*ptr).mxLevel) as usize - ptr as usize },
4665        64usize,
4666        concat!(
4667            "Offset of field: ",
4668            stringify!(sqlite3_rtree_query_info),
4669            "::",
4670            stringify!(mxLevel)
4671        )
4672    );
4673    assert_eq!(
4674        unsafe { ::core::ptr::addr_of!((*ptr).iRowid) as usize - ptr as usize },
4675        72usize,
4676        concat!(
4677            "Offset of field: ",
4678            stringify!(sqlite3_rtree_query_info),
4679            "::",
4680            stringify!(iRowid)
4681        )
4682    );
4683    assert_eq!(
4684        unsafe { ::core::ptr::addr_of!((*ptr).rParentScore) as usize - ptr as usize },
4685        80usize,
4686        concat!(
4687            "Offset of field: ",
4688            stringify!(sqlite3_rtree_query_info),
4689            "::",
4690            stringify!(rParentScore)
4691        )
4692    );
4693    assert_eq!(
4694        unsafe { ::core::ptr::addr_of!((*ptr).eParentWithin) as usize - ptr as usize },
4695        88usize,
4696        concat!(
4697            "Offset of field: ",
4698            stringify!(sqlite3_rtree_query_info),
4699            "::",
4700            stringify!(eParentWithin)
4701        )
4702    );
4703    assert_eq!(
4704        unsafe { ::core::ptr::addr_of!((*ptr).eWithin) as usize - ptr as usize },
4705        92usize,
4706        concat!(
4707            "Offset of field: ",
4708            stringify!(sqlite3_rtree_query_info),
4709            "::",
4710            stringify!(eWithin)
4711        )
4712    );
4713    assert_eq!(
4714        unsafe { ::core::ptr::addr_of!((*ptr).rScore) as usize - ptr as usize },
4715        96usize,
4716        concat!(
4717            "Offset of field: ",
4718            stringify!(sqlite3_rtree_query_info),
4719            "::",
4720            stringify!(rScore)
4721        )
4722    );
4723    assert_eq!(
4724        unsafe { ::core::ptr::addr_of!((*ptr).apSqlParam) as usize - ptr as usize },
4725        104usize,
4726        concat!(
4727            "Offset of field: ",
4728            stringify!(sqlite3_rtree_query_info),
4729            "::",
4730            stringify!(apSqlParam)
4731        )
4732    );
4733}
4734#[repr(C)]
4735#[derive(Debug, Copy, Clone)]
4736pub struct Fts5Context {
4737    _unused: [u8; 0],
4738}
4739pub type fts5_extension_function = ::core::option::Option<
4740    unsafe extern "C" fn(
4741        pApi: *const Fts5ExtensionApi,
4742        pFts: *mut Fts5Context,
4743        pCtx: *mut sqlite3_context,
4744        nVal: ::core::ffi::c_int,
4745        apVal: *mut *mut sqlite3_value,
4746    ),
4747>;
4748#[repr(C)]
4749#[derive(Debug, Copy, Clone)]
4750pub struct Fts5PhraseIter {
4751    pub a: *const ::core::ffi::c_uchar,
4752    pub b: *const ::core::ffi::c_uchar,
4753}
4754#[test]
4755fn bindgen_test_layout_Fts5PhraseIter() {
4756    const UNINIT: ::core::mem::MaybeUninit<Fts5PhraseIter> = ::core::mem::MaybeUninit::uninit();
4757    let ptr = UNINIT.as_ptr();
4758    assert_eq!(
4759        ::core::mem::size_of::<Fts5PhraseIter>(),
4760        16usize,
4761        concat!("Size of: ", stringify!(Fts5PhraseIter))
4762    );
4763    assert_eq!(
4764        ::core::mem::align_of::<Fts5PhraseIter>(),
4765        8usize,
4766        concat!("Alignment of ", stringify!(Fts5PhraseIter))
4767    );
4768    assert_eq!(
4769        unsafe { ::core::ptr::addr_of!((*ptr).a) as usize - ptr as usize },
4770        0usize,
4771        concat!(
4772            "Offset of field: ",
4773            stringify!(Fts5PhraseIter),
4774            "::",
4775            stringify!(a)
4776        )
4777    );
4778    assert_eq!(
4779        unsafe { ::core::ptr::addr_of!((*ptr).b) as usize - ptr as usize },
4780        8usize,
4781        concat!(
4782            "Offset of field: ",
4783            stringify!(Fts5PhraseIter),
4784            "::",
4785            stringify!(b)
4786        )
4787    );
4788}
4789#[repr(C)]
4790#[derive(Debug, Copy, Clone)]
4791pub struct Fts5ExtensionApi {
4792    pub iVersion: ::core::ffi::c_int,
4793    pub xUserData: ::core::option::Option<
4794        unsafe extern "C" fn(arg1: *mut Fts5Context) -> *mut ::core::ffi::c_void,
4795    >,
4796    pub xColumnCount:
4797        ::core::option::Option<unsafe extern "C" fn(arg1: *mut Fts5Context) -> ::core::ffi::c_int>,
4798    pub xRowCount: ::core::option::Option<
4799        unsafe extern "C" fn(
4800            arg1: *mut Fts5Context,
4801            pnRow: *mut sqlite3_int64,
4802        ) -> ::core::ffi::c_int,
4803    >,
4804    pub xColumnTotalSize: ::core::option::Option<
4805        unsafe extern "C" fn(
4806            arg1: *mut Fts5Context,
4807            iCol: ::core::ffi::c_int,
4808            pnToken: *mut sqlite3_int64,
4809        ) -> ::core::ffi::c_int,
4810    >,
4811    pub xTokenize: ::core::option::Option<
4812        unsafe extern "C" fn(
4813            arg1: *mut Fts5Context,
4814            pText: *const ::core::ffi::c_char,
4815            nText: ::core::ffi::c_int,
4816            pCtx: *mut ::core::ffi::c_void,
4817            xToken: ::core::option::Option<
4818                unsafe extern "C" fn(
4819                    arg1: *mut ::core::ffi::c_void,
4820                    arg2: ::core::ffi::c_int,
4821                    arg3: *const ::core::ffi::c_char,
4822                    arg4: ::core::ffi::c_int,
4823                    arg5: ::core::ffi::c_int,
4824                    arg6: ::core::ffi::c_int,
4825                ) -> ::core::ffi::c_int,
4826            >,
4827        ) -> ::core::ffi::c_int,
4828    >,
4829    pub xPhraseCount:
4830        ::core::option::Option<unsafe extern "C" fn(arg1: *mut Fts5Context) -> ::core::ffi::c_int>,
4831    pub xPhraseSize: ::core::option::Option<
4832        unsafe extern "C" fn(
4833            arg1: *mut Fts5Context,
4834            iPhrase: ::core::ffi::c_int,
4835        ) -> ::core::ffi::c_int,
4836    >,
4837    pub xInstCount: ::core::option::Option<
4838        unsafe extern "C" fn(
4839            arg1: *mut Fts5Context,
4840            pnInst: *mut ::core::ffi::c_int,
4841        ) -> ::core::ffi::c_int,
4842    >,
4843    pub xInst: ::core::option::Option<
4844        unsafe extern "C" fn(
4845            arg1: *mut Fts5Context,
4846            iIdx: ::core::ffi::c_int,
4847            piPhrase: *mut ::core::ffi::c_int,
4848            piCol: *mut ::core::ffi::c_int,
4849            piOff: *mut ::core::ffi::c_int,
4850        ) -> ::core::ffi::c_int,
4851    >,
4852    pub xRowid:
4853        ::core::option::Option<unsafe extern "C" fn(arg1: *mut Fts5Context) -> sqlite3_int64>,
4854    pub xColumnText: ::core::option::Option<
4855        unsafe extern "C" fn(
4856            arg1: *mut Fts5Context,
4857            iCol: ::core::ffi::c_int,
4858            pz: *mut *const ::core::ffi::c_char,
4859            pn: *mut ::core::ffi::c_int,
4860        ) -> ::core::ffi::c_int,
4861    >,
4862    pub xColumnSize: ::core::option::Option<
4863        unsafe extern "C" fn(
4864            arg1: *mut Fts5Context,
4865            iCol: ::core::ffi::c_int,
4866            pnToken: *mut ::core::ffi::c_int,
4867        ) -> ::core::ffi::c_int,
4868    >,
4869    pub xQueryPhrase: ::core::option::Option<
4870        unsafe extern "C" fn(
4871            arg1: *mut Fts5Context,
4872            iPhrase: ::core::ffi::c_int,
4873            pUserData: *mut ::core::ffi::c_void,
4874            arg2: ::core::option::Option<
4875                unsafe extern "C" fn(
4876                    arg1: *const Fts5ExtensionApi,
4877                    arg2: *mut Fts5Context,
4878                    arg3: *mut ::core::ffi::c_void,
4879                ) -> ::core::ffi::c_int,
4880            >,
4881        ) -> ::core::ffi::c_int,
4882    >,
4883    pub xSetAuxdata: ::core::option::Option<
4884        unsafe extern "C" fn(
4885            arg1: *mut Fts5Context,
4886            pAux: *mut ::core::ffi::c_void,
4887            xDelete: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
4888        ) -> ::core::ffi::c_int,
4889    >,
4890    pub xGetAuxdata: ::core::option::Option<
4891        unsafe extern "C" fn(
4892            arg1: *mut Fts5Context,
4893            bClear: ::core::ffi::c_int,
4894        ) -> *mut ::core::ffi::c_void,
4895    >,
4896    pub xPhraseFirst: ::core::option::Option<
4897        unsafe extern "C" fn(
4898            arg1: *mut Fts5Context,
4899            iPhrase: ::core::ffi::c_int,
4900            arg2: *mut Fts5PhraseIter,
4901            arg3: *mut ::core::ffi::c_int,
4902            arg4: *mut ::core::ffi::c_int,
4903        ) -> ::core::ffi::c_int,
4904    >,
4905    pub xPhraseNext: ::core::option::Option<
4906        unsafe extern "C" fn(
4907            arg1: *mut Fts5Context,
4908            arg2: *mut Fts5PhraseIter,
4909            piCol: *mut ::core::ffi::c_int,
4910            piOff: *mut ::core::ffi::c_int,
4911        ),
4912    >,
4913    pub xPhraseFirstColumn: ::core::option::Option<
4914        unsafe extern "C" fn(
4915            arg1: *mut Fts5Context,
4916            iPhrase: ::core::ffi::c_int,
4917            arg2: *mut Fts5PhraseIter,
4918            arg3: *mut ::core::ffi::c_int,
4919        ) -> ::core::ffi::c_int,
4920    >,
4921    pub xPhraseNextColumn: ::core::option::Option<
4922        unsafe extern "C" fn(
4923            arg1: *mut Fts5Context,
4924            arg2: *mut Fts5PhraseIter,
4925            piCol: *mut ::core::ffi::c_int,
4926        ),
4927    >,
4928    pub xQueryToken: ::core::option::Option<
4929        unsafe extern "C" fn(
4930            arg1: *mut Fts5Context,
4931            iPhrase: ::core::ffi::c_int,
4932            iToken: ::core::ffi::c_int,
4933            ppToken: *mut *const ::core::ffi::c_char,
4934            pnToken: *mut ::core::ffi::c_int,
4935        ) -> ::core::ffi::c_int,
4936    >,
4937    pub xInstToken: ::core::option::Option<
4938        unsafe extern "C" fn(
4939            arg1: *mut Fts5Context,
4940            iIdx: ::core::ffi::c_int,
4941            iToken: ::core::ffi::c_int,
4942            arg2: *mut *const ::core::ffi::c_char,
4943            arg3: *mut ::core::ffi::c_int,
4944        ) -> ::core::ffi::c_int,
4945    >,
4946}
4947#[test]
4948fn bindgen_test_layout_Fts5ExtensionApi() {
4949    const UNINIT: ::core::mem::MaybeUninit<Fts5ExtensionApi> = ::core::mem::MaybeUninit::uninit();
4950    let ptr = UNINIT.as_ptr();
4951    assert_eq!(
4952        ::core::mem::size_of::<Fts5ExtensionApi>(),
4953        176usize,
4954        concat!("Size of: ", stringify!(Fts5ExtensionApi))
4955    );
4956    assert_eq!(
4957        ::core::mem::align_of::<Fts5ExtensionApi>(),
4958        8usize,
4959        concat!("Alignment of ", stringify!(Fts5ExtensionApi))
4960    );
4961    assert_eq!(
4962        unsafe { ::core::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
4963        0usize,
4964        concat!(
4965            "Offset of field: ",
4966            stringify!(Fts5ExtensionApi),
4967            "::",
4968            stringify!(iVersion)
4969        )
4970    );
4971    assert_eq!(
4972        unsafe { ::core::ptr::addr_of!((*ptr).xUserData) as usize - ptr as usize },
4973        8usize,
4974        concat!(
4975            "Offset of field: ",
4976            stringify!(Fts5ExtensionApi),
4977            "::",
4978            stringify!(xUserData)
4979        )
4980    );
4981    assert_eq!(
4982        unsafe { ::core::ptr::addr_of!((*ptr).xColumnCount) as usize - ptr as usize },
4983        16usize,
4984        concat!(
4985            "Offset of field: ",
4986            stringify!(Fts5ExtensionApi),
4987            "::",
4988            stringify!(xColumnCount)
4989        )
4990    );
4991    assert_eq!(
4992        unsafe { ::core::ptr::addr_of!((*ptr).xRowCount) as usize - ptr as usize },
4993        24usize,
4994        concat!(
4995            "Offset of field: ",
4996            stringify!(Fts5ExtensionApi),
4997            "::",
4998            stringify!(xRowCount)
4999        )
5000    );
5001    assert_eq!(
5002        unsafe { ::core::ptr::addr_of!((*ptr).xColumnTotalSize) as usize - ptr as usize },
5003        32usize,
5004        concat!(
5005            "Offset of field: ",
5006            stringify!(Fts5ExtensionApi),
5007            "::",
5008            stringify!(xColumnTotalSize)
5009        )
5010    );
5011    assert_eq!(
5012        unsafe { ::core::ptr::addr_of!((*ptr).xTokenize) as usize - ptr as usize },
5013        40usize,
5014        concat!(
5015            "Offset of field: ",
5016            stringify!(Fts5ExtensionApi),
5017            "::",
5018            stringify!(xTokenize)
5019        )
5020    );
5021    assert_eq!(
5022        unsafe { ::core::ptr::addr_of!((*ptr).xPhraseCount) as usize - ptr as usize },
5023        48usize,
5024        concat!(
5025            "Offset of field: ",
5026            stringify!(Fts5ExtensionApi),
5027            "::",
5028            stringify!(xPhraseCount)
5029        )
5030    );
5031    assert_eq!(
5032        unsafe { ::core::ptr::addr_of!((*ptr).xPhraseSize) as usize - ptr as usize },
5033        56usize,
5034        concat!(
5035            "Offset of field: ",
5036            stringify!(Fts5ExtensionApi),
5037            "::",
5038            stringify!(xPhraseSize)
5039        )
5040    );
5041    assert_eq!(
5042        unsafe { ::core::ptr::addr_of!((*ptr).xInstCount) as usize - ptr as usize },
5043        64usize,
5044        concat!(
5045            "Offset of field: ",
5046            stringify!(Fts5ExtensionApi),
5047            "::",
5048            stringify!(xInstCount)
5049        )
5050    );
5051    assert_eq!(
5052        unsafe { ::core::ptr::addr_of!((*ptr).xInst) as usize - ptr as usize },
5053        72usize,
5054        concat!(
5055            "Offset of field: ",
5056            stringify!(Fts5ExtensionApi),
5057            "::",
5058            stringify!(xInst)
5059        )
5060    );
5061    assert_eq!(
5062        unsafe { ::core::ptr::addr_of!((*ptr).xRowid) as usize - ptr as usize },
5063        80usize,
5064        concat!(
5065            "Offset of field: ",
5066            stringify!(Fts5ExtensionApi),
5067            "::",
5068            stringify!(xRowid)
5069        )
5070    );
5071    assert_eq!(
5072        unsafe { ::core::ptr::addr_of!((*ptr).xColumnText) as usize - ptr as usize },
5073        88usize,
5074        concat!(
5075            "Offset of field: ",
5076            stringify!(Fts5ExtensionApi),
5077            "::",
5078            stringify!(xColumnText)
5079        )
5080    );
5081    assert_eq!(
5082        unsafe { ::core::ptr::addr_of!((*ptr).xColumnSize) as usize - ptr as usize },
5083        96usize,
5084        concat!(
5085            "Offset of field: ",
5086            stringify!(Fts5ExtensionApi),
5087            "::",
5088            stringify!(xColumnSize)
5089        )
5090    );
5091    assert_eq!(
5092        unsafe { ::core::ptr::addr_of!((*ptr).xQueryPhrase) as usize - ptr as usize },
5093        104usize,
5094        concat!(
5095            "Offset of field: ",
5096            stringify!(Fts5ExtensionApi),
5097            "::",
5098            stringify!(xQueryPhrase)
5099        )
5100    );
5101    assert_eq!(
5102        unsafe { ::core::ptr::addr_of!((*ptr).xSetAuxdata) as usize - ptr as usize },
5103        112usize,
5104        concat!(
5105            "Offset of field: ",
5106            stringify!(Fts5ExtensionApi),
5107            "::",
5108            stringify!(xSetAuxdata)
5109        )
5110    );
5111    assert_eq!(
5112        unsafe { ::core::ptr::addr_of!((*ptr).xGetAuxdata) as usize - ptr as usize },
5113        120usize,
5114        concat!(
5115            "Offset of field: ",
5116            stringify!(Fts5ExtensionApi),
5117            "::",
5118            stringify!(xGetAuxdata)
5119        )
5120    );
5121    assert_eq!(
5122        unsafe { ::core::ptr::addr_of!((*ptr).xPhraseFirst) as usize - ptr as usize },
5123        128usize,
5124        concat!(
5125            "Offset of field: ",
5126            stringify!(Fts5ExtensionApi),
5127            "::",
5128            stringify!(xPhraseFirst)
5129        )
5130    );
5131    assert_eq!(
5132        unsafe { ::core::ptr::addr_of!((*ptr).xPhraseNext) as usize - ptr as usize },
5133        136usize,
5134        concat!(
5135            "Offset of field: ",
5136            stringify!(Fts5ExtensionApi),
5137            "::",
5138            stringify!(xPhraseNext)
5139        )
5140    );
5141    assert_eq!(
5142        unsafe { ::core::ptr::addr_of!((*ptr).xPhraseFirstColumn) as usize - ptr as usize },
5143        144usize,
5144        concat!(
5145            "Offset of field: ",
5146            stringify!(Fts5ExtensionApi),
5147            "::",
5148            stringify!(xPhraseFirstColumn)
5149        )
5150    );
5151    assert_eq!(
5152        unsafe { ::core::ptr::addr_of!((*ptr).xPhraseNextColumn) as usize - ptr as usize },
5153        152usize,
5154        concat!(
5155            "Offset of field: ",
5156            stringify!(Fts5ExtensionApi),
5157            "::",
5158            stringify!(xPhraseNextColumn)
5159        )
5160    );
5161    assert_eq!(
5162        unsafe { ::core::ptr::addr_of!((*ptr).xQueryToken) as usize - ptr as usize },
5163        160usize,
5164        concat!(
5165            "Offset of field: ",
5166            stringify!(Fts5ExtensionApi),
5167            "::",
5168            stringify!(xQueryToken)
5169        )
5170    );
5171    assert_eq!(
5172        unsafe { ::core::ptr::addr_of!((*ptr).xInstToken) as usize - ptr as usize },
5173        168usize,
5174        concat!(
5175            "Offset of field: ",
5176            stringify!(Fts5ExtensionApi),
5177            "::",
5178            stringify!(xInstToken)
5179        )
5180    );
5181}
5182#[repr(C)]
5183#[derive(Debug, Copy, Clone)]
5184pub struct Fts5Tokenizer {
5185    _unused: [u8; 0],
5186}
5187#[repr(C)]
5188#[derive(Debug, Copy, Clone)]
5189pub struct fts5_tokenizer {
5190    pub xCreate: ::core::option::Option<
5191        unsafe extern "C" fn(
5192            arg1: *mut ::core::ffi::c_void,
5193            azArg: *mut *const ::core::ffi::c_char,
5194            nArg: ::core::ffi::c_int,
5195            ppOut: *mut *mut Fts5Tokenizer,
5196        ) -> ::core::ffi::c_int,
5197    >,
5198    pub xDelete: ::core::option::Option<unsafe extern "C" fn(arg1: *mut Fts5Tokenizer)>,
5199    pub xTokenize: ::core::option::Option<
5200        unsafe extern "C" fn(
5201            arg1: *mut Fts5Tokenizer,
5202            pCtx: *mut ::core::ffi::c_void,
5203            flags: ::core::ffi::c_int,
5204            pText: *const ::core::ffi::c_char,
5205            nText: ::core::ffi::c_int,
5206            xToken: ::core::option::Option<
5207                unsafe extern "C" fn(
5208                    pCtx: *mut ::core::ffi::c_void,
5209                    tflags: ::core::ffi::c_int,
5210                    pToken: *const ::core::ffi::c_char,
5211                    nToken: ::core::ffi::c_int,
5212                    iStart: ::core::ffi::c_int,
5213                    iEnd: ::core::ffi::c_int,
5214                ) -> ::core::ffi::c_int,
5215            >,
5216        ) -> ::core::ffi::c_int,
5217    >,
5218}
5219#[test]
5220fn bindgen_test_layout_fts5_tokenizer() {
5221    const UNINIT: ::core::mem::MaybeUninit<fts5_tokenizer> = ::core::mem::MaybeUninit::uninit();
5222    let ptr = UNINIT.as_ptr();
5223    assert_eq!(
5224        ::core::mem::size_of::<fts5_tokenizer>(),
5225        24usize,
5226        concat!("Size of: ", stringify!(fts5_tokenizer))
5227    );
5228    assert_eq!(
5229        ::core::mem::align_of::<fts5_tokenizer>(),
5230        8usize,
5231        concat!("Alignment of ", stringify!(fts5_tokenizer))
5232    );
5233    assert_eq!(
5234        unsafe { ::core::ptr::addr_of!((*ptr).xCreate) as usize - ptr as usize },
5235        0usize,
5236        concat!(
5237            "Offset of field: ",
5238            stringify!(fts5_tokenizer),
5239            "::",
5240            stringify!(xCreate)
5241        )
5242    );
5243    assert_eq!(
5244        unsafe { ::core::ptr::addr_of!((*ptr).xDelete) as usize - ptr as usize },
5245        8usize,
5246        concat!(
5247            "Offset of field: ",
5248            stringify!(fts5_tokenizer),
5249            "::",
5250            stringify!(xDelete)
5251        )
5252    );
5253    assert_eq!(
5254        unsafe { ::core::ptr::addr_of!((*ptr).xTokenize) as usize - ptr as usize },
5255        16usize,
5256        concat!(
5257            "Offset of field: ",
5258            stringify!(fts5_tokenizer),
5259            "::",
5260            stringify!(xTokenize)
5261        )
5262    );
5263}
5264#[repr(C)]
5265#[derive(Debug, Copy, Clone)]
5266pub struct fts5_api {
5267    pub iVersion: ::core::ffi::c_int,
5268    pub xCreateTokenizer: ::core::option::Option<
5269        unsafe extern "C" fn(
5270            pApi: *mut fts5_api,
5271            zName: *const ::core::ffi::c_char,
5272            pUserData: *mut ::core::ffi::c_void,
5273            pTokenizer: *mut fts5_tokenizer,
5274            xDestroy: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
5275        ) -> ::core::ffi::c_int,
5276    >,
5277    pub xFindTokenizer: ::core::option::Option<
5278        unsafe extern "C" fn(
5279            pApi: *mut fts5_api,
5280            zName: *const ::core::ffi::c_char,
5281            ppUserData: *mut *mut ::core::ffi::c_void,
5282            pTokenizer: *mut fts5_tokenizer,
5283        ) -> ::core::ffi::c_int,
5284    >,
5285    pub xCreateFunction: ::core::option::Option<
5286        unsafe extern "C" fn(
5287            pApi: *mut fts5_api,
5288            zName: *const ::core::ffi::c_char,
5289            pUserData: *mut ::core::ffi::c_void,
5290            xFunction: fts5_extension_function,
5291            xDestroy: ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>,
5292        ) -> ::core::ffi::c_int,
5293    >,
5294}
5295#[test]
5296fn bindgen_test_layout_fts5_api() {
5297    const UNINIT: ::core::mem::MaybeUninit<fts5_api> = ::core::mem::MaybeUninit::uninit();
5298    let ptr = UNINIT.as_ptr();
5299    assert_eq!(
5300        ::core::mem::size_of::<fts5_api>(),
5301        32usize,
5302        concat!("Size of: ", stringify!(fts5_api))
5303    );
5304    assert_eq!(
5305        ::core::mem::align_of::<fts5_api>(),
5306        8usize,
5307        concat!("Alignment of ", stringify!(fts5_api))
5308    );
5309    assert_eq!(
5310        unsafe { ::core::ptr::addr_of!((*ptr).iVersion) as usize - ptr as usize },
5311        0usize,
5312        concat!(
5313            "Offset of field: ",
5314            stringify!(fts5_api),
5315            "::",
5316            stringify!(iVersion)
5317        )
5318    );
5319    assert_eq!(
5320        unsafe { ::core::ptr::addr_of!((*ptr).xCreateTokenizer) as usize - ptr as usize },
5321        8usize,
5322        concat!(
5323            "Offset of field: ",
5324            stringify!(fts5_api),
5325            "::",
5326            stringify!(xCreateTokenizer)
5327        )
5328    );
5329    assert_eq!(
5330        unsafe { ::core::ptr::addr_of!((*ptr).xFindTokenizer) as usize - ptr as usize },
5331        16usize,
5332        concat!(
5333            "Offset of field: ",
5334            stringify!(fts5_api),
5335            "::",
5336            stringify!(xFindTokenizer)
5337        )
5338    );
5339    assert_eq!(
5340        unsafe { ::core::ptr::addr_of!((*ptr).xCreateFunction) as usize - ptr as usize },
5341        24usize,
5342        concat!(
5343            "Offset of field: ",
5344            stringify!(fts5_api),
5345            "::",
5346            stringify!(xCreateFunction)
5347        )
5348    );
5349}
5350pub type __builtin_va_list = [__va_list_tag; 1usize];
5351#[repr(C)]
5352#[derive(Debug, Copy, Clone)]
5353pub struct __va_list_tag {
5354    pub gp_offset: ::core::ffi::c_uint,
5355    pub fp_offset: ::core::ffi::c_uint,
5356    pub overflow_arg_area: *mut ::core::ffi::c_void,
5357    pub reg_save_area: *mut ::core::ffi::c_void,
5358}
5359#[test]
5360fn bindgen_test_layout___va_list_tag() {
5361    const UNINIT: ::core::mem::MaybeUninit<__va_list_tag> = ::core::mem::MaybeUninit::uninit();
5362    let ptr = UNINIT.as_ptr();
5363    assert_eq!(
5364        ::core::mem::size_of::<__va_list_tag>(),
5365        24usize,
5366        concat!("Size of: ", stringify!(__va_list_tag))
5367    );
5368    assert_eq!(
5369        ::core::mem::align_of::<__va_list_tag>(),
5370        8usize,
5371        concat!("Alignment of ", stringify!(__va_list_tag))
5372    );
5373    assert_eq!(
5374        unsafe { ::core::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
5375        0usize,
5376        concat!(
5377            "Offset of field: ",
5378            stringify!(__va_list_tag),
5379            "::",
5380            stringify!(gp_offset)
5381        )
5382    );
5383    assert_eq!(
5384        unsafe { ::core::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
5385        4usize,
5386        concat!(
5387            "Offset of field: ",
5388            stringify!(__va_list_tag),
5389            "::",
5390            stringify!(fp_offset)
5391        )
5392    );
5393    assert_eq!(
5394        unsafe { ::core::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
5395        8usize,
5396        concat!(
5397            "Offset of field: ",
5398            stringify!(__va_list_tag),
5399            "::",
5400            stringify!(overflow_arg_area)
5401        )
5402    );
5403    assert_eq!(
5404        unsafe { ::core::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
5405        16usize,
5406        concat!(
5407            "Offset of field: ",
5408            stringify!(__va_list_tag),
5409            "::",
5410            stringify!(reg_save_area)
5411        )
5412    );
5413}