1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use crate::{errors::Result, ext::faux_sqlite_extension_init2};
use sqlite3ext_sys::{sqlite3, sqlite3_api_routines, SQLITE_OK};
use std::os::raw::{c_char, c_uint};
pub fn register_entrypoint<F>(
db: *mut sqlite3,
_pz_err_msg: *mut *mut c_char,
p_api: *mut sqlite3_api_routines,
callback: F,
) -> c_uint
where
F: Fn(*mut sqlite3) -> Result<()>,
{
unsafe {
faux_sqlite_extension_init2(p_api);
}
match callback(db) {
Ok(()) => SQLITE_OK,
Err(err) => err.code_extended(),
}
}