sqlite_wasm_rs/bindings/
sqlite3_bindgen.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3extern "C" {
4    pub fn sqlite3_auto_extension(
5        xEntryPoint: ::core::option::Option<
6            unsafe extern "C" fn(
7                db: *mut sqlite3,
8                pzErrMsg: *mut *mut ::core::ffi::c_char,
9                _: *const sqlite3_api_routines,
10            ) -> ::core::ffi::c_int,
11        >,
12    ) -> ::core::ffi::c_int;
13}
14extern "C" {
15    pub fn sqlite3_cancel_auto_extension(
16        xEntryPoint: ::core::option::Option<
17            unsafe extern "C" fn(
18                db: *mut sqlite3,
19                pzErrMsg: *mut *mut ::core::ffi::c_char,
20                _: *const sqlite3_api_routines,
21            ) -> ::core::ffi::c_int,
22        >,
23    ) -> ::core::ffi::c_int;
24}
25pub unsafe fn sqlite3_load_extension(
26    _db: *mut sqlite3,
27    _zFile: *const ::core::ffi::c_char,
28    _zProc: *const ::core::ffi::c_char,
29    _pzErrMsg: *mut *mut ::core::ffi::c_char,
30) -> ::core::ffi::c_int {
31    // SQLITE_ERROR
32    1
33}
34pub unsafe fn sqlite3_enable_load_extension(
35    _db: *mut sqlite3,
36    _onoff: ::core::ffi::c_int,
37) -> ::core::ffi::c_int {
38    // SQLITE_ERROR
39    1
40}
41
42pub const SQLITE_VERSION: &::core::ffi::CStr = c"3.51.1";
43pub const SQLITE_VERSION_NUMBER: i32 = 3051001;
44pub const SQLITE_SOURCE_ID: &::core::ffi::CStr = c"2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88";
45pub const SQLITE_SCM_BRANCH: &::core::ffi::CStr = c"branch-3.51";
46pub const SQLITE_SCM_TAGS: &::core::ffi::CStr = c"release version-3.51.1";
47pub const SQLITE_SCM_DATETIME: &::core::ffi::CStr = c"2025-11-28T17:28:25.933Z";
48pub const SQLITE_OK: i32 = 0;
49pub const SQLITE_ERROR: i32 = 1;
50pub const SQLITE_INTERNAL: i32 = 2;
51pub const SQLITE_PERM: i32 = 3;
52pub const SQLITE_ABORT: i32 = 4;
53pub const SQLITE_BUSY: i32 = 5;
54pub const SQLITE_LOCKED: i32 = 6;
55pub const SQLITE_NOMEM: i32 = 7;
56pub const SQLITE_READONLY: i32 = 8;
57pub const SQLITE_INTERRUPT: i32 = 9;
58pub const SQLITE_IOERR: i32 = 10;
59pub const SQLITE_CORRUPT: i32 = 11;
60pub const SQLITE_NOTFOUND: i32 = 12;
61pub const SQLITE_FULL: i32 = 13;
62pub const SQLITE_CANTOPEN: i32 = 14;
63pub const SQLITE_PROTOCOL: i32 = 15;
64pub const SQLITE_EMPTY: i32 = 16;
65pub const SQLITE_SCHEMA: i32 = 17;
66pub const SQLITE_TOOBIG: i32 = 18;
67pub const SQLITE_CONSTRAINT: i32 = 19;
68pub const SQLITE_MISMATCH: i32 = 20;
69pub const SQLITE_MISUSE: i32 = 21;
70pub const SQLITE_NOLFS: i32 = 22;
71pub const SQLITE_AUTH: i32 = 23;
72pub const SQLITE_FORMAT: i32 = 24;
73pub const SQLITE_RANGE: i32 = 25;
74pub const SQLITE_NOTADB: i32 = 26;
75pub const SQLITE_NOTICE: i32 = 27;
76pub const SQLITE_WARNING: i32 = 28;
77pub const SQLITE_ROW: i32 = 100;
78pub const SQLITE_DONE: i32 = 101;
79pub const SQLITE_ERROR_MISSING_COLLSEQ: i32 = 257;
80pub const SQLITE_ERROR_RETRY: i32 = 513;
81pub const SQLITE_ERROR_SNAPSHOT: i32 = 769;
82pub const SQLITE_ERROR_RESERVESIZE: i32 = 1025;
83pub const SQLITE_ERROR_KEY: i32 = 1281;
84pub const SQLITE_ERROR_UNABLE: i32 = 1537;
85pub const SQLITE_IOERR_READ: i32 = 266;
86pub const SQLITE_IOERR_SHORT_READ: i32 = 522;
87pub const SQLITE_IOERR_WRITE: i32 = 778;
88pub const SQLITE_IOERR_FSYNC: i32 = 1034;
89pub const SQLITE_IOERR_DIR_FSYNC: i32 = 1290;
90pub const SQLITE_IOERR_TRUNCATE: i32 = 1546;
91pub const SQLITE_IOERR_FSTAT: i32 = 1802;
92pub const SQLITE_IOERR_UNLOCK: i32 = 2058;
93pub const SQLITE_IOERR_RDLOCK: i32 = 2314;
94pub const SQLITE_IOERR_DELETE: i32 = 2570;
95pub const SQLITE_IOERR_BLOCKED: i32 = 2826;
96pub const SQLITE_IOERR_NOMEM: i32 = 3082;
97pub const SQLITE_IOERR_ACCESS: i32 = 3338;
98pub const SQLITE_IOERR_CHECKRESERVEDLOCK: i32 = 3594;
99pub const SQLITE_IOERR_LOCK: i32 = 3850;
100pub const SQLITE_IOERR_CLOSE: i32 = 4106;
101pub const SQLITE_IOERR_DIR_CLOSE: i32 = 4362;
102pub const SQLITE_IOERR_SHMOPEN: i32 = 4618;
103pub const SQLITE_IOERR_SHMSIZE: i32 = 4874;
104pub const SQLITE_IOERR_SHMLOCK: i32 = 5130;
105pub const SQLITE_IOERR_SHMMAP: i32 = 5386;
106pub const SQLITE_IOERR_SEEK: i32 = 5642;
107pub const SQLITE_IOERR_DELETE_NOENT: i32 = 5898;
108pub const SQLITE_IOERR_MMAP: i32 = 6154;
109pub const SQLITE_IOERR_GETTEMPPATH: i32 = 6410;
110pub const SQLITE_IOERR_CONVPATH: i32 = 6666;
111pub const SQLITE_IOERR_VNODE: i32 = 6922;
112pub const SQLITE_IOERR_AUTH: i32 = 7178;
113pub const SQLITE_IOERR_BEGIN_ATOMIC: i32 = 7434;
114pub const SQLITE_IOERR_COMMIT_ATOMIC: i32 = 7690;
115pub const SQLITE_IOERR_ROLLBACK_ATOMIC: i32 = 7946;
116pub const SQLITE_IOERR_DATA: i32 = 8202;
117pub const SQLITE_IOERR_CORRUPTFS: i32 = 8458;
118pub const SQLITE_IOERR_IN_PAGE: i32 = 8714;
119pub const SQLITE_IOERR_BADKEY: i32 = 8970;
120pub const SQLITE_IOERR_CODEC: i32 = 9226;
121pub const SQLITE_LOCKED_SHAREDCACHE: i32 = 262;
122pub const SQLITE_LOCKED_VTAB: i32 = 518;
123pub const SQLITE_BUSY_RECOVERY: i32 = 261;
124pub const SQLITE_BUSY_SNAPSHOT: i32 = 517;
125pub const SQLITE_BUSY_TIMEOUT: i32 = 773;
126pub const SQLITE_CANTOPEN_NOTEMPDIR: i32 = 270;
127pub const SQLITE_CANTOPEN_ISDIR: i32 = 526;
128pub const SQLITE_CANTOPEN_FULLPATH: i32 = 782;
129pub const SQLITE_CANTOPEN_CONVPATH: i32 = 1038;
130pub const SQLITE_CANTOPEN_DIRTYWAL: i32 = 1294;
131pub const SQLITE_CANTOPEN_SYMLINK: i32 = 1550;
132pub const SQLITE_CORRUPT_VTAB: i32 = 267;
133pub const SQLITE_CORRUPT_SEQUENCE: i32 = 523;
134pub const SQLITE_CORRUPT_INDEX: i32 = 779;
135pub const SQLITE_READONLY_RECOVERY: i32 = 264;
136pub const SQLITE_READONLY_CANTLOCK: i32 = 520;
137pub const SQLITE_READONLY_ROLLBACK: i32 = 776;
138pub const SQLITE_READONLY_DBMOVED: i32 = 1032;
139pub const SQLITE_READONLY_CANTINIT: i32 = 1288;
140pub const SQLITE_READONLY_DIRECTORY: i32 = 1544;
141pub const SQLITE_ABORT_ROLLBACK: i32 = 516;
142pub const SQLITE_CONSTRAINT_CHECK: i32 = 275;
143pub const SQLITE_CONSTRAINT_COMMITHOOK: i32 = 531;
144pub const SQLITE_CONSTRAINT_FOREIGNKEY: i32 = 787;
145pub const SQLITE_CONSTRAINT_FUNCTION: i32 = 1043;
146pub const SQLITE_CONSTRAINT_NOTNULL: i32 = 1299;
147pub const SQLITE_CONSTRAINT_PRIMARYKEY: i32 = 1555;
148pub const SQLITE_CONSTRAINT_TRIGGER: i32 = 1811;
149pub const SQLITE_CONSTRAINT_UNIQUE: i32 = 2067;
150pub const SQLITE_CONSTRAINT_VTAB: i32 = 2323;
151pub const SQLITE_CONSTRAINT_ROWID: i32 = 2579;
152pub const SQLITE_CONSTRAINT_PINNED: i32 = 2835;
153pub const SQLITE_CONSTRAINT_DATATYPE: i32 = 3091;
154pub const SQLITE_NOTICE_RECOVER_WAL: i32 = 283;
155pub const SQLITE_NOTICE_RECOVER_ROLLBACK: i32 = 539;
156pub const SQLITE_NOTICE_RBU: i32 = 795;
157pub const SQLITE_WARNING_AUTOINDEX: i32 = 284;
158pub const SQLITE_AUTH_USER: i32 = 279;
159pub const SQLITE_OK_LOAD_PERMANENTLY: i32 = 256;
160pub const SQLITE_OK_SYMLINK: i32 = 512;
161pub const SQLITE_OPEN_READONLY: i32 = 1;
162pub const SQLITE_OPEN_READWRITE: i32 = 2;
163pub const SQLITE_OPEN_CREATE: i32 = 4;
164pub const SQLITE_OPEN_DELETEONCLOSE: i32 = 8;
165pub const SQLITE_OPEN_EXCLUSIVE: i32 = 16;
166pub const SQLITE_OPEN_AUTOPROXY: i32 = 32;
167pub const SQLITE_OPEN_URI: i32 = 64;
168pub const SQLITE_OPEN_MEMORY: i32 = 128;
169pub const SQLITE_OPEN_MAIN_DB: i32 = 256;
170pub const SQLITE_OPEN_TEMP_DB: i32 = 512;
171pub const SQLITE_OPEN_TRANSIENT_DB: i32 = 1024;
172pub const SQLITE_OPEN_MAIN_JOURNAL: i32 = 2048;
173pub const SQLITE_OPEN_TEMP_JOURNAL: i32 = 4096;
174pub const SQLITE_OPEN_SUBJOURNAL: i32 = 8192;
175pub const SQLITE_OPEN_SUPER_JOURNAL: i32 = 16384;
176pub const SQLITE_OPEN_NOMUTEX: i32 = 32768;
177pub const SQLITE_OPEN_FULLMUTEX: i32 = 65536;
178pub const SQLITE_OPEN_SHAREDCACHE: i32 = 131072;
179pub const SQLITE_OPEN_PRIVATECACHE: i32 = 262144;
180pub const SQLITE_OPEN_WAL: i32 = 524288;
181pub const SQLITE_OPEN_NOFOLLOW: i32 = 16777216;
182pub const SQLITE_OPEN_EXRESCODE: i32 = 33554432;
183pub const SQLITE_OPEN_MASTER_JOURNAL: i32 = 16384;
184pub const SQLITE_IOCAP_ATOMIC: i32 = 1;
185pub const SQLITE_IOCAP_ATOMIC512: i32 = 2;
186pub const SQLITE_IOCAP_ATOMIC1K: i32 = 4;
187pub const SQLITE_IOCAP_ATOMIC2K: i32 = 8;
188pub const SQLITE_IOCAP_ATOMIC4K: i32 = 16;
189pub const SQLITE_IOCAP_ATOMIC8K: i32 = 32;
190pub const SQLITE_IOCAP_ATOMIC16K: i32 = 64;
191pub const SQLITE_IOCAP_ATOMIC32K: i32 = 128;
192pub const SQLITE_IOCAP_ATOMIC64K: i32 = 256;
193pub const SQLITE_IOCAP_SAFE_APPEND: i32 = 512;
194pub const SQLITE_IOCAP_SEQUENTIAL: i32 = 1024;
195pub const SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN: i32 = 2048;
196pub const SQLITE_IOCAP_POWERSAFE_OVERWRITE: i32 = 4096;
197pub const SQLITE_IOCAP_IMMUTABLE: i32 = 8192;
198pub const SQLITE_IOCAP_BATCH_ATOMIC: i32 = 16384;
199pub const SQLITE_IOCAP_SUBPAGE_READ: i32 = 32768;
200pub const SQLITE_LOCK_NONE: i32 = 0;
201pub const SQLITE_LOCK_SHARED: i32 = 1;
202pub const SQLITE_LOCK_RESERVED: i32 = 2;
203pub const SQLITE_LOCK_PENDING: i32 = 3;
204pub const SQLITE_LOCK_EXCLUSIVE: i32 = 4;
205pub const SQLITE_SYNC_NORMAL: i32 = 2;
206pub const SQLITE_SYNC_FULL: i32 = 3;
207pub const SQLITE_SYNC_DATAONLY: i32 = 16;
208pub const SQLITE_FCNTL_LOCKSTATE: i32 = 1;
209pub const SQLITE_FCNTL_GET_LOCKPROXYFILE: i32 = 2;
210pub const SQLITE_FCNTL_SET_LOCKPROXYFILE: i32 = 3;
211pub const SQLITE_FCNTL_LAST_ERRNO: i32 = 4;
212pub const SQLITE_FCNTL_SIZE_HINT: i32 = 5;
213pub const SQLITE_FCNTL_CHUNK_SIZE: i32 = 6;
214pub const SQLITE_FCNTL_FILE_POINTER: i32 = 7;
215pub const SQLITE_FCNTL_SYNC_OMITTED: i32 = 8;
216pub const SQLITE_FCNTL_WIN32_AV_RETRY: i32 = 9;
217pub const SQLITE_FCNTL_PERSIST_WAL: i32 = 10;
218pub const SQLITE_FCNTL_OVERWRITE: i32 = 11;
219pub const SQLITE_FCNTL_VFSNAME: i32 = 12;
220pub const SQLITE_FCNTL_POWERSAFE_OVERWRITE: i32 = 13;
221pub const SQLITE_FCNTL_PRAGMA: i32 = 14;
222pub const SQLITE_FCNTL_BUSYHANDLER: i32 = 15;
223pub const SQLITE_FCNTL_TEMPFILENAME: i32 = 16;
224pub const SQLITE_FCNTL_MMAP_SIZE: i32 = 18;
225pub const SQLITE_FCNTL_TRACE: i32 = 19;
226pub const SQLITE_FCNTL_HAS_MOVED: i32 = 20;
227pub const SQLITE_FCNTL_SYNC: i32 = 21;
228pub const SQLITE_FCNTL_COMMIT_PHASETWO: i32 = 22;
229pub const SQLITE_FCNTL_WIN32_SET_HANDLE: i32 = 23;
230pub const SQLITE_FCNTL_WAL_BLOCK: i32 = 24;
231pub const SQLITE_FCNTL_ZIPVFS: i32 = 25;
232pub const SQLITE_FCNTL_RBU: i32 = 26;
233pub const SQLITE_FCNTL_VFS_POINTER: i32 = 27;
234pub const SQLITE_FCNTL_JOURNAL_POINTER: i32 = 28;
235pub const SQLITE_FCNTL_WIN32_GET_HANDLE: i32 = 29;
236pub const SQLITE_FCNTL_PDB: i32 = 30;
237pub const SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: i32 = 31;
238pub const SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: i32 = 32;
239pub const SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: i32 = 33;
240pub const SQLITE_FCNTL_LOCK_TIMEOUT: i32 = 34;
241pub const SQLITE_FCNTL_DATA_VERSION: i32 = 35;
242pub const SQLITE_FCNTL_SIZE_LIMIT: i32 = 36;
243pub const SQLITE_FCNTL_CKPT_DONE: i32 = 37;
244pub const SQLITE_FCNTL_RESERVE_BYTES: i32 = 38;
245pub const SQLITE_FCNTL_CKPT_START: i32 = 39;
246pub const SQLITE_FCNTL_EXTERNAL_READER: i32 = 40;
247pub const SQLITE_FCNTL_CKSM_FILE: i32 = 41;
248pub const SQLITE_FCNTL_RESET_CACHE: i32 = 42;
249pub const SQLITE_FCNTL_NULL_IO: i32 = 43;
250pub const SQLITE_FCNTL_BLOCK_ON_CONNECT: i32 = 44;
251pub const SQLITE_FCNTL_FILESTAT: i32 = 45;
252pub const SQLITE_GET_LOCKPROXYFILE: i32 = 2;
253pub const SQLITE_SET_LOCKPROXYFILE: i32 = 3;
254pub const SQLITE_LAST_ERRNO: i32 = 4;
255pub const SQLITE_ACCESS_EXISTS: i32 = 0;
256pub const SQLITE_ACCESS_READWRITE: i32 = 1;
257pub const SQLITE_ACCESS_READ: i32 = 2;
258pub const SQLITE_SHM_UNLOCK: i32 = 1;
259pub const SQLITE_SHM_LOCK: i32 = 2;
260pub const SQLITE_SHM_SHARED: i32 = 4;
261pub const SQLITE_SHM_EXCLUSIVE: i32 = 8;
262pub const SQLITE_SHM_NLOCK: i32 = 8;
263pub const SQLITE_CONFIG_SINGLETHREAD: i32 = 1;
264pub const SQLITE_CONFIG_MULTITHREAD: i32 = 2;
265pub const SQLITE_CONFIG_SERIALIZED: i32 = 3;
266pub const SQLITE_CONFIG_MALLOC: i32 = 4;
267pub const SQLITE_CONFIG_GETMALLOC: i32 = 5;
268pub const SQLITE_CONFIG_SCRATCH: i32 = 6;
269pub const SQLITE_CONFIG_PAGECACHE: i32 = 7;
270pub const SQLITE_CONFIG_HEAP: i32 = 8;
271pub const SQLITE_CONFIG_MEMSTATUS: i32 = 9;
272pub const SQLITE_CONFIG_MUTEX: i32 = 10;
273pub const SQLITE_CONFIG_GETMUTEX: i32 = 11;
274pub const SQLITE_CONFIG_LOOKASIDE: i32 = 13;
275pub const SQLITE_CONFIG_PCACHE: i32 = 14;
276pub const SQLITE_CONFIG_GETPCACHE: i32 = 15;
277pub const SQLITE_CONFIG_LOG: i32 = 16;
278pub const SQLITE_CONFIG_URI: i32 = 17;
279pub const SQLITE_CONFIG_PCACHE2: i32 = 18;
280pub const SQLITE_CONFIG_GETPCACHE2: i32 = 19;
281pub const SQLITE_CONFIG_COVERING_INDEX_SCAN: i32 = 20;
282pub const SQLITE_CONFIG_SQLLOG: i32 = 21;
283pub const SQLITE_CONFIG_MMAP_SIZE: i32 = 22;
284pub const SQLITE_CONFIG_WIN32_HEAPSIZE: i32 = 23;
285pub const SQLITE_CONFIG_PCACHE_HDRSZ: i32 = 24;
286pub const SQLITE_CONFIG_PMASZ: i32 = 25;
287pub const SQLITE_CONFIG_STMTJRNL_SPILL: i32 = 26;
288pub const SQLITE_CONFIG_SMALL_MALLOC: i32 = 27;
289pub const SQLITE_CONFIG_SORTERREF_SIZE: i32 = 28;
290pub const SQLITE_CONFIG_MEMDB_MAXSIZE: i32 = 29;
291pub const SQLITE_CONFIG_ROWID_IN_VIEW: i32 = 30;
292pub const SQLITE_DBCONFIG_MAINDBNAME: i32 = 1000;
293pub const SQLITE_DBCONFIG_LOOKASIDE: i32 = 1001;
294pub const SQLITE_DBCONFIG_ENABLE_FKEY: i32 = 1002;
295pub const SQLITE_DBCONFIG_ENABLE_TRIGGER: i32 = 1003;
296pub const SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER: i32 = 1004;
297pub const SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION: i32 = 1005;
298pub const SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE: i32 = 1006;
299pub const SQLITE_DBCONFIG_ENABLE_QPSG: i32 = 1007;
300pub const SQLITE_DBCONFIG_TRIGGER_EQP: i32 = 1008;
301pub const SQLITE_DBCONFIG_RESET_DATABASE: i32 = 1009;
302pub const SQLITE_DBCONFIG_DEFENSIVE: i32 = 1010;
303pub const SQLITE_DBCONFIG_WRITABLE_SCHEMA: i32 = 1011;
304pub const SQLITE_DBCONFIG_LEGACY_ALTER_TABLE: i32 = 1012;
305pub const SQLITE_DBCONFIG_DQS_DML: i32 = 1013;
306pub const SQLITE_DBCONFIG_DQS_DDL: i32 = 1014;
307pub const SQLITE_DBCONFIG_ENABLE_VIEW: i32 = 1015;
308pub const SQLITE_DBCONFIG_LEGACY_FILE_FORMAT: i32 = 1016;
309pub const SQLITE_DBCONFIG_TRUSTED_SCHEMA: i32 = 1017;
310pub const SQLITE_DBCONFIG_STMT_SCANSTATUS: i32 = 1018;
311pub const SQLITE_DBCONFIG_REVERSE_SCANORDER: i32 = 1019;
312pub const SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE: i32 = 1020;
313pub const SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE: i32 = 1021;
314pub const SQLITE_DBCONFIG_ENABLE_COMMENTS: i32 = 1022;
315pub const SQLITE_DBCONFIG_MAX: i32 = 1022;
316pub const SQLITE_SETLK_BLOCK_ON_CONNECT: i32 = 1;
317pub const SQLITE_DENY: i32 = 1;
318pub const SQLITE_IGNORE: i32 = 2;
319pub const SQLITE_CREATE_INDEX: i32 = 1;
320pub const SQLITE_CREATE_TABLE: i32 = 2;
321pub const SQLITE_CREATE_TEMP_INDEX: i32 = 3;
322pub const SQLITE_CREATE_TEMP_TABLE: i32 = 4;
323pub const SQLITE_CREATE_TEMP_TRIGGER: i32 = 5;
324pub const SQLITE_CREATE_TEMP_VIEW: i32 = 6;
325pub const SQLITE_CREATE_TRIGGER: i32 = 7;
326pub const SQLITE_CREATE_VIEW: i32 = 8;
327pub const SQLITE_DELETE: i32 = 9;
328pub const SQLITE_DROP_INDEX: i32 = 10;
329pub const SQLITE_DROP_TABLE: i32 = 11;
330pub const SQLITE_DROP_TEMP_INDEX: i32 = 12;
331pub const SQLITE_DROP_TEMP_TABLE: i32 = 13;
332pub const SQLITE_DROP_TEMP_TRIGGER: i32 = 14;
333pub const SQLITE_DROP_TEMP_VIEW: i32 = 15;
334pub const SQLITE_DROP_TRIGGER: i32 = 16;
335pub const SQLITE_DROP_VIEW: i32 = 17;
336pub const SQLITE_INSERT: i32 = 18;
337pub const SQLITE_PRAGMA: i32 = 19;
338pub const SQLITE_READ: i32 = 20;
339pub const SQLITE_SELECT: i32 = 21;
340pub const SQLITE_TRANSACTION: i32 = 22;
341pub const SQLITE_UPDATE: i32 = 23;
342pub const SQLITE_ATTACH: i32 = 24;
343pub const SQLITE_DETACH: i32 = 25;
344pub const SQLITE_ALTER_TABLE: i32 = 26;
345pub const SQLITE_REINDEX: i32 = 27;
346pub const SQLITE_ANALYZE: i32 = 28;
347pub const SQLITE_CREATE_VTABLE: i32 = 29;
348pub const SQLITE_DROP_VTABLE: i32 = 30;
349pub const SQLITE_FUNCTION: i32 = 31;
350pub const SQLITE_SAVEPOINT: i32 = 32;
351pub const SQLITE_COPY: i32 = 0;
352pub const SQLITE_RECURSIVE: i32 = 33;
353pub const SQLITE_TRACE_STMT: ::core::ffi::c_uint = 1;
354pub const SQLITE_TRACE_PROFILE: ::core::ffi::c_uint = 2;
355pub const SQLITE_TRACE_ROW: ::core::ffi::c_uint = 4;
356pub const SQLITE_TRACE_CLOSE: ::core::ffi::c_uint = 8;
357pub const SQLITE_LIMIT_LENGTH: i32 = 0;
358pub const SQLITE_LIMIT_SQL_LENGTH: i32 = 1;
359pub const SQLITE_LIMIT_COLUMN: i32 = 2;
360pub const SQLITE_LIMIT_EXPR_DEPTH: i32 = 3;
361pub const SQLITE_LIMIT_COMPOUND_SELECT: i32 = 4;
362pub const SQLITE_LIMIT_VDBE_OP: i32 = 5;
363pub const SQLITE_LIMIT_FUNCTION_ARG: i32 = 6;
364pub const SQLITE_LIMIT_ATTACHED: i32 = 7;
365pub const SQLITE_LIMIT_LIKE_PATTERN_LENGTH: i32 = 8;
366pub const SQLITE_LIMIT_VARIABLE_NUMBER: i32 = 9;
367pub const SQLITE_LIMIT_TRIGGER_DEPTH: i32 = 10;
368pub const SQLITE_LIMIT_WORKER_THREADS: i32 = 11;
369pub const SQLITE_PREPARE_PERSISTENT: ::core::ffi::c_uint = 1;
370pub const SQLITE_PREPARE_NORMALIZE: ::core::ffi::c_uint = 2;
371pub const SQLITE_PREPARE_NO_VTAB: ::core::ffi::c_uint = 4;
372pub const SQLITE_PREPARE_DONT_LOG: ::core::ffi::c_uint = 16;
373pub const SQLITE_INTEGER: i32 = 1;
374pub const SQLITE_FLOAT: i32 = 2;
375pub const SQLITE_BLOB: i32 = 4;
376pub const SQLITE_NULL: i32 = 5;
377pub const SQLITE_TEXT: i32 = 3;
378pub const SQLITE3_TEXT: i32 = 3;
379pub const SQLITE_UTF8: i32 = 1;
380pub const SQLITE_UTF16LE: i32 = 2;
381pub const SQLITE_UTF16BE: i32 = 3;
382pub const SQLITE_UTF16: i32 = 4;
383pub const SQLITE_ANY: i32 = 5;
384pub const SQLITE_UTF16_ALIGNED: i32 = 8;
385pub const SQLITE_DETERMINISTIC: i32 = 2048;
386pub const SQLITE_DIRECTONLY: i32 = 524288;
387pub const SQLITE_SUBTYPE: i32 = 1048576;
388pub const SQLITE_INNOCUOUS: i32 = 2097152;
389pub const SQLITE_RESULT_SUBTYPE: i32 = 16777216;
390pub const SQLITE_SELFORDER1: i32 = 33554432;
391pub const SQLITE_WIN32_DATA_DIRECTORY_TYPE: i32 = 1;
392pub const SQLITE_WIN32_TEMP_DIRECTORY_TYPE: i32 = 2;
393pub const SQLITE_TXN_NONE: i32 = 0;
394pub const SQLITE_TXN_READ: i32 = 1;
395pub const SQLITE_TXN_WRITE: i32 = 2;
396pub const SQLITE_INDEX_SCAN_UNIQUE: i32 = 1;
397pub const SQLITE_INDEX_SCAN_HEX: i32 = 2;
398pub const SQLITE_INDEX_CONSTRAINT_EQ: i32 = 2;
399pub const SQLITE_INDEX_CONSTRAINT_GT: i32 = 4;
400pub const SQLITE_INDEX_CONSTRAINT_LE: i32 = 8;
401pub const SQLITE_INDEX_CONSTRAINT_LT: i32 = 16;
402pub const SQLITE_INDEX_CONSTRAINT_GE: i32 = 32;
403pub const SQLITE_INDEX_CONSTRAINT_MATCH: i32 = 64;
404pub const SQLITE_INDEX_CONSTRAINT_LIKE: i32 = 65;
405pub const SQLITE_INDEX_CONSTRAINT_GLOB: i32 = 66;
406pub const SQLITE_INDEX_CONSTRAINT_REGEXP: i32 = 67;
407pub const SQLITE_INDEX_CONSTRAINT_NE: i32 = 68;
408pub const SQLITE_INDEX_CONSTRAINT_ISNOT: i32 = 69;
409pub const SQLITE_INDEX_CONSTRAINT_ISNOTNULL: i32 = 70;
410pub const SQLITE_INDEX_CONSTRAINT_ISNULL: i32 = 71;
411pub const SQLITE_INDEX_CONSTRAINT_IS: i32 = 72;
412pub const SQLITE_INDEX_CONSTRAINT_LIMIT: i32 = 73;
413pub const SQLITE_INDEX_CONSTRAINT_OFFSET: i32 = 74;
414pub const SQLITE_INDEX_CONSTRAINT_FUNCTION: i32 = 150;
415pub const SQLITE_MUTEX_FAST: i32 = 0;
416pub const SQLITE_MUTEX_RECURSIVE: i32 = 1;
417pub const SQLITE_MUTEX_STATIC_MAIN: i32 = 2;
418pub const SQLITE_MUTEX_STATIC_MEM: i32 = 3;
419pub const SQLITE_MUTEX_STATIC_MEM2: i32 = 4;
420pub const SQLITE_MUTEX_STATIC_OPEN: i32 = 4;
421pub const SQLITE_MUTEX_STATIC_PRNG: i32 = 5;
422pub const SQLITE_MUTEX_STATIC_LRU: i32 = 6;
423pub const SQLITE_MUTEX_STATIC_LRU2: i32 = 7;
424pub const SQLITE_MUTEX_STATIC_PMEM: i32 = 7;
425pub const SQLITE_MUTEX_STATIC_APP1: i32 = 8;
426pub const SQLITE_MUTEX_STATIC_APP2: i32 = 9;
427pub const SQLITE_MUTEX_STATIC_APP3: i32 = 10;
428pub const SQLITE_MUTEX_STATIC_VFS1: i32 = 11;
429pub const SQLITE_MUTEX_STATIC_VFS2: i32 = 12;
430pub const SQLITE_MUTEX_STATIC_VFS3: i32 = 13;
431pub const SQLITE_MUTEX_STATIC_MASTER: i32 = 2;
432pub const SQLITE_TESTCTRL_FIRST: i32 = 5;
433pub const SQLITE_TESTCTRL_PRNG_SAVE: i32 = 5;
434pub const SQLITE_TESTCTRL_PRNG_RESTORE: i32 = 6;
435pub const SQLITE_TESTCTRL_PRNG_RESET: i32 = 7;
436pub const SQLITE_TESTCTRL_FK_NO_ACTION: i32 = 7;
437pub const SQLITE_TESTCTRL_BITVEC_TEST: i32 = 8;
438pub const SQLITE_TESTCTRL_FAULT_INSTALL: i32 = 9;
439pub const SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS: i32 = 10;
440pub const SQLITE_TESTCTRL_PENDING_BYTE: i32 = 11;
441pub const SQLITE_TESTCTRL_ASSERT: i32 = 12;
442pub const SQLITE_TESTCTRL_ALWAYS: i32 = 13;
443pub const SQLITE_TESTCTRL_RESERVE: i32 = 14;
444pub const SQLITE_TESTCTRL_JSON_SELFCHECK: i32 = 14;
445pub const SQLITE_TESTCTRL_OPTIMIZATIONS: i32 = 15;
446pub const SQLITE_TESTCTRL_ISKEYWORD: i32 = 16;
447pub const SQLITE_TESTCTRL_GETOPT: i32 = 16;
448pub const SQLITE_TESTCTRL_SCRATCHMALLOC: i32 = 17;
449pub const SQLITE_TESTCTRL_INTERNAL_FUNCTIONS: i32 = 17;
450pub const SQLITE_TESTCTRL_LOCALTIME_FAULT: i32 = 18;
451pub const SQLITE_TESTCTRL_EXPLAIN_STMT: i32 = 19;
452pub const SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD: i32 = 19;
453pub const SQLITE_TESTCTRL_NEVER_CORRUPT: i32 = 20;
454pub const SQLITE_TESTCTRL_VDBE_COVERAGE: i32 = 21;
455pub const SQLITE_TESTCTRL_BYTEORDER: i32 = 22;
456pub const SQLITE_TESTCTRL_ISINIT: i32 = 23;
457pub const SQLITE_TESTCTRL_SORTER_MMAP: i32 = 24;
458pub const SQLITE_TESTCTRL_IMPOSTER: i32 = 25;
459pub const SQLITE_TESTCTRL_PARSER_COVERAGE: i32 = 26;
460pub const SQLITE_TESTCTRL_RESULT_INTREAL: i32 = 27;
461pub const SQLITE_TESTCTRL_PRNG_SEED: i32 = 28;
462pub const SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS: i32 = 29;
463pub const SQLITE_TESTCTRL_SEEK_COUNT: i32 = 30;
464pub const SQLITE_TESTCTRL_TRACEFLAGS: i32 = 31;
465pub const SQLITE_TESTCTRL_TUNE: i32 = 32;
466pub const SQLITE_TESTCTRL_LOGEST: i32 = 33;
467pub const SQLITE_TESTCTRL_USELONGDOUBLE: i32 = 34;
468pub const SQLITE_TESTCTRL_LAST: i32 = 34;
469pub const SQLITE_STATUS_MEMORY_USED: i32 = 0;
470pub const SQLITE_STATUS_PAGECACHE_USED: i32 = 1;
471pub const SQLITE_STATUS_PAGECACHE_OVERFLOW: i32 = 2;
472pub const SQLITE_STATUS_SCRATCH_USED: i32 = 3;
473pub const SQLITE_STATUS_SCRATCH_OVERFLOW: i32 = 4;
474pub const SQLITE_STATUS_MALLOC_SIZE: i32 = 5;
475pub const SQLITE_STATUS_PARSER_STACK: i32 = 6;
476pub const SQLITE_STATUS_PAGECACHE_SIZE: i32 = 7;
477pub const SQLITE_STATUS_SCRATCH_SIZE: i32 = 8;
478pub const SQLITE_STATUS_MALLOC_COUNT: i32 = 9;
479pub const SQLITE_DBSTATUS_LOOKASIDE_USED: i32 = 0;
480pub const SQLITE_DBSTATUS_CACHE_USED: i32 = 1;
481pub const SQLITE_DBSTATUS_SCHEMA_USED: i32 = 2;
482pub const SQLITE_DBSTATUS_STMT_USED: i32 = 3;
483pub const SQLITE_DBSTATUS_LOOKASIDE_HIT: i32 = 4;
484pub const SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE: i32 = 5;
485pub const SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL: i32 = 6;
486pub const SQLITE_DBSTATUS_CACHE_HIT: i32 = 7;
487pub const SQLITE_DBSTATUS_CACHE_MISS: i32 = 8;
488pub const SQLITE_DBSTATUS_CACHE_WRITE: i32 = 9;
489pub const SQLITE_DBSTATUS_DEFERRED_FKS: i32 = 10;
490pub const SQLITE_DBSTATUS_CACHE_USED_SHARED: i32 = 11;
491pub const SQLITE_DBSTATUS_CACHE_SPILL: i32 = 12;
492pub const SQLITE_DBSTATUS_TEMPBUF_SPILL: i32 = 13;
493pub const SQLITE_DBSTATUS_MAX: i32 = 13;
494pub const SQLITE_STMTSTATUS_FULLSCAN_STEP: i32 = 1;
495pub const SQLITE_STMTSTATUS_SORT: i32 = 2;
496pub const SQLITE_STMTSTATUS_AUTOINDEX: i32 = 3;
497pub const SQLITE_STMTSTATUS_VM_STEP: i32 = 4;
498pub const SQLITE_STMTSTATUS_REPREPARE: i32 = 5;
499pub const SQLITE_STMTSTATUS_RUN: i32 = 6;
500pub const SQLITE_STMTSTATUS_FILTER_MISS: i32 = 7;
501pub const SQLITE_STMTSTATUS_FILTER_HIT: i32 = 8;
502pub const SQLITE_STMTSTATUS_MEMUSED: i32 = 99;
503pub const SQLITE_CHECKPOINT_NOOP: i32 = -1;
504pub const SQLITE_CHECKPOINT_PASSIVE: i32 = 0;
505pub const SQLITE_CHECKPOINT_FULL: i32 = 1;
506pub const SQLITE_CHECKPOINT_RESTART: i32 = 2;
507pub const SQLITE_CHECKPOINT_TRUNCATE: i32 = 3;
508pub const SQLITE_VTAB_CONSTRAINT_SUPPORT: i32 = 1;
509pub const SQLITE_VTAB_INNOCUOUS: i32 = 2;
510pub const SQLITE_VTAB_DIRECTONLY: i32 = 3;
511pub const SQLITE_VTAB_USES_ALL_SCHEMAS: i32 = 4;
512pub const SQLITE_ROLLBACK: i32 = 1;
513pub const SQLITE_FAIL: i32 = 3;
514pub const SQLITE_REPLACE: i32 = 5;
515pub const SQLITE_SCANSTAT_NLOOP: i32 = 0;
516pub const SQLITE_SCANSTAT_NVISIT: i32 = 1;
517pub const SQLITE_SCANSTAT_EST: i32 = 2;
518pub const SQLITE_SCANSTAT_NAME: i32 = 3;
519pub const SQLITE_SCANSTAT_EXPLAIN: i32 = 4;
520pub const SQLITE_SCANSTAT_SELECTID: i32 = 5;
521pub const SQLITE_SCANSTAT_PARENTID: i32 = 6;
522pub const SQLITE_SCANSTAT_NCYCLE: i32 = 7;
523pub const SQLITE_SCANSTAT_COMPLEX: i32 = 1;
524pub const SQLITE_SERIALIZE_NOCOPY: ::core::ffi::c_uint = 1;
525pub const SQLITE_DESERIALIZE_FREEONCLOSE: ::core::ffi::c_uint = 1;
526pub const SQLITE_DESERIALIZE_RESIZEABLE: ::core::ffi::c_uint = 2;
527pub const SQLITE_DESERIALIZE_READONLY: ::core::ffi::c_uint = 4;
528pub const SQLITE_CARRAY_INT32: i32 = 0;
529pub const SQLITE_CARRAY_INT64: i32 = 1;
530pub const SQLITE_CARRAY_DOUBLE: i32 = 2;
531pub const SQLITE_CARRAY_TEXT: i32 = 3;
532pub const SQLITE_CARRAY_BLOB: i32 = 4;
533pub const CARRAY_INT32: i32 = 0;
534pub const CARRAY_INT64: i32 = 1;
535pub const CARRAY_DOUBLE: i32 = 2;
536pub const CARRAY_TEXT: i32 = 3;
537pub const CARRAY_BLOB: i32 = 4;
538pub const NOT_WITHIN: i32 = 0;
539pub const PARTLY_WITHIN: i32 = 1;
540pub const FULLY_WITHIN: i32 = 2;
541pub const SQLITE_SESSION_OBJCONFIG_SIZE: i32 = 1;
542pub const SQLITE_SESSION_OBJCONFIG_ROWID: i32 = 2;
543pub const SQLITE_CHANGESETSTART_INVERT: i32 = 2;
544pub const SQLITE_CHANGESETAPPLY_NOSAVEPOINT: i32 = 1;
545pub const SQLITE_CHANGESETAPPLY_INVERT: i32 = 2;
546pub const SQLITE_CHANGESETAPPLY_IGNORENOOP: i32 = 4;
547pub const SQLITE_CHANGESETAPPLY_FKNOACTION: i32 = 8;
548pub const SQLITE_CHANGESET_DATA: i32 = 1;
549pub const SQLITE_CHANGESET_NOTFOUND: i32 = 2;
550pub const SQLITE_CHANGESET_CONFLICT: i32 = 3;
551pub const SQLITE_CHANGESET_CONSTRAINT: i32 = 4;
552pub const SQLITE_CHANGESET_FOREIGN_KEY: i32 = 5;
553pub const SQLITE_CHANGESET_OMIT: i32 = 0;
554pub const SQLITE_CHANGESET_REPLACE: i32 = 1;
555pub const SQLITE_CHANGESET_ABORT: i32 = 2;
556pub const SQLITE_SESSION_CONFIG_STRMSIZE: i32 = 1;
557pub const FTS5_TOKENIZE_QUERY: i32 = 1;
558pub const FTS5_TOKENIZE_PREFIX: i32 = 2;
559pub const FTS5_TOKENIZE_DOCUMENT: i32 = 4;
560pub const FTS5_TOKENIZE_AUX: i32 = 8;
561pub const FTS5_TOKEN_COLOCATED: i32 = 1;
562unsafe extern "C" {
563    pub static sqlite3_version: [::core::ffi::c_char; 0usize];
564}
565unsafe extern "C" {
566    pub fn sqlite3_libversion() -> *const ::core::ffi::c_char;
567}
568unsafe extern "C" {
569    pub fn sqlite3_sourceid() -> *const ::core::ffi::c_char;
570}
571unsafe extern "C" {
572    pub fn sqlite3_libversion_number() -> ::core::ffi::c_int;
573}
574unsafe extern "C" {
575    pub fn sqlite3_compileoption_used(
576        zOptName: *const ::core::ffi::c_char,
577    ) -> ::core::ffi::c_int;
578}
579unsafe extern "C" {
580    pub fn sqlite3_compileoption_get(
581        N: ::core::ffi::c_int,
582    ) -> *const ::core::ffi::c_char;
583}
584unsafe extern "C" {
585    pub fn sqlite3_threadsafe() -> ::core::ffi::c_int;
586}
587#[repr(C)]
588#[derive(Debug, Copy, Clone)]
589pub struct sqlite3 {
590    _unused: [u8; 0],
591}
592pub type sqlite_int64 = ::core::ffi::c_longlong;
593pub type sqlite_uint64 = ::core::ffi::c_ulonglong;
594pub type sqlite3_int64 = sqlite_int64;
595pub type sqlite3_uint64 = sqlite_uint64;
596unsafe extern "C" {
597    pub fn sqlite3_close(arg1: *mut sqlite3) -> ::core::ffi::c_int;
598}
599pub type sqlite3_callback = ::core::option::Option<
600    unsafe extern "C" fn(
601        arg1: *mut ::core::ffi::c_void,
602        arg2: ::core::ffi::c_int,
603        arg3: *mut *mut ::core::ffi::c_char,
604        arg4: *mut *mut ::core::ffi::c_char,
605    ) -> ::core::ffi::c_int,
606>;
607unsafe extern "C" {
608    pub fn sqlite3_exec(
609        arg1: *mut sqlite3,
610        sql: *const ::core::ffi::c_char,
611        callback: ::core::option::Option<
612            unsafe extern "C" fn(
613                arg1: *mut ::core::ffi::c_void,
614                arg2: ::core::ffi::c_int,
615                arg3: *mut *mut ::core::ffi::c_char,
616                arg4: *mut *mut ::core::ffi::c_char,
617            ) -> ::core::ffi::c_int,
618        >,
619        arg2: *mut ::core::ffi::c_void,
620        errmsg: *mut *mut ::core::ffi::c_char,
621    ) -> ::core::ffi::c_int;
622}
623#[repr(C)]
624#[derive(Debug, Copy, Clone)]
625pub struct sqlite3_file {
626    pub pMethods: *const sqlite3_io_methods,
627}
628#[repr(C)]
629#[derive(Debug, Copy, Clone)]
630pub struct sqlite3_io_methods {
631    pub iVersion: ::core::ffi::c_int,
632    pub xClose: ::core::option::Option<
633        unsafe extern "C" fn(arg1: *mut sqlite3_file) -> ::core::ffi::c_int,
634    >,
635    pub xRead: ::core::option::Option<
636        unsafe extern "C" fn(
637            arg1: *mut sqlite3_file,
638            arg2: *mut ::core::ffi::c_void,
639            iAmt: ::core::ffi::c_int,
640            iOfst: sqlite3_int64,
641        ) -> ::core::ffi::c_int,
642    >,
643    pub xWrite: ::core::option::Option<
644        unsafe extern "C" fn(
645            arg1: *mut sqlite3_file,
646            arg2: *const ::core::ffi::c_void,
647            iAmt: ::core::ffi::c_int,
648            iOfst: sqlite3_int64,
649        ) -> ::core::ffi::c_int,
650    >,
651    pub xTruncate: ::core::option::Option<
652        unsafe extern "C" fn(
653            arg1: *mut sqlite3_file,
654            size: sqlite3_int64,
655        ) -> ::core::ffi::c_int,
656    >,
657    pub xSync: ::core::option::Option<
658        unsafe extern "C" fn(
659            arg1: *mut sqlite3_file,
660            flags: ::core::ffi::c_int,
661        ) -> ::core::ffi::c_int,
662    >,
663    pub xFileSize: ::core::option::Option<
664        unsafe extern "C" fn(
665            arg1: *mut sqlite3_file,
666            pSize: *mut sqlite3_int64,
667        ) -> ::core::ffi::c_int,
668    >,
669    pub xLock: ::core::option::Option<
670        unsafe extern "C" fn(
671            arg1: *mut sqlite3_file,
672            arg2: ::core::ffi::c_int,
673        ) -> ::core::ffi::c_int,
674    >,
675    pub xUnlock: ::core::option::Option<
676        unsafe extern "C" fn(
677            arg1: *mut sqlite3_file,
678            arg2: ::core::ffi::c_int,
679        ) -> ::core::ffi::c_int,
680    >,
681    pub xCheckReservedLock: ::core::option::Option<
682        unsafe extern "C" fn(
683            arg1: *mut sqlite3_file,
684            pResOut: *mut ::core::ffi::c_int,
685        ) -> ::core::ffi::c_int,
686    >,
687    pub xFileControl: ::core::option::Option<
688        unsafe extern "C" fn(
689            arg1: *mut sqlite3_file,
690            op: ::core::ffi::c_int,
691            pArg: *mut ::core::ffi::c_void,
692        ) -> ::core::ffi::c_int,
693    >,
694    pub xSectorSize: ::core::option::Option<
695        unsafe extern "C" fn(arg1: *mut sqlite3_file) -> ::core::ffi::c_int,
696    >,
697    pub xDeviceCharacteristics: ::core::option::Option<
698        unsafe extern "C" fn(arg1: *mut sqlite3_file) -> ::core::ffi::c_int,
699    >,
700    pub xShmMap: ::core::option::Option<
701        unsafe extern "C" fn(
702            arg1: *mut sqlite3_file,
703            iPg: ::core::ffi::c_int,
704            pgsz: ::core::ffi::c_int,
705            arg2: ::core::ffi::c_int,
706            arg3: *mut *mut ::core::ffi::c_void,
707        ) -> ::core::ffi::c_int,
708    >,
709    pub xShmLock: ::core::option::Option<
710        unsafe extern "C" fn(
711            arg1: *mut sqlite3_file,
712            offset: ::core::ffi::c_int,
713            n: ::core::ffi::c_int,
714            flags: ::core::ffi::c_int,
715        ) -> ::core::ffi::c_int,
716    >,
717    pub xShmBarrier: ::core::option::Option<
718        unsafe extern "C" fn(arg1: *mut sqlite3_file),
719    >,
720    pub xShmUnmap: ::core::option::Option<
721        unsafe extern "C" fn(
722            arg1: *mut sqlite3_file,
723            deleteFlag: ::core::ffi::c_int,
724        ) -> ::core::ffi::c_int,
725    >,
726    pub xFetch: ::core::option::Option<
727        unsafe extern "C" fn(
728            arg1: *mut sqlite3_file,
729            iOfst: sqlite3_int64,
730            iAmt: ::core::ffi::c_int,
731            pp: *mut *mut ::core::ffi::c_void,
732        ) -> ::core::ffi::c_int,
733    >,
734    pub xUnfetch: ::core::option::Option<
735        unsafe extern "C" fn(
736            arg1: *mut sqlite3_file,
737            iOfst: sqlite3_int64,
738            p: *mut ::core::ffi::c_void,
739        ) -> ::core::ffi::c_int,
740    >,
741}
742#[repr(C)]
743#[derive(Debug, Copy, Clone)]
744pub struct sqlite3_mutex {
745    _unused: [u8; 0],
746}
747#[repr(C)]
748#[derive(Debug, Copy, Clone)]
749pub struct sqlite3_api_routines {
750    _unused: [u8; 0],
751}
752pub type sqlite3_filename = *const ::core::ffi::c_char;
753pub type sqlite3_syscall_ptr = ::core::option::Option<unsafe extern "C" fn()>;
754#[repr(C)]
755#[derive(Debug, Copy, Clone)]
756pub struct sqlite3_vfs {
757    pub iVersion: ::core::ffi::c_int,
758    pub szOsFile: ::core::ffi::c_int,
759    pub mxPathname: ::core::ffi::c_int,
760    pub pNext: *mut sqlite3_vfs,
761    pub zName: *const ::core::ffi::c_char,
762    pub pAppData: *mut ::core::ffi::c_void,
763    pub xOpen: ::core::option::Option<
764        unsafe extern "C" fn(
765            arg1: *mut sqlite3_vfs,
766            zName: sqlite3_filename,
767            arg2: *mut sqlite3_file,
768            flags: ::core::ffi::c_int,
769            pOutFlags: *mut ::core::ffi::c_int,
770        ) -> ::core::ffi::c_int,
771    >,
772    pub xDelete: ::core::option::Option<
773        unsafe extern "C" fn(
774            arg1: *mut sqlite3_vfs,
775            zName: *const ::core::ffi::c_char,
776            syncDir: ::core::ffi::c_int,
777        ) -> ::core::ffi::c_int,
778    >,
779    pub xAccess: ::core::option::Option<
780        unsafe extern "C" fn(
781            arg1: *mut sqlite3_vfs,
782            zName: *const ::core::ffi::c_char,
783            flags: ::core::ffi::c_int,
784            pResOut: *mut ::core::ffi::c_int,
785        ) -> ::core::ffi::c_int,
786    >,
787    pub xFullPathname: ::core::option::Option<
788        unsafe extern "C" fn(
789            arg1: *mut sqlite3_vfs,
790            zName: *const ::core::ffi::c_char,
791            nOut: ::core::ffi::c_int,
792            zOut: *mut ::core::ffi::c_char,
793        ) -> ::core::ffi::c_int,
794    >,
795    pub xDlOpen: ::core::option::Option<
796        unsafe extern "C" fn(
797            arg1: *mut sqlite3_vfs,
798            zFilename: *const ::core::ffi::c_char,
799        ) -> *mut ::core::ffi::c_void,
800    >,
801    pub xDlError: ::core::option::Option<
802        unsafe extern "C" fn(
803            arg1: *mut sqlite3_vfs,
804            nByte: ::core::ffi::c_int,
805            zErrMsg: *mut ::core::ffi::c_char,
806        ),
807    >,
808    pub xDlSym: ::core::option::Option<
809        unsafe extern "C" fn(
810            arg1: *mut sqlite3_vfs,
811            arg2: *mut ::core::ffi::c_void,
812            zSymbol: *const ::core::ffi::c_char,
813        ) -> ::core::option::Option<
814            unsafe extern "C" fn(
815                arg1: *mut sqlite3_vfs,
816                arg2: *mut ::core::ffi::c_void,
817                zSymbol: *const ::core::ffi::c_char,
818            ),
819        >,
820    >,
821    pub xDlClose: ::core::option::Option<
822        unsafe extern "C" fn(arg1: *mut sqlite3_vfs, arg2: *mut ::core::ffi::c_void),
823    >,
824    pub xRandomness: ::core::option::Option<
825        unsafe extern "C" fn(
826            arg1: *mut sqlite3_vfs,
827            nByte: ::core::ffi::c_int,
828            zOut: *mut ::core::ffi::c_char,
829        ) -> ::core::ffi::c_int,
830    >,
831    pub xSleep: ::core::option::Option<
832        unsafe extern "C" fn(
833            arg1: *mut sqlite3_vfs,
834            microseconds: ::core::ffi::c_int,
835        ) -> ::core::ffi::c_int,
836    >,
837    pub xCurrentTime: ::core::option::Option<
838        unsafe extern "C" fn(
839            arg1: *mut sqlite3_vfs,
840            arg2: *mut f64,
841        ) -> ::core::ffi::c_int,
842    >,
843    pub xGetLastError: ::core::option::Option<
844        unsafe extern "C" fn(
845            arg1: *mut sqlite3_vfs,
846            arg2: ::core::ffi::c_int,
847            arg3: *mut ::core::ffi::c_char,
848        ) -> ::core::ffi::c_int,
849    >,
850    pub xCurrentTimeInt64: ::core::option::Option<
851        unsafe extern "C" fn(
852            arg1: *mut sqlite3_vfs,
853            arg2: *mut sqlite3_int64,
854        ) -> ::core::ffi::c_int,
855    >,
856    pub xSetSystemCall: ::core::option::Option<
857        unsafe extern "C" fn(
858            arg1: *mut sqlite3_vfs,
859            zName: *const ::core::ffi::c_char,
860            arg2: sqlite3_syscall_ptr,
861        ) -> ::core::ffi::c_int,
862    >,
863    pub xGetSystemCall: ::core::option::Option<
864        unsafe extern "C" fn(
865            arg1: *mut sqlite3_vfs,
866            zName: *const ::core::ffi::c_char,
867        ) -> sqlite3_syscall_ptr,
868    >,
869    pub xNextSystemCall: ::core::option::Option<
870        unsafe extern "C" fn(
871            arg1: *mut sqlite3_vfs,
872            zName: *const ::core::ffi::c_char,
873        ) -> *const ::core::ffi::c_char,
874    >,
875}
876unsafe extern "C" {
877    pub fn sqlite3_initialize() -> ::core::ffi::c_int;
878}
879unsafe extern "C" {
880    pub fn sqlite3_shutdown() -> ::core::ffi::c_int;
881}
882unsafe extern "C" {
883    pub fn sqlite3_os_init() -> ::core::ffi::c_int;
884}
885unsafe extern "C" {
886    pub fn sqlite3_os_end() -> ::core::ffi::c_int;
887}
888unsafe extern "C" {
889    pub fn sqlite3_config(arg1: ::core::ffi::c_int, ...) -> ::core::ffi::c_int;
890}
891unsafe extern "C" {
892    pub fn sqlite3_db_config(
893        arg1: *mut sqlite3,
894        op: ::core::ffi::c_int,
895        ...
896    ) -> ::core::ffi::c_int;
897}
898#[repr(C)]
899#[derive(Debug, Copy, Clone)]
900pub struct sqlite3_mem_methods {
901    pub xMalloc: ::core::option::Option<
902        unsafe extern "C" fn(arg1: ::core::ffi::c_int) -> *mut ::core::ffi::c_void,
903    >,
904    pub xFree: ::core::option::Option<
905        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
906    >,
907    pub xRealloc: ::core::option::Option<
908        unsafe extern "C" fn(
909            arg1: *mut ::core::ffi::c_void,
910            arg2: ::core::ffi::c_int,
911        ) -> *mut ::core::ffi::c_void,
912    >,
913    pub xSize: ::core::option::Option<
914        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
915    >,
916    pub xRoundup: ::core::option::Option<
917        unsafe extern "C" fn(arg1: ::core::ffi::c_int) -> ::core::ffi::c_int,
918    >,
919    pub xInit: ::core::option::Option<
920        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
921    >,
922    pub xShutdown: ::core::option::Option<
923        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
924    >,
925    pub pAppData: *mut ::core::ffi::c_void,
926}
927unsafe extern "C" {
928    pub fn sqlite3_extended_result_codes(
929        arg1: *mut sqlite3,
930        onoff: ::core::ffi::c_int,
931    ) -> ::core::ffi::c_int;
932}
933unsafe extern "C" {
934    pub fn sqlite3_last_insert_rowid(arg1: *mut sqlite3) -> sqlite3_int64;
935}
936unsafe extern "C" {
937    pub fn sqlite3_set_last_insert_rowid(arg1: *mut sqlite3, arg2: sqlite3_int64);
938}
939unsafe extern "C" {
940    pub fn sqlite3_changes(arg1: *mut sqlite3) -> ::core::ffi::c_int;
941}
942unsafe extern "C" {
943    pub fn sqlite3_changes64(arg1: *mut sqlite3) -> sqlite3_int64;
944}
945unsafe extern "C" {
946    pub fn sqlite3_total_changes(arg1: *mut sqlite3) -> ::core::ffi::c_int;
947}
948unsafe extern "C" {
949    pub fn sqlite3_total_changes64(arg1: *mut sqlite3) -> sqlite3_int64;
950}
951unsafe extern "C" {
952    pub fn sqlite3_interrupt(arg1: *mut sqlite3);
953}
954unsafe extern "C" {
955    pub fn sqlite3_is_interrupted(arg1: *mut sqlite3) -> ::core::ffi::c_int;
956}
957unsafe extern "C" {
958    pub fn sqlite3_complete(sql: *const ::core::ffi::c_char) -> ::core::ffi::c_int;
959}
960unsafe extern "C" {
961    pub fn sqlite3_busy_handler(
962        arg1: *mut sqlite3,
963        arg2: ::core::option::Option<
964            unsafe extern "C" fn(
965                arg1: *mut ::core::ffi::c_void,
966                arg2: ::core::ffi::c_int,
967            ) -> ::core::ffi::c_int,
968        >,
969        arg3: *mut ::core::ffi::c_void,
970    ) -> ::core::ffi::c_int;
971}
972unsafe extern "C" {
973    pub fn sqlite3_busy_timeout(
974        arg1: *mut sqlite3,
975        ms: ::core::ffi::c_int,
976    ) -> ::core::ffi::c_int;
977}
978unsafe extern "C" {
979    pub fn sqlite3_setlk_timeout(
980        arg1: *mut sqlite3,
981        ms: ::core::ffi::c_int,
982        flags: ::core::ffi::c_int,
983    ) -> ::core::ffi::c_int;
984}
985unsafe extern "C" {
986    pub fn sqlite3_get_table(
987        db: *mut sqlite3,
988        zSql: *const ::core::ffi::c_char,
989        pazResult: *mut *mut *mut ::core::ffi::c_char,
990        pnRow: *mut ::core::ffi::c_int,
991        pnColumn: *mut ::core::ffi::c_int,
992        pzErrmsg: *mut *mut ::core::ffi::c_char,
993    ) -> ::core::ffi::c_int;
994}
995unsafe extern "C" {
996    pub fn sqlite3_free_table(result: *mut *mut ::core::ffi::c_char);
997}
998unsafe extern "C" {
999    pub fn sqlite3_mprintf(
1000        arg1: *const ::core::ffi::c_char,
1001        ...
1002    ) -> *mut ::core::ffi::c_char;
1003}
1004unsafe extern "C" {
1005    pub fn sqlite3_snprintf(
1006        arg1: ::core::ffi::c_int,
1007        arg2: *mut ::core::ffi::c_char,
1008        arg3: *const ::core::ffi::c_char,
1009        ...
1010    ) -> *mut ::core::ffi::c_char;
1011}
1012unsafe extern "C" {
1013    pub fn sqlite3_malloc(arg1: ::core::ffi::c_int) -> *mut ::core::ffi::c_void;
1014}
1015unsafe extern "C" {
1016    pub fn sqlite3_malloc64(arg1: sqlite3_uint64) -> *mut ::core::ffi::c_void;
1017}
1018unsafe extern "C" {
1019    pub fn sqlite3_realloc(
1020        arg1: *mut ::core::ffi::c_void,
1021        arg2: ::core::ffi::c_int,
1022    ) -> *mut ::core::ffi::c_void;
1023}
1024unsafe extern "C" {
1025    pub fn sqlite3_realloc64(
1026        arg1: *mut ::core::ffi::c_void,
1027        arg2: sqlite3_uint64,
1028    ) -> *mut ::core::ffi::c_void;
1029}
1030unsafe extern "C" {
1031    pub fn sqlite3_free(arg1: *mut ::core::ffi::c_void);
1032}
1033unsafe extern "C" {
1034    pub fn sqlite3_msize(arg1: *mut ::core::ffi::c_void) -> sqlite3_uint64;
1035}
1036unsafe extern "C" {
1037    pub fn sqlite3_memory_used() -> sqlite3_int64;
1038}
1039unsafe extern "C" {
1040    pub fn sqlite3_memory_highwater(resetFlag: ::core::ffi::c_int) -> sqlite3_int64;
1041}
1042unsafe extern "C" {
1043    pub fn sqlite3_randomness(N: ::core::ffi::c_int, P: *mut ::core::ffi::c_void);
1044}
1045unsafe extern "C" {
1046    pub fn sqlite3_set_authorizer(
1047        arg1: *mut sqlite3,
1048        xAuth: ::core::option::Option<
1049            unsafe extern "C" fn(
1050                arg1: *mut ::core::ffi::c_void,
1051                arg2: ::core::ffi::c_int,
1052                arg3: *const ::core::ffi::c_char,
1053                arg4: *const ::core::ffi::c_char,
1054                arg5: *const ::core::ffi::c_char,
1055                arg6: *const ::core::ffi::c_char,
1056            ) -> ::core::ffi::c_int,
1057        >,
1058        pUserData: *mut ::core::ffi::c_void,
1059    ) -> ::core::ffi::c_int;
1060}
1061unsafe extern "C" {
1062    pub fn sqlite3_trace_v2(
1063        arg1: *mut sqlite3,
1064        uMask: ::core::ffi::c_uint,
1065        xCallback: ::core::option::Option<
1066            unsafe extern "C" fn(
1067                arg1: ::core::ffi::c_uint,
1068                arg2: *mut ::core::ffi::c_void,
1069                arg3: *mut ::core::ffi::c_void,
1070                arg4: *mut ::core::ffi::c_void,
1071            ) -> ::core::ffi::c_int,
1072        >,
1073        pCtx: *mut ::core::ffi::c_void,
1074    ) -> ::core::ffi::c_int;
1075}
1076unsafe extern "C" {
1077    pub fn sqlite3_progress_handler(
1078        arg1: *mut sqlite3,
1079        arg2: ::core::ffi::c_int,
1080        arg3: ::core::option::Option<
1081            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
1082        >,
1083        arg4: *mut ::core::ffi::c_void,
1084    );
1085}
1086unsafe extern "C" {
1087    pub fn sqlite3_open(
1088        filename: *const ::core::ffi::c_char,
1089        ppDb: *mut *mut sqlite3,
1090    ) -> ::core::ffi::c_int;
1091}
1092unsafe extern "C" {
1093    pub fn sqlite3_open_v2(
1094        filename: *const ::core::ffi::c_char,
1095        ppDb: *mut *mut sqlite3,
1096        flags: ::core::ffi::c_int,
1097        zVfs: *const ::core::ffi::c_char,
1098    ) -> ::core::ffi::c_int;
1099}
1100unsafe extern "C" {
1101    pub fn sqlite3_uri_parameter(
1102        z: sqlite3_filename,
1103        zParam: *const ::core::ffi::c_char,
1104    ) -> *const ::core::ffi::c_char;
1105}
1106unsafe extern "C" {
1107    pub fn sqlite3_uri_boolean(
1108        z: sqlite3_filename,
1109        zParam: *const ::core::ffi::c_char,
1110        bDefault: ::core::ffi::c_int,
1111    ) -> ::core::ffi::c_int;
1112}
1113unsafe extern "C" {
1114    pub fn sqlite3_uri_int64(
1115        arg1: sqlite3_filename,
1116        arg2: *const ::core::ffi::c_char,
1117        arg3: sqlite3_int64,
1118    ) -> sqlite3_int64;
1119}
1120unsafe extern "C" {
1121    pub fn sqlite3_uri_key(
1122        z: sqlite3_filename,
1123        N: ::core::ffi::c_int,
1124    ) -> *const ::core::ffi::c_char;
1125}
1126unsafe extern "C" {
1127    pub fn sqlite3_filename_database(
1128        arg1: sqlite3_filename,
1129    ) -> *const ::core::ffi::c_char;
1130}
1131unsafe extern "C" {
1132    pub fn sqlite3_filename_journal(
1133        arg1: sqlite3_filename,
1134    ) -> *const ::core::ffi::c_char;
1135}
1136unsafe extern "C" {
1137    pub fn sqlite3_filename_wal(arg1: sqlite3_filename) -> *const ::core::ffi::c_char;
1138}
1139unsafe extern "C" {
1140    pub fn sqlite3_database_file_object(
1141        arg1: *const ::core::ffi::c_char,
1142    ) -> *mut sqlite3_file;
1143}
1144unsafe extern "C" {
1145    pub fn sqlite3_create_filename(
1146        zDatabase: *const ::core::ffi::c_char,
1147        zJournal: *const ::core::ffi::c_char,
1148        zWal: *const ::core::ffi::c_char,
1149        nParam: ::core::ffi::c_int,
1150        azParam: *mut *const ::core::ffi::c_char,
1151    ) -> sqlite3_filename;
1152}
1153unsafe extern "C" {
1154    pub fn sqlite3_free_filename(arg1: sqlite3_filename);
1155}
1156unsafe extern "C" {
1157    pub fn sqlite3_errcode(db: *mut sqlite3) -> ::core::ffi::c_int;
1158}
1159unsafe extern "C" {
1160    pub fn sqlite3_extended_errcode(db: *mut sqlite3) -> ::core::ffi::c_int;
1161}
1162unsafe extern "C" {
1163    pub fn sqlite3_errmsg(arg1: *mut sqlite3) -> *const ::core::ffi::c_char;
1164}
1165unsafe extern "C" {
1166    pub fn sqlite3_errstr(arg1: ::core::ffi::c_int) -> *const ::core::ffi::c_char;
1167}
1168unsafe extern "C" {
1169    pub fn sqlite3_error_offset(db: *mut sqlite3) -> ::core::ffi::c_int;
1170}
1171unsafe extern "C" {
1172    pub fn sqlite3_set_errmsg(
1173        db: *mut sqlite3,
1174        errcode: ::core::ffi::c_int,
1175        zErrMsg: *const ::core::ffi::c_char,
1176    ) -> ::core::ffi::c_int;
1177}
1178#[repr(C)]
1179#[derive(Debug, Copy, Clone)]
1180pub struct sqlite3_stmt {
1181    _unused: [u8; 0],
1182}
1183unsafe extern "C" {
1184    pub fn sqlite3_limit(
1185        arg1: *mut sqlite3,
1186        id: ::core::ffi::c_int,
1187        newVal: ::core::ffi::c_int,
1188    ) -> ::core::ffi::c_int;
1189}
1190unsafe extern "C" {
1191    pub fn sqlite3_prepare_v2(
1192        db: *mut sqlite3,
1193        zSql: *const ::core::ffi::c_char,
1194        nByte: ::core::ffi::c_int,
1195        ppStmt: *mut *mut sqlite3_stmt,
1196        pzTail: *mut *const ::core::ffi::c_char,
1197    ) -> ::core::ffi::c_int;
1198}
1199unsafe extern "C" {
1200    pub fn sqlite3_prepare_v3(
1201        db: *mut sqlite3,
1202        zSql: *const ::core::ffi::c_char,
1203        nByte: ::core::ffi::c_int,
1204        prepFlags: ::core::ffi::c_uint,
1205        ppStmt: *mut *mut sqlite3_stmt,
1206        pzTail: *mut *const ::core::ffi::c_char,
1207    ) -> ::core::ffi::c_int;
1208}
1209unsafe extern "C" {
1210    pub fn sqlite3_sql(pStmt: *mut sqlite3_stmt) -> *const ::core::ffi::c_char;
1211}
1212unsafe extern "C" {
1213    pub fn sqlite3_expanded_sql(pStmt: *mut sqlite3_stmt) -> *mut ::core::ffi::c_char;
1214}
1215unsafe extern "C" {
1216    pub fn sqlite3_stmt_readonly(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1217}
1218unsafe extern "C" {
1219    pub fn sqlite3_stmt_isexplain(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1220}
1221unsafe extern "C" {
1222    pub fn sqlite3_stmt_explain(
1223        pStmt: *mut sqlite3_stmt,
1224        eMode: ::core::ffi::c_int,
1225    ) -> ::core::ffi::c_int;
1226}
1227unsafe extern "C" {
1228    pub fn sqlite3_stmt_busy(arg1: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1229}
1230#[repr(C)]
1231#[derive(Debug, Copy, Clone)]
1232pub struct sqlite3_value {
1233    _unused: [u8; 0],
1234}
1235#[repr(C)]
1236#[derive(Debug, Copy, Clone)]
1237pub struct sqlite3_context {
1238    _unused: [u8; 0],
1239}
1240unsafe extern "C" {
1241    pub fn sqlite3_bind_blob(
1242        arg1: *mut sqlite3_stmt,
1243        arg2: ::core::ffi::c_int,
1244        arg3: *const ::core::ffi::c_void,
1245        n: ::core::ffi::c_int,
1246        arg4: ::core::option::Option<
1247            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1248        >,
1249    ) -> ::core::ffi::c_int;
1250}
1251unsafe extern "C" {
1252    pub fn sqlite3_bind_blob64(
1253        arg1: *mut sqlite3_stmt,
1254        arg2: ::core::ffi::c_int,
1255        arg3: *const ::core::ffi::c_void,
1256        arg4: sqlite3_uint64,
1257        arg5: ::core::option::Option<
1258            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1259        >,
1260    ) -> ::core::ffi::c_int;
1261}
1262unsafe extern "C" {
1263    pub fn sqlite3_bind_double(
1264        arg1: *mut sqlite3_stmt,
1265        arg2: ::core::ffi::c_int,
1266        arg3: f64,
1267    ) -> ::core::ffi::c_int;
1268}
1269unsafe extern "C" {
1270    pub fn sqlite3_bind_int(
1271        arg1: *mut sqlite3_stmt,
1272        arg2: ::core::ffi::c_int,
1273        arg3: ::core::ffi::c_int,
1274    ) -> ::core::ffi::c_int;
1275}
1276unsafe extern "C" {
1277    pub fn sqlite3_bind_int64(
1278        arg1: *mut sqlite3_stmt,
1279        arg2: ::core::ffi::c_int,
1280        arg3: sqlite3_int64,
1281    ) -> ::core::ffi::c_int;
1282}
1283unsafe extern "C" {
1284    pub fn sqlite3_bind_null(
1285        arg1: *mut sqlite3_stmt,
1286        arg2: ::core::ffi::c_int,
1287    ) -> ::core::ffi::c_int;
1288}
1289unsafe extern "C" {
1290    pub fn sqlite3_bind_text(
1291        arg1: *mut sqlite3_stmt,
1292        arg2: ::core::ffi::c_int,
1293        arg3: *const ::core::ffi::c_char,
1294        arg4: ::core::ffi::c_int,
1295        arg5: ::core::option::Option<
1296            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1297        >,
1298    ) -> ::core::ffi::c_int;
1299}
1300unsafe extern "C" {
1301    pub fn sqlite3_bind_text64(
1302        arg1: *mut sqlite3_stmt,
1303        arg2: ::core::ffi::c_int,
1304        arg3: *const ::core::ffi::c_char,
1305        arg4: sqlite3_uint64,
1306        arg5: ::core::option::Option<
1307            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1308        >,
1309        encoding: ::core::ffi::c_uchar,
1310    ) -> ::core::ffi::c_int;
1311}
1312unsafe extern "C" {
1313    pub fn sqlite3_bind_value(
1314        arg1: *mut sqlite3_stmt,
1315        arg2: ::core::ffi::c_int,
1316        arg3: *const sqlite3_value,
1317    ) -> ::core::ffi::c_int;
1318}
1319unsafe extern "C" {
1320    pub fn sqlite3_bind_pointer(
1321        arg1: *mut sqlite3_stmt,
1322        arg2: ::core::ffi::c_int,
1323        arg3: *mut ::core::ffi::c_void,
1324        arg4: *const ::core::ffi::c_char,
1325        arg5: ::core::option::Option<
1326            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1327        >,
1328    ) -> ::core::ffi::c_int;
1329}
1330unsafe extern "C" {
1331    pub fn sqlite3_bind_zeroblob(
1332        arg1: *mut sqlite3_stmt,
1333        arg2: ::core::ffi::c_int,
1334        n: ::core::ffi::c_int,
1335    ) -> ::core::ffi::c_int;
1336}
1337unsafe extern "C" {
1338    pub fn sqlite3_bind_zeroblob64(
1339        arg1: *mut sqlite3_stmt,
1340        arg2: ::core::ffi::c_int,
1341        arg3: sqlite3_uint64,
1342    ) -> ::core::ffi::c_int;
1343}
1344unsafe extern "C" {
1345    pub fn sqlite3_bind_parameter_count(arg1: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1346}
1347unsafe extern "C" {
1348    pub fn sqlite3_bind_parameter_name(
1349        arg1: *mut sqlite3_stmt,
1350        arg2: ::core::ffi::c_int,
1351    ) -> *const ::core::ffi::c_char;
1352}
1353unsafe extern "C" {
1354    pub fn sqlite3_bind_parameter_index(
1355        arg1: *mut sqlite3_stmt,
1356        zName: *const ::core::ffi::c_char,
1357    ) -> ::core::ffi::c_int;
1358}
1359unsafe extern "C" {
1360    pub fn sqlite3_clear_bindings(arg1: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1361}
1362unsafe extern "C" {
1363    pub fn sqlite3_column_count(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1364}
1365unsafe extern "C" {
1366    pub fn sqlite3_column_name(
1367        arg1: *mut sqlite3_stmt,
1368        N: ::core::ffi::c_int,
1369    ) -> *const ::core::ffi::c_char;
1370}
1371unsafe extern "C" {
1372    pub fn sqlite3_column_database_name(
1373        arg1: *mut sqlite3_stmt,
1374        arg2: ::core::ffi::c_int,
1375    ) -> *const ::core::ffi::c_char;
1376}
1377unsafe extern "C" {
1378    pub fn sqlite3_column_table_name(
1379        arg1: *mut sqlite3_stmt,
1380        arg2: ::core::ffi::c_int,
1381    ) -> *const ::core::ffi::c_char;
1382}
1383unsafe extern "C" {
1384    pub fn sqlite3_column_origin_name(
1385        arg1: *mut sqlite3_stmt,
1386        arg2: ::core::ffi::c_int,
1387    ) -> *const ::core::ffi::c_char;
1388}
1389unsafe extern "C" {
1390    pub fn sqlite3_column_decltype(
1391        arg1: *mut sqlite3_stmt,
1392        arg2: ::core::ffi::c_int,
1393    ) -> *const ::core::ffi::c_char;
1394}
1395unsafe extern "C" {
1396    pub fn sqlite3_step(arg1: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1397}
1398unsafe extern "C" {
1399    pub fn sqlite3_data_count(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1400}
1401unsafe extern "C" {
1402    pub fn sqlite3_column_blob(
1403        arg1: *mut sqlite3_stmt,
1404        iCol: ::core::ffi::c_int,
1405    ) -> *const ::core::ffi::c_void;
1406}
1407unsafe extern "C" {
1408    pub fn sqlite3_column_double(
1409        arg1: *mut sqlite3_stmt,
1410        iCol: ::core::ffi::c_int,
1411    ) -> f64;
1412}
1413unsafe extern "C" {
1414    pub fn sqlite3_column_int(
1415        arg1: *mut sqlite3_stmt,
1416        iCol: ::core::ffi::c_int,
1417    ) -> ::core::ffi::c_int;
1418}
1419unsafe extern "C" {
1420    pub fn sqlite3_column_int64(
1421        arg1: *mut sqlite3_stmt,
1422        iCol: ::core::ffi::c_int,
1423    ) -> sqlite3_int64;
1424}
1425unsafe extern "C" {
1426    pub fn sqlite3_column_text(
1427        arg1: *mut sqlite3_stmt,
1428        iCol: ::core::ffi::c_int,
1429    ) -> *const ::core::ffi::c_uchar;
1430}
1431unsafe extern "C" {
1432    pub fn sqlite3_column_value(
1433        arg1: *mut sqlite3_stmt,
1434        iCol: ::core::ffi::c_int,
1435    ) -> *mut sqlite3_value;
1436}
1437unsafe extern "C" {
1438    pub fn sqlite3_column_bytes(
1439        arg1: *mut sqlite3_stmt,
1440        iCol: ::core::ffi::c_int,
1441    ) -> ::core::ffi::c_int;
1442}
1443unsafe extern "C" {
1444    pub fn sqlite3_column_type(
1445        arg1: *mut sqlite3_stmt,
1446        iCol: ::core::ffi::c_int,
1447    ) -> ::core::ffi::c_int;
1448}
1449unsafe extern "C" {
1450    pub fn sqlite3_finalize(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1451}
1452unsafe extern "C" {
1453    pub fn sqlite3_reset(pStmt: *mut sqlite3_stmt) -> ::core::ffi::c_int;
1454}
1455unsafe extern "C" {
1456    pub fn sqlite3_create_function_v2(
1457        db: *mut sqlite3,
1458        zFunctionName: *const ::core::ffi::c_char,
1459        nArg: ::core::ffi::c_int,
1460        eTextRep: ::core::ffi::c_int,
1461        pApp: *mut ::core::ffi::c_void,
1462        xFunc: ::core::option::Option<
1463            unsafe extern "C" fn(
1464                arg1: *mut sqlite3_context,
1465                arg2: ::core::ffi::c_int,
1466                arg3: *mut *mut sqlite3_value,
1467            ),
1468        >,
1469        xStep: ::core::option::Option<
1470            unsafe extern "C" fn(
1471                arg1: *mut sqlite3_context,
1472                arg2: ::core::ffi::c_int,
1473                arg3: *mut *mut sqlite3_value,
1474            ),
1475        >,
1476        xFinal: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
1477        xDestroy: ::core::option::Option<
1478            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1479        >,
1480    ) -> ::core::ffi::c_int;
1481}
1482unsafe extern "C" {
1483    pub fn sqlite3_create_window_function(
1484        db: *mut sqlite3,
1485        zFunctionName: *const ::core::ffi::c_char,
1486        nArg: ::core::ffi::c_int,
1487        eTextRep: ::core::ffi::c_int,
1488        pApp: *mut ::core::ffi::c_void,
1489        xStep: ::core::option::Option<
1490            unsafe extern "C" fn(
1491                arg1: *mut sqlite3_context,
1492                arg2: ::core::ffi::c_int,
1493                arg3: *mut *mut sqlite3_value,
1494            ),
1495        >,
1496        xFinal: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
1497        xValue: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_context)>,
1498        xInverse: ::core::option::Option<
1499            unsafe extern "C" fn(
1500                arg1: *mut sqlite3_context,
1501                arg2: ::core::ffi::c_int,
1502                arg3: *mut *mut sqlite3_value,
1503            ),
1504        >,
1505        xDestroy: ::core::option::Option<
1506            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1507        >,
1508    ) -> ::core::ffi::c_int;
1509}
1510unsafe extern "C" {
1511    pub fn sqlite3_value_blob(arg1: *mut sqlite3_value) -> *const ::core::ffi::c_void;
1512}
1513unsafe extern "C" {
1514    pub fn sqlite3_value_double(arg1: *mut sqlite3_value) -> f64;
1515}
1516unsafe extern "C" {
1517    pub fn sqlite3_value_int(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
1518}
1519unsafe extern "C" {
1520    pub fn sqlite3_value_int64(arg1: *mut sqlite3_value) -> sqlite3_int64;
1521}
1522unsafe extern "C" {
1523    pub fn sqlite3_value_pointer(
1524        arg1: *mut sqlite3_value,
1525        arg2: *const ::core::ffi::c_char,
1526    ) -> *mut ::core::ffi::c_void;
1527}
1528unsafe extern "C" {
1529    pub fn sqlite3_value_text(arg1: *mut sqlite3_value) -> *const ::core::ffi::c_uchar;
1530}
1531unsafe extern "C" {
1532    pub fn sqlite3_value_bytes(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
1533}
1534unsafe extern "C" {
1535    pub fn sqlite3_value_type(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
1536}
1537unsafe extern "C" {
1538    pub fn sqlite3_value_numeric_type(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
1539}
1540unsafe extern "C" {
1541    pub fn sqlite3_value_nochange(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
1542}
1543unsafe extern "C" {
1544    pub fn sqlite3_value_frombind(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
1545}
1546unsafe extern "C" {
1547    pub fn sqlite3_value_encoding(arg1: *mut sqlite3_value) -> ::core::ffi::c_int;
1548}
1549unsafe extern "C" {
1550    pub fn sqlite3_value_subtype(arg1: *mut sqlite3_value) -> ::core::ffi::c_uint;
1551}
1552unsafe extern "C" {
1553    pub fn sqlite3_value_dup(arg1: *const sqlite3_value) -> *mut sqlite3_value;
1554}
1555unsafe extern "C" {
1556    pub fn sqlite3_value_free(arg1: *mut sqlite3_value);
1557}
1558unsafe extern "C" {
1559    pub fn sqlite3_aggregate_context(
1560        arg1: *mut sqlite3_context,
1561        nBytes: ::core::ffi::c_int,
1562    ) -> *mut ::core::ffi::c_void;
1563}
1564unsafe extern "C" {
1565    pub fn sqlite3_user_data(arg1: *mut sqlite3_context) -> *mut ::core::ffi::c_void;
1566}
1567unsafe extern "C" {
1568    pub fn sqlite3_context_db_handle(arg1: *mut sqlite3_context) -> *mut sqlite3;
1569}
1570unsafe extern "C" {
1571    pub fn sqlite3_get_auxdata(
1572        arg1: *mut sqlite3_context,
1573        N: ::core::ffi::c_int,
1574    ) -> *mut ::core::ffi::c_void;
1575}
1576unsafe extern "C" {
1577    pub fn sqlite3_set_auxdata(
1578        arg1: *mut sqlite3_context,
1579        N: ::core::ffi::c_int,
1580        arg2: *mut ::core::ffi::c_void,
1581        arg3: ::core::option::Option<
1582            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1583        >,
1584    );
1585}
1586unsafe extern "C" {
1587    pub fn sqlite3_get_clientdata(
1588        arg1: *mut sqlite3,
1589        arg2: *const ::core::ffi::c_char,
1590    ) -> *mut ::core::ffi::c_void;
1591}
1592unsafe extern "C" {
1593    pub fn sqlite3_set_clientdata(
1594        arg1: *mut sqlite3,
1595        arg2: *const ::core::ffi::c_char,
1596        arg3: *mut ::core::ffi::c_void,
1597        arg4: ::core::option::Option<
1598            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1599        >,
1600    ) -> ::core::ffi::c_int;
1601}
1602pub type sqlite3_destructor_type = ::core::option::Option<
1603    unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1604>;
1605unsafe extern "C" {
1606    pub fn sqlite3_result_blob(
1607        arg1: *mut sqlite3_context,
1608        arg2: *const ::core::ffi::c_void,
1609        arg3: ::core::ffi::c_int,
1610        arg4: ::core::option::Option<
1611            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1612        >,
1613    );
1614}
1615unsafe extern "C" {
1616    pub fn sqlite3_result_blob64(
1617        arg1: *mut sqlite3_context,
1618        arg2: *const ::core::ffi::c_void,
1619        arg3: sqlite3_uint64,
1620        arg4: ::core::option::Option<
1621            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1622        >,
1623    );
1624}
1625unsafe extern "C" {
1626    pub fn sqlite3_result_double(arg1: *mut sqlite3_context, arg2: f64);
1627}
1628unsafe extern "C" {
1629    pub fn sqlite3_result_error(
1630        arg1: *mut sqlite3_context,
1631        arg2: *const ::core::ffi::c_char,
1632        arg3: ::core::ffi::c_int,
1633    );
1634}
1635unsafe extern "C" {
1636    pub fn sqlite3_result_error_toobig(arg1: *mut sqlite3_context);
1637}
1638unsafe extern "C" {
1639    pub fn sqlite3_result_error_nomem(arg1: *mut sqlite3_context);
1640}
1641unsafe extern "C" {
1642    pub fn sqlite3_result_error_code(
1643        arg1: *mut sqlite3_context,
1644        arg2: ::core::ffi::c_int,
1645    );
1646}
1647unsafe extern "C" {
1648    pub fn sqlite3_result_int(arg1: *mut sqlite3_context, arg2: ::core::ffi::c_int);
1649}
1650unsafe extern "C" {
1651    pub fn sqlite3_result_int64(arg1: *mut sqlite3_context, arg2: sqlite3_int64);
1652}
1653unsafe extern "C" {
1654    pub fn sqlite3_result_null(arg1: *mut sqlite3_context);
1655}
1656unsafe extern "C" {
1657    pub fn sqlite3_result_text(
1658        arg1: *mut sqlite3_context,
1659        arg2: *const ::core::ffi::c_char,
1660        arg3: ::core::ffi::c_int,
1661        arg4: ::core::option::Option<
1662            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1663        >,
1664    );
1665}
1666unsafe extern "C" {
1667    pub fn sqlite3_result_text64(
1668        arg1: *mut sqlite3_context,
1669        arg2: *const ::core::ffi::c_char,
1670        arg3: sqlite3_uint64,
1671        arg4: ::core::option::Option<
1672            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1673        >,
1674        encoding: ::core::ffi::c_uchar,
1675    );
1676}
1677unsafe extern "C" {
1678    pub fn sqlite3_result_value(arg1: *mut sqlite3_context, arg2: *mut sqlite3_value);
1679}
1680unsafe extern "C" {
1681    pub fn sqlite3_result_pointer(
1682        arg1: *mut sqlite3_context,
1683        arg2: *mut ::core::ffi::c_void,
1684        arg3: *const ::core::ffi::c_char,
1685        arg4: ::core::option::Option<
1686            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1687        >,
1688    );
1689}
1690unsafe extern "C" {
1691    pub fn sqlite3_result_zeroblob(arg1: *mut sqlite3_context, n: ::core::ffi::c_int);
1692}
1693unsafe extern "C" {
1694    pub fn sqlite3_result_zeroblob64(
1695        arg1: *mut sqlite3_context,
1696        n: sqlite3_uint64,
1697    ) -> ::core::ffi::c_int;
1698}
1699unsafe extern "C" {
1700    pub fn sqlite3_result_subtype(arg1: *mut sqlite3_context, arg2: ::core::ffi::c_uint);
1701}
1702unsafe extern "C" {
1703    pub fn sqlite3_create_collation_v2(
1704        arg1: *mut sqlite3,
1705        zName: *const ::core::ffi::c_char,
1706        eTextRep: ::core::ffi::c_int,
1707        pArg: *mut ::core::ffi::c_void,
1708        xCompare: ::core::option::Option<
1709            unsafe extern "C" fn(
1710                arg1: *mut ::core::ffi::c_void,
1711                arg2: ::core::ffi::c_int,
1712                arg3: *const ::core::ffi::c_void,
1713                arg4: ::core::ffi::c_int,
1714                arg5: *const ::core::ffi::c_void,
1715            ) -> ::core::ffi::c_int,
1716        >,
1717        xDestroy: ::core::option::Option<
1718            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1719        >,
1720    ) -> ::core::ffi::c_int;
1721}
1722unsafe extern "C" {
1723    pub fn sqlite3_collation_needed(
1724        arg1: *mut sqlite3,
1725        arg2: *mut ::core::ffi::c_void,
1726        arg3: ::core::option::Option<
1727            unsafe extern "C" fn(
1728                arg1: *mut ::core::ffi::c_void,
1729                arg2: *mut sqlite3,
1730                eTextRep: ::core::ffi::c_int,
1731                arg3: *const ::core::ffi::c_char,
1732            ),
1733        >,
1734    ) -> ::core::ffi::c_int;
1735}
1736unsafe extern "C" {
1737    pub fn sqlite3_sleep(arg1: ::core::ffi::c_int) -> ::core::ffi::c_int;
1738}
1739unsafe extern "C" {
1740    pub static mut sqlite3_temp_directory: *mut ::core::ffi::c_char;
1741}
1742unsafe extern "C" {
1743    pub static mut sqlite3_data_directory: *mut ::core::ffi::c_char;
1744}
1745unsafe extern "C" {
1746    pub fn sqlite3_win32_set_directory(
1747        type_: ::core::ffi::c_ulong,
1748        zValue: *mut ::core::ffi::c_void,
1749    ) -> ::core::ffi::c_int;
1750}
1751unsafe extern "C" {
1752    pub fn sqlite3_win32_set_directory8(
1753        type_: ::core::ffi::c_ulong,
1754        zValue: *const ::core::ffi::c_char,
1755    ) -> ::core::ffi::c_int;
1756}
1757unsafe extern "C" {
1758    pub fn sqlite3_get_autocommit(arg1: *mut sqlite3) -> ::core::ffi::c_int;
1759}
1760unsafe extern "C" {
1761    pub fn sqlite3_db_handle(arg1: *mut sqlite3_stmt) -> *mut sqlite3;
1762}
1763unsafe extern "C" {
1764    pub fn sqlite3_db_name(
1765        db: *mut sqlite3,
1766        N: ::core::ffi::c_int,
1767    ) -> *const ::core::ffi::c_char;
1768}
1769unsafe extern "C" {
1770    pub fn sqlite3_db_filename(
1771        db: *mut sqlite3,
1772        zDbName: *const ::core::ffi::c_char,
1773    ) -> sqlite3_filename;
1774}
1775unsafe extern "C" {
1776    pub fn sqlite3_db_readonly(
1777        db: *mut sqlite3,
1778        zDbName: *const ::core::ffi::c_char,
1779    ) -> ::core::ffi::c_int;
1780}
1781unsafe extern "C" {
1782    pub fn sqlite3_txn_state(
1783        arg1: *mut sqlite3,
1784        zSchema: *const ::core::ffi::c_char,
1785    ) -> ::core::ffi::c_int;
1786}
1787unsafe extern "C" {
1788    pub fn sqlite3_next_stmt(
1789        pDb: *mut sqlite3,
1790        pStmt: *mut sqlite3_stmt,
1791    ) -> *mut sqlite3_stmt;
1792}
1793unsafe extern "C" {
1794    pub fn sqlite3_commit_hook(
1795        arg1: *mut sqlite3,
1796        arg2: ::core::option::Option<
1797            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
1798        >,
1799        arg3: *mut ::core::ffi::c_void,
1800    ) -> *mut ::core::ffi::c_void;
1801}
1802unsafe extern "C" {
1803    pub fn sqlite3_rollback_hook(
1804        arg1: *mut sqlite3,
1805        arg2: ::core::option::Option<
1806            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1807        >,
1808        arg3: *mut ::core::ffi::c_void,
1809    ) -> *mut ::core::ffi::c_void;
1810}
1811unsafe extern "C" {
1812    pub fn sqlite3_autovacuum_pages(
1813        db: *mut sqlite3,
1814        arg1: ::core::option::Option<
1815            unsafe extern "C" fn(
1816                arg1: *mut ::core::ffi::c_void,
1817                arg2: *const ::core::ffi::c_char,
1818                arg3: ::core::ffi::c_uint,
1819                arg4: ::core::ffi::c_uint,
1820                arg5: ::core::ffi::c_uint,
1821            ) -> ::core::ffi::c_uint,
1822        >,
1823        arg2: *mut ::core::ffi::c_void,
1824        arg3: ::core::option::Option<
1825            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
1826        >,
1827    ) -> ::core::ffi::c_int;
1828}
1829unsafe extern "C" {
1830    pub fn sqlite3_update_hook(
1831        arg1: *mut sqlite3,
1832        arg2: ::core::option::Option<
1833            unsafe extern "C" fn(
1834                arg1: *mut ::core::ffi::c_void,
1835                arg2: ::core::ffi::c_int,
1836                arg3: *const ::core::ffi::c_char,
1837                arg4: *const ::core::ffi::c_char,
1838                arg5: sqlite3_int64,
1839            ),
1840        >,
1841        arg3: *mut ::core::ffi::c_void,
1842    ) -> *mut ::core::ffi::c_void;
1843}
1844unsafe extern "C" {
1845    pub fn sqlite3_enable_shared_cache(arg1: ::core::ffi::c_int) -> ::core::ffi::c_int;
1846}
1847unsafe extern "C" {
1848    pub fn sqlite3_release_memory(arg1: ::core::ffi::c_int) -> ::core::ffi::c_int;
1849}
1850unsafe extern "C" {
1851    pub fn sqlite3_db_release_memory(arg1: *mut sqlite3) -> ::core::ffi::c_int;
1852}
1853unsafe extern "C" {
1854    pub fn sqlite3_soft_heap_limit64(N: sqlite3_int64) -> sqlite3_int64;
1855}
1856unsafe extern "C" {
1857    pub fn sqlite3_hard_heap_limit64(N: sqlite3_int64) -> sqlite3_int64;
1858}
1859unsafe extern "C" {
1860    pub fn sqlite3_soft_heap_limit(N: ::core::ffi::c_int);
1861}
1862unsafe extern "C" {
1863    pub fn sqlite3_table_column_metadata(
1864        db: *mut sqlite3,
1865        zDbName: *const ::core::ffi::c_char,
1866        zTableName: *const ::core::ffi::c_char,
1867        zColumnName: *const ::core::ffi::c_char,
1868        pzDataType: *mut *const ::core::ffi::c_char,
1869        pzCollSeq: *mut *const ::core::ffi::c_char,
1870        pNotNull: *mut ::core::ffi::c_int,
1871        pPrimaryKey: *mut ::core::ffi::c_int,
1872        pAutoinc: *mut ::core::ffi::c_int,
1873    ) -> ::core::ffi::c_int;
1874}
1875unsafe extern "C" {
1876    pub fn sqlite3_reset_auto_extension();
1877}
1878#[repr(C)]
1879#[derive(Debug, Copy, Clone)]
1880pub struct sqlite3_module {
1881    pub iVersion: ::core::ffi::c_int,
1882    pub xCreate: ::core::option::Option<
1883        unsafe extern "C" fn(
1884            arg1: *mut sqlite3,
1885            pAux: *mut ::core::ffi::c_void,
1886            argc: ::core::ffi::c_int,
1887            argv: *const *const ::core::ffi::c_char,
1888            ppVTab: *mut *mut sqlite3_vtab,
1889            arg2: *mut *mut ::core::ffi::c_char,
1890        ) -> ::core::ffi::c_int,
1891    >,
1892    pub xConnect: ::core::option::Option<
1893        unsafe extern "C" fn(
1894            arg1: *mut sqlite3,
1895            pAux: *mut ::core::ffi::c_void,
1896            argc: ::core::ffi::c_int,
1897            argv: *const *const ::core::ffi::c_char,
1898            ppVTab: *mut *mut sqlite3_vtab,
1899            arg2: *mut *mut ::core::ffi::c_char,
1900        ) -> ::core::ffi::c_int,
1901    >,
1902    pub xBestIndex: ::core::option::Option<
1903        unsafe extern "C" fn(
1904            pVTab: *mut sqlite3_vtab,
1905            arg1: *mut sqlite3_index_info,
1906        ) -> ::core::ffi::c_int,
1907    >,
1908    pub xDisconnect: ::core::option::Option<
1909        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
1910    >,
1911    pub xDestroy: ::core::option::Option<
1912        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
1913    >,
1914    pub xOpen: ::core::option::Option<
1915        unsafe extern "C" fn(
1916            pVTab: *mut sqlite3_vtab,
1917            ppCursor: *mut *mut sqlite3_vtab_cursor,
1918        ) -> ::core::ffi::c_int,
1919    >,
1920    pub xClose: ::core::option::Option<
1921        unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor) -> ::core::ffi::c_int,
1922    >,
1923    pub xFilter: ::core::option::Option<
1924        unsafe extern "C" fn(
1925            arg1: *mut sqlite3_vtab_cursor,
1926            idxNum: ::core::ffi::c_int,
1927            idxStr: *const ::core::ffi::c_char,
1928            argc: ::core::ffi::c_int,
1929            argv: *mut *mut sqlite3_value,
1930        ) -> ::core::ffi::c_int,
1931    >,
1932    pub xNext: ::core::option::Option<
1933        unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor) -> ::core::ffi::c_int,
1934    >,
1935    pub xEof: ::core::option::Option<
1936        unsafe extern "C" fn(arg1: *mut sqlite3_vtab_cursor) -> ::core::ffi::c_int,
1937    >,
1938    pub xColumn: ::core::option::Option<
1939        unsafe extern "C" fn(
1940            arg1: *mut sqlite3_vtab_cursor,
1941            arg2: *mut sqlite3_context,
1942            arg3: ::core::ffi::c_int,
1943        ) -> ::core::ffi::c_int,
1944    >,
1945    pub xRowid: ::core::option::Option<
1946        unsafe extern "C" fn(
1947            arg1: *mut sqlite3_vtab_cursor,
1948            pRowid: *mut sqlite3_int64,
1949        ) -> ::core::ffi::c_int,
1950    >,
1951    pub xUpdate: ::core::option::Option<
1952        unsafe extern "C" fn(
1953            arg1: *mut sqlite3_vtab,
1954            arg2: ::core::ffi::c_int,
1955            arg3: *mut *mut sqlite3_value,
1956            arg4: *mut sqlite3_int64,
1957        ) -> ::core::ffi::c_int,
1958    >,
1959    pub xBegin: ::core::option::Option<
1960        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
1961    >,
1962    pub xSync: ::core::option::Option<
1963        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
1964    >,
1965    pub xCommit: ::core::option::Option<
1966        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
1967    >,
1968    pub xRollback: ::core::option::Option<
1969        unsafe extern "C" fn(pVTab: *mut sqlite3_vtab) -> ::core::ffi::c_int,
1970    >,
1971    pub xFindFunction: ::core::option::Option<
1972        unsafe extern "C" fn(
1973            pVtab: *mut sqlite3_vtab,
1974            nArg: ::core::ffi::c_int,
1975            zName: *const ::core::ffi::c_char,
1976            pxFunc: *mut ::core::option::Option<
1977                unsafe extern "C" fn(
1978                    arg1: *mut sqlite3_context,
1979                    arg2: ::core::ffi::c_int,
1980                    arg3: *mut *mut sqlite3_value,
1981                ),
1982            >,
1983            ppArg: *mut *mut ::core::ffi::c_void,
1984        ) -> ::core::ffi::c_int,
1985    >,
1986    pub xRename: ::core::option::Option<
1987        unsafe extern "C" fn(
1988            pVtab: *mut sqlite3_vtab,
1989            zNew: *const ::core::ffi::c_char,
1990        ) -> ::core::ffi::c_int,
1991    >,
1992    pub xSavepoint: ::core::option::Option<
1993        unsafe extern "C" fn(
1994            pVTab: *mut sqlite3_vtab,
1995            arg1: ::core::ffi::c_int,
1996        ) -> ::core::ffi::c_int,
1997    >,
1998    pub xRelease: ::core::option::Option<
1999        unsafe extern "C" fn(
2000            pVTab: *mut sqlite3_vtab,
2001            arg1: ::core::ffi::c_int,
2002        ) -> ::core::ffi::c_int,
2003    >,
2004    pub xRollbackTo: ::core::option::Option<
2005        unsafe extern "C" fn(
2006            pVTab: *mut sqlite3_vtab,
2007            arg1: ::core::ffi::c_int,
2008        ) -> ::core::ffi::c_int,
2009    >,
2010    pub xShadowName: ::core::option::Option<
2011        unsafe extern "C" fn(arg1: *const ::core::ffi::c_char) -> ::core::ffi::c_int,
2012    >,
2013    pub xIntegrity: ::core::option::Option<
2014        unsafe extern "C" fn(
2015            pVTab: *mut sqlite3_vtab,
2016            zSchema: *const ::core::ffi::c_char,
2017            zTabName: *const ::core::ffi::c_char,
2018            mFlags: ::core::ffi::c_int,
2019            pzErr: *mut *mut ::core::ffi::c_char,
2020        ) -> ::core::ffi::c_int,
2021    >,
2022}
2023#[repr(C)]
2024#[derive(Debug, Copy, Clone)]
2025pub struct sqlite3_index_info {
2026    pub nConstraint: ::core::ffi::c_int,
2027    pub aConstraint: *mut sqlite3_index_constraint,
2028    pub nOrderBy: ::core::ffi::c_int,
2029    pub aOrderBy: *mut sqlite3_index_orderby,
2030    pub aConstraintUsage: *mut sqlite3_index_constraint_usage,
2031    pub idxNum: ::core::ffi::c_int,
2032    pub idxStr: *mut ::core::ffi::c_char,
2033    pub needToFreeIdxStr: ::core::ffi::c_int,
2034    pub orderByConsumed: ::core::ffi::c_int,
2035    pub estimatedCost: f64,
2036    pub estimatedRows: sqlite3_int64,
2037    pub idxFlags: ::core::ffi::c_int,
2038    pub colUsed: sqlite3_uint64,
2039}
2040#[repr(C)]
2041#[derive(Debug, Copy, Clone)]
2042pub struct sqlite3_index_constraint {
2043    pub iColumn: ::core::ffi::c_int,
2044    pub op: ::core::ffi::c_uchar,
2045    pub usable: ::core::ffi::c_uchar,
2046    pub iTermOffset: ::core::ffi::c_int,
2047}
2048#[repr(C)]
2049#[derive(Debug, Copy, Clone)]
2050pub struct sqlite3_index_orderby {
2051    pub iColumn: ::core::ffi::c_int,
2052    pub desc: ::core::ffi::c_uchar,
2053}
2054#[repr(C)]
2055#[derive(Debug, Copy, Clone)]
2056pub struct sqlite3_index_constraint_usage {
2057    pub argvIndex: ::core::ffi::c_int,
2058    pub omit: ::core::ffi::c_uchar,
2059}
2060unsafe extern "C" {
2061    pub fn sqlite3_create_module_v2(
2062        db: *mut sqlite3,
2063        zName: *const ::core::ffi::c_char,
2064        p: *const sqlite3_module,
2065        pClientData: *mut ::core::ffi::c_void,
2066        xDestroy: ::core::option::Option<
2067            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
2068        >,
2069    ) -> ::core::ffi::c_int;
2070}
2071unsafe extern "C" {
2072    pub fn sqlite3_drop_modules(
2073        db: *mut sqlite3,
2074        azKeep: *mut *const ::core::ffi::c_char,
2075    ) -> ::core::ffi::c_int;
2076}
2077#[repr(C)]
2078#[derive(Debug, Copy, Clone)]
2079pub struct sqlite3_vtab {
2080    pub pModule: *const sqlite3_module,
2081    pub nRef: ::core::ffi::c_int,
2082    pub zErrMsg: *mut ::core::ffi::c_char,
2083}
2084#[repr(C)]
2085#[derive(Debug, Copy, Clone)]
2086pub struct sqlite3_vtab_cursor {
2087    pub pVtab: *mut sqlite3_vtab,
2088}
2089unsafe extern "C" {
2090    pub fn sqlite3_declare_vtab(
2091        arg1: *mut sqlite3,
2092        zSQL: *const ::core::ffi::c_char,
2093    ) -> ::core::ffi::c_int;
2094}
2095unsafe extern "C" {
2096    pub fn sqlite3_overload_function(
2097        arg1: *mut sqlite3,
2098        zFuncName: *const ::core::ffi::c_char,
2099        nArg: ::core::ffi::c_int,
2100    ) -> ::core::ffi::c_int;
2101}
2102#[repr(C)]
2103#[derive(Debug, Copy, Clone)]
2104pub struct sqlite3_blob {
2105    _unused: [u8; 0],
2106}
2107unsafe extern "C" {
2108    pub fn sqlite3_blob_open(
2109        arg1: *mut sqlite3,
2110        zDb: *const ::core::ffi::c_char,
2111        zTable: *const ::core::ffi::c_char,
2112        zColumn: *const ::core::ffi::c_char,
2113        iRow: sqlite3_int64,
2114        flags: ::core::ffi::c_int,
2115        ppBlob: *mut *mut sqlite3_blob,
2116    ) -> ::core::ffi::c_int;
2117}
2118unsafe extern "C" {
2119    pub fn sqlite3_blob_reopen(
2120        arg1: *mut sqlite3_blob,
2121        arg2: sqlite3_int64,
2122    ) -> ::core::ffi::c_int;
2123}
2124unsafe extern "C" {
2125    pub fn sqlite3_blob_close(arg1: *mut sqlite3_blob) -> ::core::ffi::c_int;
2126}
2127unsafe extern "C" {
2128    pub fn sqlite3_blob_bytes(arg1: *mut sqlite3_blob) -> ::core::ffi::c_int;
2129}
2130unsafe extern "C" {
2131    pub fn sqlite3_blob_read(
2132        arg1: *mut sqlite3_blob,
2133        Z: *mut ::core::ffi::c_void,
2134        N: ::core::ffi::c_int,
2135        iOffset: ::core::ffi::c_int,
2136    ) -> ::core::ffi::c_int;
2137}
2138unsafe extern "C" {
2139    pub fn sqlite3_blob_write(
2140        arg1: *mut sqlite3_blob,
2141        z: *const ::core::ffi::c_void,
2142        n: ::core::ffi::c_int,
2143        iOffset: ::core::ffi::c_int,
2144    ) -> ::core::ffi::c_int;
2145}
2146unsafe extern "C" {
2147    pub fn sqlite3_vfs_find(zVfsName: *const ::core::ffi::c_char) -> *mut sqlite3_vfs;
2148}
2149unsafe extern "C" {
2150    pub fn sqlite3_vfs_register(
2151        arg1: *mut sqlite3_vfs,
2152        makeDflt: ::core::ffi::c_int,
2153    ) -> ::core::ffi::c_int;
2154}
2155unsafe extern "C" {
2156    pub fn sqlite3_vfs_unregister(arg1: *mut sqlite3_vfs) -> ::core::ffi::c_int;
2157}
2158unsafe extern "C" {
2159    pub fn sqlite3_mutex_alloc(arg1: ::core::ffi::c_int) -> *mut sqlite3_mutex;
2160}
2161unsafe extern "C" {
2162    pub fn sqlite3_mutex_free(arg1: *mut sqlite3_mutex);
2163}
2164unsafe extern "C" {
2165    pub fn sqlite3_mutex_enter(arg1: *mut sqlite3_mutex);
2166}
2167unsafe extern "C" {
2168    pub fn sqlite3_mutex_try(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int;
2169}
2170unsafe extern "C" {
2171    pub fn sqlite3_mutex_leave(arg1: *mut sqlite3_mutex);
2172}
2173#[repr(C)]
2174#[derive(Debug, Copy, Clone)]
2175pub struct sqlite3_mutex_methods {
2176    pub xMutexInit: ::core::option::Option<unsafe extern "C" fn() -> ::core::ffi::c_int>,
2177    pub xMutexEnd: ::core::option::Option<unsafe extern "C" fn() -> ::core::ffi::c_int>,
2178    pub xMutexAlloc: ::core::option::Option<
2179        unsafe extern "C" fn(arg1: ::core::ffi::c_int) -> *mut sqlite3_mutex,
2180    >,
2181    pub xMutexFree: ::core::option::Option<
2182        unsafe extern "C" fn(arg1: *mut sqlite3_mutex),
2183    >,
2184    pub xMutexEnter: ::core::option::Option<
2185        unsafe extern "C" fn(arg1: *mut sqlite3_mutex),
2186    >,
2187    pub xMutexTry: ::core::option::Option<
2188        unsafe extern "C" fn(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int,
2189    >,
2190    pub xMutexLeave: ::core::option::Option<
2191        unsafe extern "C" fn(arg1: *mut sqlite3_mutex),
2192    >,
2193    pub xMutexHeld: ::core::option::Option<
2194        unsafe extern "C" fn(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int,
2195    >,
2196    pub xMutexNotheld: ::core::option::Option<
2197        unsafe extern "C" fn(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int,
2198    >,
2199}
2200unsafe extern "C" {
2201    pub fn sqlite3_mutex_held(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int;
2202}
2203unsafe extern "C" {
2204    pub fn sqlite3_mutex_notheld(arg1: *mut sqlite3_mutex) -> ::core::ffi::c_int;
2205}
2206unsafe extern "C" {
2207    pub fn sqlite3_db_mutex(arg1: *mut sqlite3) -> *mut sqlite3_mutex;
2208}
2209unsafe extern "C" {
2210    pub fn sqlite3_file_control(
2211        arg1: *mut sqlite3,
2212        zDbName: *const ::core::ffi::c_char,
2213        op: ::core::ffi::c_int,
2214        arg2: *mut ::core::ffi::c_void,
2215    ) -> ::core::ffi::c_int;
2216}
2217unsafe extern "C" {
2218    pub fn sqlite3_test_control(op: ::core::ffi::c_int, ...) -> ::core::ffi::c_int;
2219}
2220unsafe extern "C" {
2221    pub fn sqlite3_keyword_count() -> ::core::ffi::c_int;
2222}
2223unsafe extern "C" {
2224    pub fn sqlite3_keyword_name(
2225        arg1: ::core::ffi::c_int,
2226        arg2: *mut *const ::core::ffi::c_char,
2227        arg3: *mut ::core::ffi::c_int,
2228    ) -> ::core::ffi::c_int;
2229}
2230unsafe extern "C" {
2231    pub fn sqlite3_keyword_check(
2232        arg1: *const ::core::ffi::c_char,
2233        arg2: ::core::ffi::c_int,
2234    ) -> ::core::ffi::c_int;
2235}
2236#[repr(C)]
2237#[derive(Debug, Copy, Clone)]
2238pub struct sqlite3_str {
2239    _unused: [u8; 0],
2240}
2241unsafe extern "C" {
2242    pub fn sqlite3_str_new(arg1: *mut sqlite3) -> *mut sqlite3_str;
2243}
2244unsafe extern "C" {
2245    pub fn sqlite3_str_finish(arg1: *mut sqlite3_str) -> *mut ::core::ffi::c_char;
2246}
2247unsafe extern "C" {
2248    pub fn sqlite3_str_appendf(
2249        arg1: *mut sqlite3_str,
2250        zFormat: *const ::core::ffi::c_char,
2251        ...
2252    );
2253}
2254unsafe extern "C" {
2255    pub fn sqlite3_str_append(
2256        arg1: *mut sqlite3_str,
2257        zIn: *const ::core::ffi::c_char,
2258        N: ::core::ffi::c_int,
2259    );
2260}
2261unsafe extern "C" {
2262    pub fn sqlite3_str_appendall(
2263        arg1: *mut sqlite3_str,
2264        zIn: *const ::core::ffi::c_char,
2265    );
2266}
2267unsafe extern "C" {
2268    pub fn sqlite3_str_appendchar(
2269        arg1: *mut sqlite3_str,
2270        N: ::core::ffi::c_int,
2271        C: ::core::ffi::c_char,
2272    );
2273}
2274unsafe extern "C" {
2275    pub fn sqlite3_str_reset(arg1: *mut sqlite3_str);
2276}
2277unsafe extern "C" {
2278    pub fn sqlite3_str_errcode(arg1: *mut sqlite3_str) -> ::core::ffi::c_int;
2279}
2280unsafe extern "C" {
2281    pub fn sqlite3_str_length(arg1: *mut sqlite3_str) -> ::core::ffi::c_int;
2282}
2283unsafe extern "C" {
2284    pub fn sqlite3_str_value(arg1: *mut sqlite3_str) -> *mut ::core::ffi::c_char;
2285}
2286unsafe extern "C" {
2287    pub fn sqlite3_status(
2288        op: ::core::ffi::c_int,
2289        pCurrent: *mut ::core::ffi::c_int,
2290        pHighwater: *mut ::core::ffi::c_int,
2291        resetFlag: ::core::ffi::c_int,
2292    ) -> ::core::ffi::c_int;
2293}
2294unsafe extern "C" {
2295    pub fn sqlite3_status64(
2296        op: ::core::ffi::c_int,
2297        pCurrent: *mut sqlite3_int64,
2298        pHighwater: *mut sqlite3_int64,
2299        resetFlag: ::core::ffi::c_int,
2300    ) -> ::core::ffi::c_int;
2301}
2302unsafe extern "C" {
2303    pub fn sqlite3_db_status(
2304        arg1: *mut sqlite3,
2305        op: ::core::ffi::c_int,
2306        pCur: *mut ::core::ffi::c_int,
2307        pHiwtr: *mut ::core::ffi::c_int,
2308        resetFlg: ::core::ffi::c_int,
2309    ) -> ::core::ffi::c_int;
2310}
2311unsafe extern "C" {
2312    pub fn sqlite3_db_status64(
2313        arg1: *mut sqlite3,
2314        arg2: ::core::ffi::c_int,
2315        arg3: *mut sqlite3_int64,
2316        arg4: *mut sqlite3_int64,
2317        arg5: ::core::ffi::c_int,
2318    ) -> ::core::ffi::c_int;
2319}
2320unsafe extern "C" {
2321    pub fn sqlite3_stmt_status(
2322        arg1: *mut sqlite3_stmt,
2323        op: ::core::ffi::c_int,
2324        resetFlg: ::core::ffi::c_int,
2325    ) -> ::core::ffi::c_int;
2326}
2327#[repr(C)]
2328#[derive(Debug, Copy, Clone)]
2329pub struct sqlite3_pcache {
2330    _unused: [u8; 0],
2331}
2332#[repr(C)]
2333#[derive(Debug, Copy, Clone)]
2334pub struct sqlite3_pcache_page {
2335    pub pBuf: *mut ::core::ffi::c_void,
2336    pub pExtra: *mut ::core::ffi::c_void,
2337}
2338#[repr(C)]
2339#[derive(Debug, Copy, Clone)]
2340pub struct sqlite3_pcache_methods2 {
2341    pub iVersion: ::core::ffi::c_int,
2342    pub pArg: *mut ::core::ffi::c_void,
2343    pub xInit: ::core::option::Option<
2344        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
2345    >,
2346    pub xShutdown: ::core::option::Option<
2347        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
2348    >,
2349    pub xCreate: ::core::option::Option<
2350        unsafe extern "C" fn(
2351            szPage: ::core::ffi::c_int,
2352            szExtra: ::core::ffi::c_int,
2353            bPurgeable: ::core::ffi::c_int,
2354        ) -> *mut sqlite3_pcache,
2355    >,
2356    pub xCachesize: ::core::option::Option<
2357        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, nCachesize: ::core::ffi::c_int),
2358    >,
2359    pub xPagecount: ::core::option::Option<
2360        unsafe extern "C" fn(arg1: *mut sqlite3_pcache) -> ::core::ffi::c_int,
2361    >,
2362    pub xFetch: ::core::option::Option<
2363        unsafe extern "C" fn(
2364            arg1: *mut sqlite3_pcache,
2365            key: ::core::ffi::c_uint,
2366            createFlag: ::core::ffi::c_int,
2367        ) -> *mut sqlite3_pcache_page,
2368    >,
2369    pub xUnpin: ::core::option::Option<
2370        unsafe extern "C" fn(
2371            arg1: *mut sqlite3_pcache,
2372            arg2: *mut sqlite3_pcache_page,
2373            discard: ::core::ffi::c_int,
2374        ),
2375    >,
2376    pub xRekey: ::core::option::Option<
2377        unsafe extern "C" fn(
2378            arg1: *mut sqlite3_pcache,
2379            arg2: *mut sqlite3_pcache_page,
2380            oldKey: ::core::ffi::c_uint,
2381            newKey: ::core::ffi::c_uint,
2382        ),
2383    >,
2384    pub xTruncate: ::core::option::Option<
2385        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, iLimit: ::core::ffi::c_uint),
2386    >,
2387    pub xDestroy: ::core::option::Option<
2388        unsafe extern "C" fn(arg1: *mut sqlite3_pcache),
2389    >,
2390    pub xShrink: ::core::option::Option<unsafe extern "C" fn(arg1: *mut sqlite3_pcache)>,
2391}
2392#[repr(C)]
2393#[derive(Debug, Copy, Clone)]
2394pub struct sqlite3_pcache_methods {
2395    pub pArg: *mut ::core::ffi::c_void,
2396    pub xInit: ::core::option::Option<
2397        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void) -> ::core::ffi::c_int,
2398    >,
2399    pub xShutdown: ::core::option::Option<
2400        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
2401    >,
2402    pub xCreate: ::core::option::Option<
2403        unsafe extern "C" fn(
2404            szPage: ::core::ffi::c_int,
2405            bPurgeable: ::core::ffi::c_int,
2406        ) -> *mut sqlite3_pcache,
2407    >,
2408    pub xCachesize: ::core::option::Option<
2409        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, nCachesize: ::core::ffi::c_int),
2410    >,
2411    pub xPagecount: ::core::option::Option<
2412        unsafe extern "C" fn(arg1: *mut sqlite3_pcache) -> ::core::ffi::c_int,
2413    >,
2414    pub xFetch: ::core::option::Option<
2415        unsafe extern "C" fn(
2416            arg1: *mut sqlite3_pcache,
2417            key: ::core::ffi::c_uint,
2418            createFlag: ::core::ffi::c_int,
2419        ) -> *mut ::core::ffi::c_void,
2420    >,
2421    pub xUnpin: ::core::option::Option<
2422        unsafe extern "C" fn(
2423            arg1: *mut sqlite3_pcache,
2424            arg2: *mut ::core::ffi::c_void,
2425            discard: ::core::ffi::c_int,
2426        ),
2427    >,
2428    pub xRekey: ::core::option::Option<
2429        unsafe extern "C" fn(
2430            arg1: *mut sqlite3_pcache,
2431            arg2: *mut ::core::ffi::c_void,
2432            oldKey: ::core::ffi::c_uint,
2433            newKey: ::core::ffi::c_uint,
2434        ),
2435    >,
2436    pub xTruncate: ::core::option::Option<
2437        unsafe extern "C" fn(arg1: *mut sqlite3_pcache, iLimit: ::core::ffi::c_uint),
2438    >,
2439    pub xDestroy: ::core::option::Option<
2440        unsafe extern "C" fn(arg1: *mut sqlite3_pcache),
2441    >,
2442}
2443#[repr(C)]
2444#[derive(Debug, Copy, Clone)]
2445pub struct sqlite3_backup {
2446    _unused: [u8; 0],
2447}
2448unsafe extern "C" {
2449    pub fn sqlite3_backup_init(
2450        pDest: *mut sqlite3,
2451        zDestName: *const ::core::ffi::c_char,
2452        pSource: *mut sqlite3,
2453        zSourceName: *const ::core::ffi::c_char,
2454    ) -> *mut sqlite3_backup;
2455}
2456unsafe extern "C" {
2457    pub fn sqlite3_backup_step(
2458        p: *mut sqlite3_backup,
2459        nPage: ::core::ffi::c_int,
2460    ) -> ::core::ffi::c_int;
2461}
2462unsafe extern "C" {
2463    pub fn sqlite3_backup_finish(p: *mut sqlite3_backup) -> ::core::ffi::c_int;
2464}
2465unsafe extern "C" {
2466    pub fn sqlite3_backup_remaining(p: *mut sqlite3_backup) -> ::core::ffi::c_int;
2467}
2468unsafe extern "C" {
2469    pub fn sqlite3_backup_pagecount(p: *mut sqlite3_backup) -> ::core::ffi::c_int;
2470}
2471unsafe extern "C" {
2472    pub fn sqlite3_unlock_notify(
2473        pBlocked: *mut sqlite3,
2474        xNotify: ::core::option::Option<
2475            unsafe extern "C" fn(
2476                apArg: *mut *mut ::core::ffi::c_void,
2477                nArg: ::core::ffi::c_int,
2478            ),
2479        >,
2480        pNotifyArg: *mut ::core::ffi::c_void,
2481    ) -> ::core::ffi::c_int;
2482}
2483unsafe extern "C" {
2484    pub fn sqlite3_stricmp(
2485        arg1: *const ::core::ffi::c_char,
2486        arg2: *const ::core::ffi::c_char,
2487    ) -> ::core::ffi::c_int;
2488}
2489unsafe extern "C" {
2490    pub fn sqlite3_strnicmp(
2491        arg1: *const ::core::ffi::c_char,
2492        arg2: *const ::core::ffi::c_char,
2493        arg3: ::core::ffi::c_int,
2494    ) -> ::core::ffi::c_int;
2495}
2496unsafe extern "C" {
2497    pub fn sqlite3_strglob(
2498        zGlob: *const ::core::ffi::c_char,
2499        zStr: *const ::core::ffi::c_char,
2500    ) -> ::core::ffi::c_int;
2501}
2502unsafe extern "C" {
2503    pub fn sqlite3_strlike(
2504        zGlob: *const ::core::ffi::c_char,
2505        zStr: *const ::core::ffi::c_char,
2506        cEsc: ::core::ffi::c_uint,
2507    ) -> ::core::ffi::c_int;
2508}
2509unsafe extern "C" {
2510    pub fn sqlite3_log(
2511        iErrCode: ::core::ffi::c_int,
2512        zFormat: *const ::core::ffi::c_char,
2513        ...
2514    );
2515}
2516unsafe extern "C" {
2517    pub fn sqlite3_wal_hook(
2518        arg1: *mut sqlite3,
2519        arg2: ::core::option::Option<
2520            unsafe extern "C" fn(
2521                arg1: *mut ::core::ffi::c_void,
2522                arg2: *mut sqlite3,
2523                arg3: *const ::core::ffi::c_char,
2524                arg4: ::core::ffi::c_int,
2525            ) -> ::core::ffi::c_int,
2526        >,
2527        arg3: *mut ::core::ffi::c_void,
2528    ) -> *mut ::core::ffi::c_void;
2529}
2530unsafe extern "C" {
2531    pub fn sqlite3_wal_autocheckpoint(
2532        db: *mut sqlite3,
2533        N: ::core::ffi::c_int,
2534    ) -> ::core::ffi::c_int;
2535}
2536unsafe extern "C" {
2537    pub fn sqlite3_wal_checkpoint(
2538        db: *mut sqlite3,
2539        zDb: *const ::core::ffi::c_char,
2540    ) -> ::core::ffi::c_int;
2541}
2542unsafe extern "C" {
2543    pub fn sqlite3_wal_checkpoint_v2(
2544        db: *mut sqlite3,
2545        zDb: *const ::core::ffi::c_char,
2546        eMode: ::core::ffi::c_int,
2547        pnLog: *mut ::core::ffi::c_int,
2548        pnCkpt: *mut ::core::ffi::c_int,
2549    ) -> ::core::ffi::c_int;
2550}
2551unsafe extern "C" {
2552    pub fn sqlite3_vtab_config(
2553        arg1: *mut sqlite3,
2554        op: ::core::ffi::c_int,
2555        ...
2556    ) -> ::core::ffi::c_int;
2557}
2558unsafe extern "C" {
2559    pub fn sqlite3_vtab_on_conflict(arg1: *mut sqlite3) -> ::core::ffi::c_int;
2560}
2561unsafe extern "C" {
2562    pub fn sqlite3_vtab_nochange(arg1: *mut sqlite3_context) -> ::core::ffi::c_int;
2563}
2564unsafe extern "C" {
2565    pub fn sqlite3_vtab_collation(
2566        arg1: *mut sqlite3_index_info,
2567        arg2: ::core::ffi::c_int,
2568    ) -> *const ::core::ffi::c_char;
2569}
2570unsafe extern "C" {
2571    pub fn sqlite3_vtab_distinct(arg1: *mut sqlite3_index_info) -> ::core::ffi::c_int;
2572}
2573unsafe extern "C" {
2574    pub fn sqlite3_vtab_in(
2575        arg1: *mut sqlite3_index_info,
2576        iCons: ::core::ffi::c_int,
2577        bHandle: ::core::ffi::c_int,
2578    ) -> ::core::ffi::c_int;
2579}
2580unsafe extern "C" {
2581    pub fn sqlite3_vtab_in_first(
2582        pVal: *mut sqlite3_value,
2583        ppOut: *mut *mut sqlite3_value,
2584    ) -> ::core::ffi::c_int;
2585}
2586unsafe extern "C" {
2587    pub fn sqlite3_vtab_in_next(
2588        pVal: *mut sqlite3_value,
2589        ppOut: *mut *mut sqlite3_value,
2590    ) -> ::core::ffi::c_int;
2591}
2592unsafe extern "C" {
2593    pub fn sqlite3_vtab_rhs_value(
2594        arg1: *mut sqlite3_index_info,
2595        arg2: ::core::ffi::c_int,
2596        ppVal: *mut *mut sqlite3_value,
2597    ) -> ::core::ffi::c_int;
2598}
2599unsafe extern "C" {
2600    pub fn sqlite3_stmt_scanstatus(
2601        pStmt: *mut sqlite3_stmt,
2602        idx: ::core::ffi::c_int,
2603        iScanStatusOp: ::core::ffi::c_int,
2604        pOut: *mut ::core::ffi::c_void,
2605    ) -> ::core::ffi::c_int;
2606}
2607unsafe extern "C" {
2608    pub fn sqlite3_stmt_scanstatus_v2(
2609        pStmt: *mut sqlite3_stmt,
2610        idx: ::core::ffi::c_int,
2611        iScanStatusOp: ::core::ffi::c_int,
2612        flags: ::core::ffi::c_int,
2613        pOut: *mut ::core::ffi::c_void,
2614    ) -> ::core::ffi::c_int;
2615}
2616unsafe extern "C" {
2617    pub fn sqlite3_stmt_scanstatus_reset(arg1: *mut sqlite3_stmt);
2618}
2619unsafe extern "C" {
2620    pub fn sqlite3_db_cacheflush(arg1: *mut sqlite3) -> ::core::ffi::c_int;
2621}
2622unsafe extern "C" {
2623    pub fn sqlite3_preupdate_hook(
2624        db: *mut sqlite3,
2625        xPreUpdate: ::core::option::Option<
2626            unsafe extern "C" fn(
2627                pCtx: *mut ::core::ffi::c_void,
2628                db: *mut sqlite3,
2629                op: ::core::ffi::c_int,
2630                zDb: *const ::core::ffi::c_char,
2631                zName: *const ::core::ffi::c_char,
2632                iKey1: sqlite3_int64,
2633                iKey2: sqlite3_int64,
2634            ),
2635        >,
2636        arg1: *mut ::core::ffi::c_void,
2637    ) -> *mut ::core::ffi::c_void;
2638}
2639unsafe extern "C" {
2640    pub fn sqlite3_preupdate_old(
2641        arg1: *mut sqlite3,
2642        arg2: ::core::ffi::c_int,
2643        arg3: *mut *mut sqlite3_value,
2644    ) -> ::core::ffi::c_int;
2645}
2646unsafe extern "C" {
2647    pub fn sqlite3_preupdate_count(arg1: *mut sqlite3) -> ::core::ffi::c_int;
2648}
2649unsafe extern "C" {
2650    pub fn sqlite3_preupdate_depth(arg1: *mut sqlite3) -> ::core::ffi::c_int;
2651}
2652unsafe extern "C" {
2653    pub fn sqlite3_preupdate_new(
2654        arg1: *mut sqlite3,
2655        arg2: ::core::ffi::c_int,
2656        arg3: *mut *mut sqlite3_value,
2657    ) -> ::core::ffi::c_int;
2658}
2659unsafe extern "C" {
2660    pub fn sqlite3_preupdate_blobwrite(arg1: *mut sqlite3) -> ::core::ffi::c_int;
2661}
2662unsafe extern "C" {
2663    pub fn sqlite3_system_errno(arg1: *mut sqlite3) -> ::core::ffi::c_int;
2664}
2665#[repr(C)]
2666#[derive(Debug, Copy, Clone)]
2667pub struct sqlite3_snapshot {
2668    pub hidden: [::core::ffi::c_uchar; 48usize],
2669}
2670unsafe extern "C" {
2671    pub fn sqlite3_snapshot_get(
2672        db: *mut sqlite3,
2673        zSchema: *const ::core::ffi::c_char,
2674        ppSnapshot: *mut *mut sqlite3_snapshot,
2675    ) -> ::core::ffi::c_int;
2676}
2677unsafe extern "C" {
2678    pub fn sqlite3_snapshot_open(
2679        db: *mut sqlite3,
2680        zSchema: *const ::core::ffi::c_char,
2681        pSnapshot: *mut sqlite3_snapshot,
2682    ) -> ::core::ffi::c_int;
2683}
2684unsafe extern "C" {
2685    pub fn sqlite3_snapshot_free(arg1: *mut sqlite3_snapshot);
2686}
2687unsafe extern "C" {
2688    pub fn sqlite3_snapshot_cmp(
2689        p1: *mut sqlite3_snapshot,
2690        p2: *mut sqlite3_snapshot,
2691    ) -> ::core::ffi::c_int;
2692}
2693unsafe extern "C" {
2694    pub fn sqlite3_snapshot_recover(
2695        db: *mut sqlite3,
2696        zDb: *const ::core::ffi::c_char,
2697    ) -> ::core::ffi::c_int;
2698}
2699unsafe extern "C" {
2700    pub fn sqlite3_serialize(
2701        db: *mut sqlite3,
2702        zSchema: *const ::core::ffi::c_char,
2703        piSize: *mut sqlite3_int64,
2704        mFlags: ::core::ffi::c_uint,
2705    ) -> *mut ::core::ffi::c_uchar;
2706}
2707unsafe extern "C" {
2708    pub fn sqlite3_deserialize(
2709        db: *mut sqlite3,
2710        zSchema: *const ::core::ffi::c_char,
2711        pData: *mut ::core::ffi::c_uchar,
2712        szDb: sqlite3_int64,
2713        szBuf: sqlite3_int64,
2714        mFlags: ::core::ffi::c_uint,
2715    ) -> ::core::ffi::c_int;
2716}
2717unsafe extern "C" {
2718    pub fn sqlite3_carray_bind(
2719        pStmt: *mut sqlite3_stmt,
2720        i: ::core::ffi::c_int,
2721        aData: *mut ::core::ffi::c_void,
2722        nData: ::core::ffi::c_int,
2723        mFlags: ::core::ffi::c_int,
2724        xDel: ::core::option::Option<
2725            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
2726        >,
2727    ) -> ::core::ffi::c_int;
2728}
2729pub type sqlite3_rtree_dbl = f64;
2730unsafe extern "C" {
2731    pub fn sqlite3_rtree_geometry_callback(
2732        db: *mut sqlite3,
2733        zGeom: *const ::core::ffi::c_char,
2734        xGeom: ::core::option::Option<
2735            unsafe extern "C" fn(
2736                arg1: *mut sqlite3_rtree_geometry,
2737                arg2: ::core::ffi::c_int,
2738                arg3: *mut sqlite3_rtree_dbl,
2739                arg4: *mut ::core::ffi::c_int,
2740            ) -> ::core::ffi::c_int,
2741        >,
2742        pContext: *mut ::core::ffi::c_void,
2743    ) -> ::core::ffi::c_int;
2744}
2745#[repr(C)]
2746#[derive(Debug, Copy, Clone)]
2747pub struct sqlite3_rtree_geometry {
2748    pub pContext: *mut ::core::ffi::c_void,
2749    pub nParam: ::core::ffi::c_int,
2750    pub aParam: *mut sqlite3_rtree_dbl,
2751    pub pUser: *mut ::core::ffi::c_void,
2752    pub xDelUser: ::core::option::Option<
2753        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
2754    >,
2755}
2756unsafe extern "C" {
2757    pub fn sqlite3_rtree_query_callback(
2758        db: *mut sqlite3,
2759        zQueryFunc: *const ::core::ffi::c_char,
2760        xQueryFunc: ::core::option::Option<
2761            unsafe extern "C" fn(
2762                arg1: *mut sqlite3_rtree_query_info,
2763            ) -> ::core::ffi::c_int,
2764        >,
2765        pContext: *mut ::core::ffi::c_void,
2766        xDestructor: ::core::option::Option<
2767            unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
2768        >,
2769    ) -> ::core::ffi::c_int;
2770}
2771#[repr(C)]
2772#[derive(Debug, Copy, Clone)]
2773pub struct sqlite3_rtree_query_info {
2774    pub pContext: *mut ::core::ffi::c_void,
2775    pub nParam: ::core::ffi::c_int,
2776    pub aParam: *mut sqlite3_rtree_dbl,
2777    pub pUser: *mut ::core::ffi::c_void,
2778    pub xDelUser: ::core::option::Option<
2779        unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
2780    >,
2781    pub aCoord: *mut sqlite3_rtree_dbl,
2782    pub anQueue: *mut ::core::ffi::c_uint,
2783    pub nCoord: ::core::ffi::c_int,
2784    pub iLevel: ::core::ffi::c_int,
2785    pub mxLevel: ::core::ffi::c_int,
2786    pub iRowid: sqlite3_int64,
2787    pub rParentScore: sqlite3_rtree_dbl,
2788    pub eParentWithin: ::core::ffi::c_int,
2789    pub eWithin: ::core::ffi::c_int,
2790    pub rScore: sqlite3_rtree_dbl,
2791    pub apSqlParam: *mut *mut sqlite3_value,
2792}
2793#[repr(C)]
2794#[derive(Debug, Copy, Clone)]
2795pub struct sqlite3_session {
2796    _unused: [u8; 0],
2797}
2798#[repr(C)]
2799#[derive(Debug, Copy, Clone)]
2800pub struct sqlite3_changeset_iter {
2801    _unused: [u8; 0],
2802}
2803unsafe extern "C" {
2804    pub fn sqlite3session_create(
2805        db: *mut sqlite3,
2806        zDb: *const ::core::ffi::c_char,
2807        ppSession: *mut *mut sqlite3_session,
2808    ) -> ::core::ffi::c_int;
2809}
2810unsafe extern "C" {
2811    pub fn sqlite3session_delete(pSession: *mut sqlite3_session);
2812}
2813unsafe extern "C" {
2814    pub fn sqlite3session_object_config(
2815        arg1: *mut sqlite3_session,
2816        op: ::core::ffi::c_int,
2817        pArg: *mut ::core::ffi::c_void,
2818    ) -> ::core::ffi::c_int;
2819}
2820unsafe extern "C" {
2821    pub fn sqlite3session_enable(
2822        pSession: *mut sqlite3_session,
2823        bEnable: ::core::ffi::c_int,
2824    ) -> ::core::ffi::c_int;
2825}
2826unsafe extern "C" {
2827    pub fn sqlite3session_indirect(
2828        pSession: *mut sqlite3_session,
2829        bIndirect: ::core::ffi::c_int,
2830    ) -> ::core::ffi::c_int;
2831}
2832unsafe extern "C" {
2833    pub fn sqlite3session_attach(
2834        pSession: *mut sqlite3_session,
2835        zTab: *const ::core::ffi::c_char,
2836    ) -> ::core::ffi::c_int;
2837}
2838unsafe extern "C" {
2839    pub fn sqlite3session_table_filter(
2840        pSession: *mut sqlite3_session,
2841        xFilter: ::core::option::Option<
2842            unsafe extern "C" fn(
2843                pCtx: *mut ::core::ffi::c_void,
2844                zTab: *const ::core::ffi::c_char,
2845            ) -> ::core::ffi::c_int,
2846        >,
2847        pCtx: *mut ::core::ffi::c_void,
2848    );
2849}
2850unsafe extern "C" {
2851    pub fn sqlite3session_changeset(
2852        pSession: *mut sqlite3_session,
2853        pnChangeset: *mut ::core::ffi::c_int,
2854        ppChangeset: *mut *mut ::core::ffi::c_void,
2855    ) -> ::core::ffi::c_int;
2856}
2857unsafe extern "C" {
2858    pub fn sqlite3session_changeset_size(
2859        pSession: *mut sqlite3_session,
2860    ) -> sqlite3_int64;
2861}
2862unsafe extern "C" {
2863    pub fn sqlite3session_diff(
2864        pSession: *mut sqlite3_session,
2865        zFromDb: *const ::core::ffi::c_char,
2866        zTbl: *const ::core::ffi::c_char,
2867        pzErrMsg: *mut *mut ::core::ffi::c_char,
2868    ) -> ::core::ffi::c_int;
2869}
2870unsafe extern "C" {
2871    pub fn sqlite3session_patchset(
2872        pSession: *mut sqlite3_session,
2873        pnPatchset: *mut ::core::ffi::c_int,
2874        ppPatchset: *mut *mut ::core::ffi::c_void,
2875    ) -> ::core::ffi::c_int;
2876}
2877unsafe extern "C" {
2878    pub fn sqlite3session_isempty(pSession: *mut sqlite3_session) -> ::core::ffi::c_int;
2879}
2880unsafe extern "C" {
2881    pub fn sqlite3session_memory_used(pSession: *mut sqlite3_session) -> sqlite3_int64;
2882}
2883unsafe extern "C" {
2884    pub fn sqlite3changeset_start(
2885        pp: *mut *mut sqlite3_changeset_iter,
2886        nChangeset: ::core::ffi::c_int,
2887        pChangeset: *mut ::core::ffi::c_void,
2888    ) -> ::core::ffi::c_int;
2889}
2890unsafe extern "C" {
2891    pub fn sqlite3changeset_start_v2(
2892        pp: *mut *mut sqlite3_changeset_iter,
2893        nChangeset: ::core::ffi::c_int,
2894        pChangeset: *mut ::core::ffi::c_void,
2895        flags: ::core::ffi::c_int,
2896    ) -> ::core::ffi::c_int;
2897}
2898unsafe extern "C" {
2899    pub fn sqlite3changeset_next(
2900        pIter: *mut sqlite3_changeset_iter,
2901    ) -> ::core::ffi::c_int;
2902}
2903unsafe extern "C" {
2904    pub fn sqlite3changeset_op(
2905        pIter: *mut sqlite3_changeset_iter,
2906        pzTab: *mut *const ::core::ffi::c_char,
2907        pnCol: *mut ::core::ffi::c_int,
2908        pOp: *mut ::core::ffi::c_int,
2909        pbIndirect: *mut ::core::ffi::c_int,
2910    ) -> ::core::ffi::c_int;
2911}
2912unsafe extern "C" {
2913    pub fn sqlite3changeset_pk(
2914        pIter: *mut sqlite3_changeset_iter,
2915        pabPK: *mut *mut ::core::ffi::c_uchar,
2916        pnCol: *mut ::core::ffi::c_int,
2917    ) -> ::core::ffi::c_int;
2918}
2919unsafe extern "C" {
2920    pub fn sqlite3changeset_old(
2921        pIter: *mut sqlite3_changeset_iter,
2922        iVal: ::core::ffi::c_int,
2923        ppValue: *mut *mut sqlite3_value,
2924    ) -> ::core::ffi::c_int;
2925}
2926unsafe extern "C" {
2927    pub fn sqlite3changeset_new(
2928        pIter: *mut sqlite3_changeset_iter,
2929        iVal: ::core::ffi::c_int,
2930        ppValue: *mut *mut sqlite3_value,
2931    ) -> ::core::ffi::c_int;
2932}
2933unsafe extern "C" {
2934    pub fn sqlite3changeset_conflict(
2935        pIter: *mut sqlite3_changeset_iter,
2936        iVal: ::core::ffi::c_int,
2937        ppValue: *mut *mut sqlite3_value,
2938    ) -> ::core::ffi::c_int;
2939}
2940unsafe extern "C" {
2941    pub fn sqlite3changeset_fk_conflicts(
2942        pIter: *mut sqlite3_changeset_iter,
2943        pnOut: *mut ::core::ffi::c_int,
2944    ) -> ::core::ffi::c_int;
2945}
2946unsafe extern "C" {
2947    pub fn sqlite3changeset_finalize(
2948        pIter: *mut sqlite3_changeset_iter,
2949    ) -> ::core::ffi::c_int;
2950}
2951unsafe extern "C" {
2952    pub fn sqlite3changeset_invert(
2953        nIn: ::core::ffi::c_int,
2954        pIn: *const ::core::ffi::c_void,
2955        pnOut: *mut ::core::ffi::c_int,
2956        ppOut: *mut *mut ::core::ffi::c_void,
2957    ) -> ::core::ffi::c_int;
2958}
2959unsafe extern "C" {
2960    pub fn sqlite3changeset_concat(
2961        nA: ::core::ffi::c_int,
2962        pA: *mut ::core::ffi::c_void,
2963        nB: ::core::ffi::c_int,
2964        pB: *mut ::core::ffi::c_void,
2965        pnOut: *mut ::core::ffi::c_int,
2966        ppOut: *mut *mut ::core::ffi::c_void,
2967    ) -> ::core::ffi::c_int;
2968}
2969#[repr(C)]
2970#[derive(Debug, Copy, Clone)]
2971pub struct sqlite3_changegroup {
2972    _unused: [u8; 0],
2973}
2974unsafe extern "C" {
2975    pub fn sqlite3changegroup_new(
2976        pp: *mut *mut sqlite3_changegroup,
2977    ) -> ::core::ffi::c_int;
2978}
2979unsafe extern "C" {
2980    pub fn sqlite3changegroup_schema(
2981        arg1: *mut sqlite3_changegroup,
2982        arg2: *mut sqlite3,
2983        zDb: *const ::core::ffi::c_char,
2984    ) -> ::core::ffi::c_int;
2985}
2986unsafe extern "C" {
2987    pub fn sqlite3changegroup_add(
2988        arg1: *mut sqlite3_changegroup,
2989        nData: ::core::ffi::c_int,
2990        pData: *mut ::core::ffi::c_void,
2991    ) -> ::core::ffi::c_int;
2992}
2993unsafe extern "C" {
2994    pub fn sqlite3changegroup_add_change(
2995        arg1: *mut sqlite3_changegroup,
2996        arg2: *mut sqlite3_changeset_iter,
2997    ) -> ::core::ffi::c_int;
2998}
2999unsafe extern "C" {
3000    pub fn sqlite3changegroup_output(
3001        arg1: *mut sqlite3_changegroup,
3002        pnData: *mut ::core::ffi::c_int,
3003        ppData: *mut *mut ::core::ffi::c_void,
3004    ) -> ::core::ffi::c_int;
3005}
3006unsafe extern "C" {
3007    pub fn sqlite3changegroup_delete(arg1: *mut sqlite3_changegroup);
3008}
3009unsafe extern "C" {
3010    pub fn sqlite3changeset_apply(
3011        db: *mut sqlite3,
3012        nChangeset: ::core::ffi::c_int,
3013        pChangeset: *mut ::core::ffi::c_void,
3014        xFilter: ::core::option::Option<
3015            unsafe extern "C" fn(
3016                pCtx: *mut ::core::ffi::c_void,
3017                zTab: *const ::core::ffi::c_char,
3018            ) -> ::core::ffi::c_int,
3019        >,
3020        xConflict: ::core::option::Option<
3021            unsafe extern "C" fn(
3022                pCtx: *mut ::core::ffi::c_void,
3023                eConflict: ::core::ffi::c_int,
3024                p: *mut sqlite3_changeset_iter,
3025            ) -> ::core::ffi::c_int,
3026        >,
3027        pCtx: *mut ::core::ffi::c_void,
3028    ) -> ::core::ffi::c_int;
3029}
3030unsafe extern "C" {
3031    pub fn sqlite3changeset_apply_v2(
3032        db: *mut sqlite3,
3033        nChangeset: ::core::ffi::c_int,
3034        pChangeset: *mut ::core::ffi::c_void,
3035        xFilter: ::core::option::Option<
3036            unsafe extern "C" fn(
3037                pCtx: *mut ::core::ffi::c_void,
3038                zTab: *const ::core::ffi::c_char,
3039            ) -> ::core::ffi::c_int,
3040        >,
3041        xConflict: ::core::option::Option<
3042            unsafe extern "C" fn(
3043                pCtx: *mut ::core::ffi::c_void,
3044                eConflict: ::core::ffi::c_int,
3045                p: *mut sqlite3_changeset_iter,
3046            ) -> ::core::ffi::c_int,
3047        >,
3048        pCtx: *mut ::core::ffi::c_void,
3049        ppRebase: *mut *mut ::core::ffi::c_void,
3050        pnRebase: *mut ::core::ffi::c_int,
3051        flags: ::core::ffi::c_int,
3052    ) -> ::core::ffi::c_int;
3053}
3054unsafe extern "C" {
3055    pub fn sqlite3changeset_apply_v3(
3056        db: *mut sqlite3,
3057        nChangeset: ::core::ffi::c_int,
3058        pChangeset: *mut ::core::ffi::c_void,
3059        xFilter: ::core::option::Option<
3060            unsafe extern "C" fn(
3061                pCtx: *mut ::core::ffi::c_void,
3062                p: *mut sqlite3_changeset_iter,
3063            ) -> ::core::ffi::c_int,
3064        >,
3065        xConflict: ::core::option::Option<
3066            unsafe extern "C" fn(
3067                pCtx: *mut ::core::ffi::c_void,
3068                eConflict: ::core::ffi::c_int,
3069                p: *mut sqlite3_changeset_iter,
3070            ) -> ::core::ffi::c_int,
3071        >,
3072        pCtx: *mut ::core::ffi::c_void,
3073        ppRebase: *mut *mut ::core::ffi::c_void,
3074        pnRebase: *mut ::core::ffi::c_int,
3075        flags: ::core::ffi::c_int,
3076    ) -> ::core::ffi::c_int;
3077}
3078#[repr(C)]
3079#[derive(Debug, Copy, Clone)]
3080pub struct sqlite3_rebaser {
3081    _unused: [u8; 0],
3082}
3083unsafe extern "C" {
3084    pub fn sqlite3rebaser_create(ppNew: *mut *mut sqlite3_rebaser) -> ::core::ffi::c_int;
3085}
3086unsafe extern "C" {
3087    pub fn sqlite3rebaser_configure(
3088        arg1: *mut sqlite3_rebaser,
3089        nRebase: ::core::ffi::c_int,
3090        pRebase: *const ::core::ffi::c_void,
3091    ) -> ::core::ffi::c_int;
3092}
3093unsafe extern "C" {
3094    pub fn sqlite3rebaser_rebase(
3095        arg1: *mut sqlite3_rebaser,
3096        nIn: ::core::ffi::c_int,
3097        pIn: *const ::core::ffi::c_void,
3098        pnOut: *mut ::core::ffi::c_int,
3099        ppOut: *mut *mut ::core::ffi::c_void,
3100    ) -> ::core::ffi::c_int;
3101}
3102unsafe extern "C" {
3103    pub fn sqlite3rebaser_delete(p: *mut sqlite3_rebaser);
3104}
3105unsafe extern "C" {
3106    pub fn sqlite3changeset_apply_strm(
3107        db: *mut sqlite3,
3108        xInput: ::core::option::Option<
3109            unsafe extern "C" fn(
3110                pIn: *mut ::core::ffi::c_void,
3111                pData: *mut ::core::ffi::c_void,
3112                pnData: *mut ::core::ffi::c_int,
3113            ) -> ::core::ffi::c_int,
3114        >,
3115        pIn: *mut ::core::ffi::c_void,
3116        xFilter: ::core::option::Option<
3117            unsafe extern "C" fn(
3118                pCtx: *mut ::core::ffi::c_void,
3119                zTab: *const ::core::ffi::c_char,
3120            ) -> ::core::ffi::c_int,
3121        >,
3122        xConflict: ::core::option::Option<
3123            unsafe extern "C" fn(
3124                pCtx: *mut ::core::ffi::c_void,
3125                eConflict: ::core::ffi::c_int,
3126                p: *mut sqlite3_changeset_iter,
3127            ) -> ::core::ffi::c_int,
3128        >,
3129        pCtx: *mut ::core::ffi::c_void,
3130    ) -> ::core::ffi::c_int;
3131}
3132unsafe extern "C" {
3133    pub fn sqlite3changeset_apply_v2_strm(
3134        db: *mut sqlite3,
3135        xInput: ::core::option::Option<
3136            unsafe extern "C" fn(
3137                pIn: *mut ::core::ffi::c_void,
3138                pData: *mut ::core::ffi::c_void,
3139                pnData: *mut ::core::ffi::c_int,
3140            ) -> ::core::ffi::c_int,
3141        >,
3142        pIn: *mut ::core::ffi::c_void,
3143        xFilter: ::core::option::Option<
3144            unsafe extern "C" fn(
3145                pCtx: *mut ::core::ffi::c_void,
3146                zTab: *const ::core::ffi::c_char,
3147            ) -> ::core::ffi::c_int,
3148        >,
3149        xConflict: ::core::option::Option<
3150            unsafe extern "C" fn(
3151                pCtx: *mut ::core::ffi::c_void,
3152                eConflict: ::core::ffi::c_int,
3153                p: *mut sqlite3_changeset_iter,
3154            ) -> ::core::ffi::c_int,
3155        >,
3156        pCtx: *mut ::core::ffi::c_void,
3157        ppRebase: *mut *mut ::core::ffi::c_void,
3158        pnRebase: *mut ::core::ffi::c_int,
3159        flags: ::core::ffi::c_int,
3160    ) -> ::core::ffi::c_int;
3161}
3162unsafe extern "C" {
3163    pub fn sqlite3changeset_apply_v3_strm(
3164        db: *mut sqlite3,
3165        xInput: ::core::option::Option<
3166            unsafe extern "C" fn(
3167                pIn: *mut ::core::ffi::c_void,
3168                pData: *mut ::core::ffi::c_void,
3169                pnData: *mut ::core::ffi::c_int,
3170            ) -> ::core::ffi::c_int,
3171        >,
3172        pIn: *mut ::core::ffi::c_void,
3173        xFilter: ::core::option::Option<
3174            unsafe extern "C" fn(
3175                pCtx: *mut ::core::ffi::c_void,
3176                p: *mut sqlite3_changeset_iter,
3177            ) -> ::core::ffi::c_int,
3178        >,
3179        xConflict: ::core::option::Option<
3180            unsafe extern "C" fn(
3181                pCtx: *mut ::core::ffi::c_void,
3182                eConflict: ::core::ffi::c_int,
3183                p: *mut sqlite3_changeset_iter,
3184            ) -> ::core::ffi::c_int,
3185        >,
3186        pCtx: *mut ::core::ffi::c_void,
3187        ppRebase: *mut *mut ::core::ffi::c_void,
3188        pnRebase: *mut ::core::ffi::c_int,
3189        flags: ::core::ffi::c_int,
3190    ) -> ::core::ffi::c_int;
3191}
3192unsafe extern "C" {
3193    pub fn sqlite3changeset_concat_strm(
3194        xInputA: ::core::option::Option<
3195            unsafe extern "C" fn(
3196                pIn: *mut ::core::ffi::c_void,
3197                pData: *mut ::core::ffi::c_void,
3198                pnData: *mut ::core::ffi::c_int,
3199            ) -> ::core::ffi::c_int,
3200        >,
3201        pInA: *mut ::core::ffi::c_void,
3202        xInputB: ::core::option::Option<
3203            unsafe extern "C" fn(
3204                pIn: *mut ::core::ffi::c_void,
3205                pData: *mut ::core::ffi::c_void,
3206                pnData: *mut ::core::ffi::c_int,
3207            ) -> ::core::ffi::c_int,
3208        >,
3209        pInB: *mut ::core::ffi::c_void,
3210        xOutput: ::core::option::Option<
3211            unsafe extern "C" fn(
3212                pOut: *mut ::core::ffi::c_void,
3213                pData: *const ::core::ffi::c_void,
3214                nData: ::core::ffi::c_int,
3215            ) -> ::core::ffi::c_int,
3216        >,
3217        pOut: *mut ::core::ffi::c_void,
3218    ) -> ::core::ffi::c_int;
3219}
3220unsafe extern "C" {
3221    pub fn sqlite3changeset_invert_strm(
3222        xInput: ::core::option::Option<
3223            unsafe extern "C" fn(
3224                pIn: *mut ::core::ffi::c_void,
3225                pData: *mut ::core::ffi::c_void,
3226                pnData: *mut ::core::ffi::c_int,
3227            ) -> ::core::ffi::c_int,
3228        >,
3229        pIn: *mut ::core::ffi::c_void,
3230        xOutput: ::core::option::Option<
3231            unsafe extern "C" fn(
3232                pOut: *mut ::core::ffi::c_void,
3233                pData: *const ::core::ffi::c_void,
3234                nData: ::core::ffi::c_int,
3235            ) -> ::core::ffi::c_int,
3236        >,
3237        pOut: *mut ::core::ffi::c_void,
3238    ) -> ::core::ffi::c_int;
3239}
3240unsafe extern "C" {
3241    pub fn sqlite3changeset_start_strm(
3242        pp: *mut *mut sqlite3_changeset_iter,
3243        xInput: ::core::option::Option<
3244            unsafe extern "C" fn(
3245                pIn: *mut ::core::ffi::c_void,
3246                pData: *mut ::core::ffi::c_void,
3247                pnData: *mut ::core::ffi::c_int,
3248            ) -> ::core::ffi::c_int,
3249        >,
3250        pIn: *mut ::core::ffi::c_void,
3251    ) -> ::core::ffi::c_int;
3252}
3253unsafe extern "C" {
3254    pub fn sqlite3changeset_start_v2_strm(
3255        pp: *mut *mut sqlite3_changeset_iter,
3256        xInput: ::core::option::Option<
3257            unsafe extern "C" fn(
3258                pIn: *mut ::core::ffi::c_void,
3259                pData: *mut ::core::ffi::c_void,
3260                pnData: *mut ::core::ffi::c_int,
3261            ) -> ::core::ffi::c_int,
3262        >,
3263        pIn: *mut ::core::ffi::c_void,
3264        flags: ::core::ffi::c_int,
3265    ) -> ::core::ffi::c_int;
3266}
3267unsafe extern "C" {
3268    pub fn sqlite3session_changeset_strm(
3269        pSession: *mut sqlite3_session,
3270        xOutput: ::core::option::Option<
3271            unsafe extern "C" fn(
3272                pOut: *mut ::core::ffi::c_void,
3273                pData: *const ::core::ffi::c_void,
3274                nData: ::core::ffi::c_int,
3275            ) -> ::core::ffi::c_int,
3276        >,
3277        pOut: *mut ::core::ffi::c_void,
3278    ) -> ::core::ffi::c_int;
3279}
3280unsafe extern "C" {
3281    pub fn sqlite3session_patchset_strm(
3282        pSession: *mut sqlite3_session,
3283        xOutput: ::core::option::Option<
3284            unsafe extern "C" fn(
3285                pOut: *mut ::core::ffi::c_void,
3286                pData: *const ::core::ffi::c_void,
3287                nData: ::core::ffi::c_int,
3288            ) -> ::core::ffi::c_int,
3289        >,
3290        pOut: *mut ::core::ffi::c_void,
3291    ) -> ::core::ffi::c_int;
3292}
3293unsafe extern "C" {
3294    pub fn sqlite3changegroup_add_strm(
3295        arg1: *mut sqlite3_changegroup,
3296        xInput: ::core::option::Option<
3297            unsafe extern "C" fn(
3298                pIn: *mut ::core::ffi::c_void,
3299                pData: *mut ::core::ffi::c_void,
3300                pnData: *mut ::core::ffi::c_int,
3301            ) -> ::core::ffi::c_int,
3302        >,
3303        pIn: *mut ::core::ffi::c_void,
3304    ) -> ::core::ffi::c_int;
3305}
3306unsafe extern "C" {
3307    pub fn sqlite3changegroup_output_strm(
3308        arg1: *mut sqlite3_changegroup,
3309        xOutput: ::core::option::Option<
3310            unsafe extern "C" fn(
3311                pOut: *mut ::core::ffi::c_void,
3312                pData: *const ::core::ffi::c_void,
3313                nData: ::core::ffi::c_int,
3314            ) -> ::core::ffi::c_int,
3315        >,
3316        pOut: *mut ::core::ffi::c_void,
3317    ) -> ::core::ffi::c_int;
3318}
3319unsafe extern "C" {
3320    pub fn sqlite3rebaser_rebase_strm(
3321        pRebaser: *mut sqlite3_rebaser,
3322        xInput: ::core::option::Option<
3323            unsafe extern "C" fn(
3324                pIn: *mut ::core::ffi::c_void,
3325                pData: *mut ::core::ffi::c_void,
3326                pnData: *mut ::core::ffi::c_int,
3327            ) -> ::core::ffi::c_int,
3328        >,
3329        pIn: *mut ::core::ffi::c_void,
3330        xOutput: ::core::option::Option<
3331            unsafe extern "C" fn(
3332                pOut: *mut ::core::ffi::c_void,
3333                pData: *const ::core::ffi::c_void,
3334                nData: ::core::ffi::c_int,
3335            ) -> ::core::ffi::c_int,
3336        >,
3337        pOut: *mut ::core::ffi::c_void,
3338    ) -> ::core::ffi::c_int;
3339}
3340unsafe extern "C" {
3341    pub fn sqlite3session_config(
3342        op: ::core::ffi::c_int,
3343        pArg: *mut ::core::ffi::c_void,
3344    ) -> ::core::ffi::c_int;
3345}
3346#[repr(C)]
3347#[derive(Debug, Copy, Clone)]
3348pub struct Fts5Context {
3349    _unused: [u8; 0],
3350}
3351pub type fts5_extension_function = ::core::option::Option<
3352    unsafe extern "C" fn(
3353        pApi: *const Fts5ExtensionApi,
3354        pFts: *mut Fts5Context,
3355        pCtx: *mut sqlite3_context,
3356        nVal: ::core::ffi::c_int,
3357        apVal: *mut *mut sqlite3_value,
3358    ),
3359>;
3360#[repr(C)]
3361#[derive(Debug, Copy, Clone)]
3362pub struct Fts5PhraseIter {
3363    pub a: *const ::core::ffi::c_uchar,
3364    pub b: *const ::core::ffi::c_uchar,
3365}
3366#[repr(C)]
3367#[derive(Debug, Copy, Clone)]
3368pub struct Fts5ExtensionApi {
3369    pub iVersion: ::core::ffi::c_int,
3370    pub xUserData: ::core::option::Option<
3371        unsafe extern "C" fn(arg1: *mut Fts5Context) -> *mut ::core::ffi::c_void,
3372    >,
3373    pub xColumnCount: ::core::option::Option<
3374        unsafe extern "C" fn(arg1: *mut Fts5Context) -> ::core::ffi::c_int,
3375    >,
3376    pub xRowCount: ::core::option::Option<
3377        unsafe extern "C" fn(
3378            arg1: *mut Fts5Context,
3379            pnRow: *mut sqlite3_int64,
3380        ) -> ::core::ffi::c_int,
3381    >,
3382    pub xColumnTotalSize: ::core::option::Option<
3383        unsafe extern "C" fn(
3384            arg1: *mut Fts5Context,
3385            iCol: ::core::ffi::c_int,
3386            pnToken: *mut sqlite3_int64,
3387        ) -> ::core::ffi::c_int,
3388    >,
3389    pub xTokenize: ::core::option::Option<
3390        unsafe extern "C" fn(
3391            arg1: *mut Fts5Context,
3392            pText: *const ::core::ffi::c_char,
3393            nText: ::core::ffi::c_int,
3394            pCtx: *mut ::core::ffi::c_void,
3395            xToken: ::core::option::Option<
3396                unsafe extern "C" fn(
3397                    arg1: *mut ::core::ffi::c_void,
3398                    arg2: ::core::ffi::c_int,
3399                    arg3: *const ::core::ffi::c_char,
3400                    arg4: ::core::ffi::c_int,
3401                    arg5: ::core::ffi::c_int,
3402                    arg6: ::core::ffi::c_int,
3403                ) -> ::core::ffi::c_int,
3404            >,
3405        ) -> ::core::ffi::c_int,
3406    >,
3407    pub xPhraseCount: ::core::option::Option<
3408        unsafe extern "C" fn(arg1: *mut Fts5Context) -> ::core::ffi::c_int,
3409    >,
3410    pub xPhraseSize: ::core::option::Option<
3411        unsafe extern "C" fn(
3412            arg1: *mut Fts5Context,
3413            iPhrase: ::core::ffi::c_int,
3414        ) -> ::core::ffi::c_int,
3415    >,
3416    pub xInstCount: ::core::option::Option<
3417        unsafe extern "C" fn(
3418            arg1: *mut Fts5Context,
3419            pnInst: *mut ::core::ffi::c_int,
3420        ) -> ::core::ffi::c_int,
3421    >,
3422    pub xInst: ::core::option::Option<
3423        unsafe extern "C" fn(
3424            arg1: *mut Fts5Context,
3425            iIdx: ::core::ffi::c_int,
3426            piPhrase: *mut ::core::ffi::c_int,
3427            piCol: *mut ::core::ffi::c_int,
3428            piOff: *mut ::core::ffi::c_int,
3429        ) -> ::core::ffi::c_int,
3430    >,
3431    pub xRowid: ::core::option::Option<
3432        unsafe extern "C" fn(arg1: *mut Fts5Context) -> sqlite3_int64,
3433    >,
3434    pub xColumnText: ::core::option::Option<
3435        unsafe extern "C" fn(
3436            arg1: *mut Fts5Context,
3437            iCol: ::core::ffi::c_int,
3438            pz: *mut *const ::core::ffi::c_char,
3439            pn: *mut ::core::ffi::c_int,
3440        ) -> ::core::ffi::c_int,
3441    >,
3442    pub xColumnSize: ::core::option::Option<
3443        unsafe extern "C" fn(
3444            arg1: *mut Fts5Context,
3445            iCol: ::core::ffi::c_int,
3446            pnToken: *mut ::core::ffi::c_int,
3447        ) -> ::core::ffi::c_int,
3448    >,
3449    pub xQueryPhrase: ::core::option::Option<
3450        unsafe extern "C" fn(
3451            arg1: *mut Fts5Context,
3452            iPhrase: ::core::ffi::c_int,
3453            pUserData: *mut ::core::ffi::c_void,
3454            arg2: ::core::option::Option<
3455                unsafe extern "C" fn(
3456                    arg1: *const Fts5ExtensionApi,
3457                    arg2: *mut Fts5Context,
3458                    arg3: *mut ::core::ffi::c_void,
3459                ) -> ::core::ffi::c_int,
3460            >,
3461        ) -> ::core::ffi::c_int,
3462    >,
3463    pub xSetAuxdata: ::core::option::Option<
3464        unsafe extern "C" fn(
3465            arg1: *mut Fts5Context,
3466            pAux: *mut ::core::ffi::c_void,
3467            xDelete: ::core::option::Option<
3468                unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
3469            >,
3470        ) -> ::core::ffi::c_int,
3471    >,
3472    pub xGetAuxdata: ::core::option::Option<
3473        unsafe extern "C" fn(
3474            arg1: *mut Fts5Context,
3475            bClear: ::core::ffi::c_int,
3476        ) -> *mut ::core::ffi::c_void,
3477    >,
3478    pub xPhraseFirst: ::core::option::Option<
3479        unsafe extern "C" fn(
3480            arg1: *mut Fts5Context,
3481            iPhrase: ::core::ffi::c_int,
3482            arg2: *mut Fts5PhraseIter,
3483            arg3: *mut ::core::ffi::c_int,
3484            arg4: *mut ::core::ffi::c_int,
3485        ) -> ::core::ffi::c_int,
3486    >,
3487    pub xPhraseNext: ::core::option::Option<
3488        unsafe extern "C" fn(
3489            arg1: *mut Fts5Context,
3490            arg2: *mut Fts5PhraseIter,
3491            piCol: *mut ::core::ffi::c_int,
3492            piOff: *mut ::core::ffi::c_int,
3493        ),
3494    >,
3495    pub xPhraseFirstColumn: ::core::option::Option<
3496        unsafe extern "C" fn(
3497            arg1: *mut Fts5Context,
3498            iPhrase: ::core::ffi::c_int,
3499            arg2: *mut Fts5PhraseIter,
3500            arg3: *mut ::core::ffi::c_int,
3501        ) -> ::core::ffi::c_int,
3502    >,
3503    pub xPhraseNextColumn: ::core::option::Option<
3504        unsafe extern "C" fn(
3505            arg1: *mut Fts5Context,
3506            arg2: *mut Fts5PhraseIter,
3507            piCol: *mut ::core::ffi::c_int,
3508        ),
3509    >,
3510    pub xQueryToken: ::core::option::Option<
3511        unsafe extern "C" fn(
3512            arg1: *mut Fts5Context,
3513            iPhrase: ::core::ffi::c_int,
3514            iToken: ::core::ffi::c_int,
3515            ppToken: *mut *const ::core::ffi::c_char,
3516            pnToken: *mut ::core::ffi::c_int,
3517        ) -> ::core::ffi::c_int,
3518    >,
3519    pub xInstToken: ::core::option::Option<
3520        unsafe extern "C" fn(
3521            arg1: *mut Fts5Context,
3522            iIdx: ::core::ffi::c_int,
3523            iToken: ::core::ffi::c_int,
3524            arg2: *mut *const ::core::ffi::c_char,
3525            arg3: *mut ::core::ffi::c_int,
3526        ) -> ::core::ffi::c_int,
3527    >,
3528    pub xColumnLocale: ::core::option::Option<
3529        unsafe extern "C" fn(
3530            arg1: *mut Fts5Context,
3531            iCol: ::core::ffi::c_int,
3532            pz: *mut *const ::core::ffi::c_char,
3533            pn: *mut ::core::ffi::c_int,
3534        ) -> ::core::ffi::c_int,
3535    >,
3536    pub xTokenize_v2: ::core::option::Option<
3537        unsafe extern "C" fn(
3538            arg1: *mut Fts5Context,
3539            pText: *const ::core::ffi::c_char,
3540            nText: ::core::ffi::c_int,
3541            pLocale: *const ::core::ffi::c_char,
3542            nLocale: ::core::ffi::c_int,
3543            pCtx: *mut ::core::ffi::c_void,
3544            xToken: ::core::option::Option<
3545                unsafe extern "C" fn(
3546                    arg1: *mut ::core::ffi::c_void,
3547                    arg2: ::core::ffi::c_int,
3548                    arg3: *const ::core::ffi::c_char,
3549                    arg4: ::core::ffi::c_int,
3550                    arg5: ::core::ffi::c_int,
3551                    arg6: ::core::ffi::c_int,
3552                ) -> ::core::ffi::c_int,
3553            >,
3554        ) -> ::core::ffi::c_int,
3555    >,
3556}
3557#[repr(C)]
3558#[derive(Debug, Copy, Clone)]
3559pub struct Fts5Tokenizer {
3560    _unused: [u8; 0],
3561}
3562#[repr(C)]
3563#[derive(Debug, Copy, Clone)]
3564pub struct fts5_tokenizer_v2 {
3565    pub iVersion: ::core::ffi::c_int,
3566    pub xCreate: ::core::option::Option<
3567        unsafe extern "C" fn(
3568            arg1: *mut ::core::ffi::c_void,
3569            azArg: *mut *const ::core::ffi::c_char,
3570            nArg: ::core::ffi::c_int,
3571            ppOut: *mut *mut Fts5Tokenizer,
3572        ) -> ::core::ffi::c_int,
3573    >,
3574    pub xDelete: ::core::option::Option<unsafe extern "C" fn(arg1: *mut Fts5Tokenizer)>,
3575    pub xTokenize: ::core::option::Option<
3576        unsafe extern "C" fn(
3577            arg1: *mut Fts5Tokenizer,
3578            pCtx: *mut ::core::ffi::c_void,
3579            flags: ::core::ffi::c_int,
3580            pText: *const ::core::ffi::c_char,
3581            nText: ::core::ffi::c_int,
3582            pLocale: *const ::core::ffi::c_char,
3583            nLocale: ::core::ffi::c_int,
3584            xToken: ::core::option::Option<
3585                unsafe extern "C" fn(
3586                    pCtx: *mut ::core::ffi::c_void,
3587                    tflags: ::core::ffi::c_int,
3588                    pToken: *const ::core::ffi::c_char,
3589                    nToken: ::core::ffi::c_int,
3590                    iStart: ::core::ffi::c_int,
3591                    iEnd: ::core::ffi::c_int,
3592                ) -> ::core::ffi::c_int,
3593            >,
3594        ) -> ::core::ffi::c_int,
3595    >,
3596}
3597#[repr(C)]
3598#[derive(Debug, Copy, Clone)]
3599pub struct fts5_tokenizer {
3600    pub xCreate: ::core::option::Option<
3601        unsafe extern "C" fn(
3602            arg1: *mut ::core::ffi::c_void,
3603            azArg: *mut *const ::core::ffi::c_char,
3604            nArg: ::core::ffi::c_int,
3605            ppOut: *mut *mut Fts5Tokenizer,
3606        ) -> ::core::ffi::c_int,
3607    >,
3608    pub xDelete: ::core::option::Option<unsafe extern "C" fn(arg1: *mut Fts5Tokenizer)>,
3609    pub xTokenize: ::core::option::Option<
3610        unsafe extern "C" fn(
3611            arg1: *mut Fts5Tokenizer,
3612            pCtx: *mut ::core::ffi::c_void,
3613            flags: ::core::ffi::c_int,
3614            pText: *const ::core::ffi::c_char,
3615            nText: ::core::ffi::c_int,
3616            xToken: ::core::option::Option<
3617                unsafe extern "C" fn(
3618                    pCtx: *mut ::core::ffi::c_void,
3619                    tflags: ::core::ffi::c_int,
3620                    pToken: *const ::core::ffi::c_char,
3621                    nToken: ::core::ffi::c_int,
3622                    iStart: ::core::ffi::c_int,
3623                    iEnd: ::core::ffi::c_int,
3624                ) -> ::core::ffi::c_int,
3625            >,
3626        ) -> ::core::ffi::c_int,
3627    >,
3628}
3629#[repr(C)]
3630#[derive(Debug, Copy, Clone)]
3631pub struct fts5_api {
3632    pub iVersion: ::core::ffi::c_int,
3633    pub xCreateTokenizer: ::core::option::Option<
3634        unsafe extern "C" fn(
3635            pApi: *mut fts5_api,
3636            zName: *const ::core::ffi::c_char,
3637            pUserData: *mut ::core::ffi::c_void,
3638            pTokenizer: *mut fts5_tokenizer,
3639            xDestroy: ::core::option::Option<
3640                unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
3641            >,
3642        ) -> ::core::ffi::c_int,
3643    >,
3644    pub xFindTokenizer: ::core::option::Option<
3645        unsafe extern "C" fn(
3646            pApi: *mut fts5_api,
3647            zName: *const ::core::ffi::c_char,
3648            ppUserData: *mut *mut ::core::ffi::c_void,
3649            pTokenizer: *mut fts5_tokenizer,
3650        ) -> ::core::ffi::c_int,
3651    >,
3652    pub xCreateFunction: ::core::option::Option<
3653        unsafe extern "C" fn(
3654            pApi: *mut fts5_api,
3655            zName: *const ::core::ffi::c_char,
3656            pUserData: *mut ::core::ffi::c_void,
3657            xFunction: fts5_extension_function,
3658            xDestroy: ::core::option::Option<
3659                unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
3660            >,
3661        ) -> ::core::ffi::c_int,
3662    >,
3663    pub xCreateTokenizer_v2: ::core::option::Option<
3664        unsafe extern "C" fn(
3665            pApi: *mut fts5_api,
3666            zName: *const ::core::ffi::c_char,
3667            pUserData: *mut ::core::ffi::c_void,
3668            pTokenizer: *mut fts5_tokenizer_v2,
3669            xDestroy: ::core::option::Option<
3670                unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void),
3671            >,
3672        ) -> ::core::ffi::c_int,
3673    >,
3674    pub xFindTokenizer_v2: ::core::option::Option<
3675        unsafe extern "C" fn(
3676            pApi: *mut fts5_api,
3677            zName: *const ::core::ffi::c_char,
3678            ppUserData: *mut *mut ::core::ffi::c_void,
3679            ppTokenizer: *mut *mut fts5_tokenizer_v2,
3680        ) -> ::core::ffi::c_int,
3681    >,
3682}