squire_sqlite3_sys/bindings/default/
function.rs1use core::ffi::{c_char, c_int, c_uchar, c_uint, c_void};
2
3use super::{
4 connection::sqlite3,
5 sqlite3_destructor_type,
6 types::{sqlite3_int64, sqlite3_uint64},
7 value::sqlite3_value,
8};
9
10#[repr(C)]
14pub struct sqlite3_context {
15 _unused: [u8; 0],
16}
17
18unsafe extern "C" {
19 pub fn sqlite3_create_function_v2(
20 db: *mut sqlite3,
21 zFunctionName: *const c_char,
22 nArg: c_int,
23 eTextRep: c_int,
24 pApp: *mut c_void,
25 xFunc: Option<
26 unsafe extern "C" fn(
27 context: *mut sqlite3_context,
28 nArg: c_int,
29 args: *mut *mut sqlite3_value,
30 ),
31 >,
32 xStep: Option<
33 unsafe extern "C" fn(
34 context: *mut sqlite3_context,
35 nArg: c_int,
36 args: *mut *mut sqlite3_value,
37 ),
38 >,
39 xFinal: Option<unsafe extern "C" fn(context: *mut sqlite3_context)>,
40 xDestroy: Option<unsafe extern "C" fn(pApp: *mut c_void)>,
41 ) -> c_int;
42
43 pub fn sqlite3_create_window_function(
44 db: *mut sqlite3,
45 zFunctionName: *const c_char,
46 nArg: c_int,
47 eTextRep: c_int,
48 pApp: *mut c_void,
49 xStep: Option<
50 unsafe extern "C" fn(
51 context: *mut sqlite3_context,
52 nArg: c_int,
53 args: *mut *mut sqlite3_value,
54 ),
55 >,
56 xFinal: Option<unsafe extern "C" fn(context: *mut sqlite3_context)>,
57 xValue: Option<unsafe extern "C" fn(context: *mut sqlite3_context)>,
58 xInverse: Option<
59 unsafe extern "C" fn(
60 conte: *mut sqlite3_context,
61 arg2: c_int,
62 arg3: *mut *mut sqlite3_value,
63 ),
64 >,
65 xDestroy: Option<unsafe extern "C" fn(pApp: *mut c_void)>,
66 ) -> c_int;
67
68 pub fn sqlite3_context_db_handle(pCtx: *mut sqlite3_context) -> *mut sqlite3;
69
70 pub fn sqlite3_result_blob(
71 context: *mut sqlite3_context,
72 value: *const c_void,
73 len: c_int,
74 destructor: sqlite3_destructor_type,
75 );
76 pub fn sqlite3_result_blob64(
77 context: *mut sqlite3_context,
78 value: *const c_void,
79 len: sqlite3_uint64,
80 destructor: sqlite3_destructor_type,
81 );
82 pub fn sqlite3_result_double(context: *mut sqlite3_context, value: f64);
83 pub fn sqlite3_result_error(context: *mut sqlite3_context, message: *const c_char, len: c_int);
84 pub fn sqlite3_result_error_toobig(context: *mut sqlite3_context);
85 pub fn sqlite3_result_error_nomem(context: *mut sqlite3_context);
86 pub fn sqlite3_result_error_code(context: *mut sqlite3_context, value: c_int);
87 pub fn sqlite3_result_int(context: *mut sqlite3_context, value: c_int);
88 pub fn sqlite3_result_int64(context: *mut sqlite3_context, value: sqlite3_int64);
89 pub fn sqlite3_result_null(context: *mut sqlite3_context);
90 pub fn sqlite3_result_text(
91 context: *mut sqlite3_context,
92 value: *const c_char,
93 len: c_int,
94 destructor: sqlite3_destructor_type,
95 );
96 pub fn sqlite3_result_text64(
97 context: *mut sqlite3_context,
98 value: *const c_char,
99 len: sqlite3_uint64,
100 destructor: sqlite3_destructor_type,
101 encoding: c_uchar,
102 );
103 pub fn sqlite3_result_value(context: *mut sqlite3_context, value: *mut sqlite3_value);
104 pub fn sqlite3_result_pointer(
105 context: *mut sqlite3_context,
106 value: *mut c_void,
107 type_name: *const c_char,
108 destructor: sqlite3_destructor_type,
109 );
110 pub fn sqlite3_result_zeroblob(context: *mut sqlite3_context, bytes: c_int);
111 pub fn sqlite3_result_zeroblob64(context: *mut sqlite3_context, bytes: sqlite3_uint64)
112 -> c_int;
113 pub fn sqlite3_result_subtype(context: *mut sqlite3_context, value: c_uint);
114
115 pub fn sqlite3_get_auxdata(context: *mut sqlite3_context, iArg: c_int) -> *mut c_void;
116 pub fn sqlite3_set_auxdata(
117 context: *mut sqlite3_context,
118 iArg: c_int,
119 pData: *mut c_void,
120 destructor: Option<unsafe extern "C" fn(arg1: *mut c_void)>,
121 );
122
123 pub fn sqlite3_aggregate_context(context: *mut sqlite3_context, nBytes: c_int) -> *mut c_void;
124
125 pub fn sqlite3_user_data(context: *mut sqlite3_context) -> *mut c_void;
126}
127
128pub const SQLITE_DETERMINISTIC: i32 = 1 << 11;
129pub const SQLITE_DIRECTONLY: i32 = 1 << 19;
130pub const SQLITE_SUBTYPE: i32 = 1 << 20;
131pub const SQLITE_INNOCUOUS: i32 = 1 << 21;
132pub const SQLITE_RESULT_SUBTYPE: i32 = 1 << 24;
133pub const SQLITE_SELFORDER1: i32 = 1 << 25;