odpic_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3pub const DPI_MAJOR_VERSION: u32 = 5;
4pub const DPI_MINOR_VERSION: u32 = 4;
5pub const DPI_PATCH_LEVEL: u32 = 1;
6pub const DPI_DEFAULT_FETCH_ARRAY_SIZE: u32 = 100;
7pub const DPI_DEFAULT_PREFETCH_ROWS: u32 = 2;
8pub const DPI_DEFAULT_PING_INTERVAL: u32 = 60;
9pub const DPI_DEFAULT_PING_TIMEOUT: u32 = 5000;
10pub const DPI_DEFAULT_STMT_CACHE_SIZE: u32 = 20;
11pub const DPI_DEQ_WAIT_NO_WAIT: u32 = 0;
12pub const DPI_MAX_INT64_PRECISION: u32 = 18;
13pub const DPI_SUCCESS: u32 = 0;
14pub const DPI_FAILURE: i32 = -1;
15pub const DPI_DEBUG_LEVEL_UNREPORTED_ERRORS: u32 = 1;
16pub const DPI_DEBUG_LEVEL_REFS: u32 = 2;
17pub const DPI_DEBUG_LEVEL_FNS: u32 = 4;
18pub const DPI_DEBUG_LEVEL_ERRORS: u32 = 8;
19pub const DPI_DEBUG_LEVEL_SQL: u32 = 16;
20pub const DPI_DEBUG_LEVEL_MEM: u32 = 32;
21pub const DPI_DEBUG_LEVEL_LOAD_LIB: u32 = 64;
22pub const DPI_MODE_AUTH_DEFAULT: u32 = 0;
23pub const DPI_MODE_AUTH_SYSDBA: u32 = 2;
24pub const DPI_MODE_AUTH_SYSOPER: u32 = 4;
25pub const DPI_MODE_AUTH_PRELIM: u32 = 8;
26pub const DPI_MODE_AUTH_SYSASM: u32 = 32768;
27pub const DPI_MODE_AUTH_SYSBKP: u32 = 131072;
28pub const DPI_MODE_AUTH_SYSDGD: u32 = 262144;
29pub const DPI_MODE_AUTH_SYSKMT: u32 = 524288;
30pub const DPI_MODE_AUTH_SYSRAC: u32 = 1048576;
31pub const DPI_MODE_CONN_CLOSE_DEFAULT: u32 = 0;
32pub const DPI_MODE_CONN_CLOSE_DROP: u32 = 1;
33pub const DPI_MODE_CONN_CLOSE_RETAG: u32 = 2;
34pub const DPI_MODE_CREATE_DEFAULT: u32 = 0;
35pub const DPI_MODE_CREATE_THREADED: u32 = 1;
36pub const DPI_MODE_CREATE_EVENTS: u32 = 4;
37pub const DPI_MODE_DEQ_BROWSE: u32 = 1;
38pub const DPI_MODE_DEQ_LOCKED: u32 = 2;
39pub const DPI_MODE_DEQ_REMOVE: u32 = 3;
40pub const DPI_MODE_DEQ_REMOVE_NO_DATA: u32 = 4;
41pub const DPI_DEQ_NAV_FIRST_MSG: u32 = 1;
42pub const DPI_DEQ_NAV_NEXT_TRANSACTION: u32 = 2;
43pub const DPI_DEQ_NAV_NEXT_MSG: u32 = 3;
44pub const DPI_EVENT_NONE: u32 = 0;
45pub const DPI_EVENT_STARTUP: u32 = 1;
46pub const DPI_EVENT_SHUTDOWN: u32 = 2;
47pub const DPI_EVENT_SHUTDOWN_ANY: u32 = 3;
48pub const DPI_EVENT_DEREG: u32 = 5;
49pub const DPI_EVENT_OBJCHANGE: u32 = 6;
50pub const DPI_EVENT_QUERYCHANGE: u32 = 7;
51pub const DPI_EVENT_AQ: u32 = 100;
52pub const DPI_JSON_OPT_DEFAULT: u32 = 0;
53pub const DPI_JSON_OPT_NUMBER_AS_STRING: u32 = 1;
54pub const DPI_JSON_OPT_DATE_AS_DOUBLE: u32 = 2;
55pub const DPI_MODE_EXEC_DEFAULT: u32 = 0;
56pub const DPI_MODE_EXEC_DESCRIBE_ONLY: u32 = 16;
57pub const DPI_MODE_EXEC_COMMIT_ON_SUCCESS: u32 = 32;
58pub const DPI_MODE_EXEC_BATCH_ERRORS: u32 = 128;
59pub const DPI_MODE_EXEC_PARSE_ONLY: u32 = 256;
60pub const DPI_MODE_EXEC_ARRAY_DML_ROWCOUNTS: u32 = 1048576;
61pub const DPI_MODE_FETCH_NEXT: u32 = 2;
62pub const DPI_MODE_FETCH_FIRST: u32 = 4;
63pub const DPI_MODE_FETCH_LAST: u32 = 8;
64pub const DPI_MODE_FETCH_PRIOR: u32 = 16;
65pub const DPI_MODE_FETCH_ABSOLUTE: u32 = 32;
66pub const DPI_MODE_FETCH_RELATIVE: u32 = 64;
67pub const DPI_MODE_MSG_PERSISTENT: u32 = 1;
68pub const DPI_MODE_MSG_BUFFERED: u32 = 2;
69pub const DPI_MODE_MSG_PERSISTENT_OR_BUFFERED: u32 = 3;
70pub const DPI_MSG_STATE_READY: u32 = 0;
71pub const DPI_MSG_STATE_WAITING: u32 = 1;
72pub const DPI_MSG_STATE_PROCESSED: u32 = 2;
73pub const DPI_MSG_STATE_EXPIRED: u32 = 3;
74pub const DPI_NATIVE_TYPE_INT64: u32 = 3000;
75pub const DPI_NATIVE_TYPE_UINT64: u32 = 3001;
76pub const DPI_NATIVE_TYPE_FLOAT: u32 = 3002;
77pub const DPI_NATIVE_TYPE_DOUBLE: u32 = 3003;
78pub const DPI_NATIVE_TYPE_BYTES: u32 = 3004;
79pub const DPI_NATIVE_TYPE_TIMESTAMP: u32 = 3005;
80pub const DPI_NATIVE_TYPE_INTERVAL_DS: u32 = 3006;
81pub const DPI_NATIVE_TYPE_INTERVAL_YM: u32 = 3007;
82pub const DPI_NATIVE_TYPE_LOB: u32 = 3008;
83pub const DPI_NATIVE_TYPE_OBJECT: u32 = 3009;
84pub const DPI_NATIVE_TYPE_STMT: u32 = 3010;
85pub const DPI_NATIVE_TYPE_BOOLEAN: u32 = 3011;
86pub const DPI_NATIVE_TYPE_ROWID: u32 = 3012;
87pub const DPI_NATIVE_TYPE_JSON: u32 = 3013;
88pub const DPI_NATIVE_TYPE_JSON_OBJECT: u32 = 3014;
89pub const DPI_NATIVE_TYPE_JSON_ARRAY: u32 = 3015;
90pub const DPI_NATIVE_TYPE_NULL: u32 = 3016;
91pub const DPI_NATIVE_TYPE_VECTOR: u32 = 3017;
92pub const DPI_OPCODE_ALL_OPS: u32 = 0;
93pub const DPI_OPCODE_ALL_ROWS: u32 = 1;
94pub const DPI_OPCODE_INSERT: u32 = 2;
95pub const DPI_OPCODE_UPDATE: u32 = 4;
96pub const DPI_OPCODE_DELETE: u32 = 8;
97pub const DPI_OPCODE_ALTER: u32 = 16;
98pub const DPI_OPCODE_DROP: u32 = 32;
99pub const DPI_OPCODE_UNKNOWN: u32 = 64;
100pub const DPI_ORACLE_TYPE_NONE: u32 = 2000;
101pub const DPI_ORACLE_TYPE_VARCHAR: u32 = 2001;
102pub const DPI_ORACLE_TYPE_NVARCHAR: u32 = 2002;
103pub const DPI_ORACLE_TYPE_CHAR: u32 = 2003;
104pub const DPI_ORACLE_TYPE_NCHAR: u32 = 2004;
105pub const DPI_ORACLE_TYPE_ROWID: u32 = 2005;
106pub const DPI_ORACLE_TYPE_RAW: u32 = 2006;
107pub const DPI_ORACLE_TYPE_NATIVE_FLOAT: u32 = 2007;
108pub const DPI_ORACLE_TYPE_NATIVE_DOUBLE: u32 = 2008;
109pub const DPI_ORACLE_TYPE_NATIVE_INT: u32 = 2009;
110pub const DPI_ORACLE_TYPE_NUMBER: u32 = 2010;
111pub const DPI_ORACLE_TYPE_DATE: u32 = 2011;
112pub const DPI_ORACLE_TYPE_TIMESTAMP: u32 = 2012;
113pub const DPI_ORACLE_TYPE_TIMESTAMP_TZ: u32 = 2013;
114pub const DPI_ORACLE_TYPE_TIMESTAMP_LTZ: u32 = 2014;
115pub const DPI_ORACLE_TYPE_INTERVAL_DS: u32 = 2015;
116pub const DPI_ORACLE_TYPE_INTERVAL_YM: u32 = 2016;
117pub const DPI_ORACLE_TYPE_CLOB: u32 = 2017;
118pub const DPI_ORACLE_TYPE_NCLOB: u32 = 2018;
119pub const DPI_ORACLE_TYPE_BLOB: u32 = 2019;
120pub const DPI_ORACLE_TYPE_BFILE: u32 = 2020;
121pub const DPI_ORACLE_TYPE_STMT: u32 = 2021;
122pub const DPI_ORACLE_TYPE_BOOLEAN: u32 = 2022;
123pub const DPI_ORACLE_TYPE_OBJECT: u32 = 2023;
124pub const DPI_ORACLE_TYPE_LONG_VARCHAR: u32 = 2024;
125pub const DPI_ORACLE_TYPE_LONG_RAW: u32 = 2025;
126pub const DPI_ORACLE_TYPE_NATIVE_UINT: u32 = 2026;
127pub const DPI_ORACLE_TYPE_JSON: u32 = 2027;
128pub const DPI_ORACLE_TYPE_JSON_OBJECT: u32 = 2028;
129pub const DPI_ORACLE_TYPE_JSON_ARRAY: u32 = 2029;
130pub const DPI_ORACLE_TYPE_UROWID: u32 = 2030;
131pub const DPI_ORACLE_TYPE_LONG_NVARCHAR: u32 = 2031;
132pub const DPI_ORACLE_TYPE_XMLTYPE: u32 = 2032;
133pub const DPI_ORACLE_TYPE_VECTOR: u32 = 2033;
134pub const DPI_ORACLE_TYPE_JSON_ID: u32 = 2034;
135pub const DPI_ORACLE_TYPE_MAX: u32 = 2035;
136pub const DPI_MODE_POOL_CLOSE_DEFAULT: u32 = 0;
137pub const DPI_MODE_POOL_CLOSE_FORCE: u32 = 1;
138pub const DPI_MODE_POOL_GET_WAIT: u32 = 0;
139pub const DPI_MODE_POOL_GET_NOWAIT: u32 = 1;
140pub const DPI_MODE_POOL_GET_FORCEGET: u32 = 2;
141pub const DPI_MODE_POOL_GET_TIMEDWAIT: u32 = 3;
142pub const DPI_PURITY_DEFAULT: u32 = 0;
143pub const DPI_PURITY_NEW: u32 = 1;
144pub const DPI_PURITY_SELF: u32 = 2;
145pub const DPI_MODE_SHUTDOWN_DEFAULT: u32 = 0;
146pub const DPI_MODE_SHUTDOWN_TRANSACTIONAL: u32 = 1;
147pub const DPI_MODE_SHUTDOWN_TRANSACTIONAL_LOCAL: u32 = 2;
148pub const DPI_MODE_SHUTDOWN_IMMEDIATE: u32 = 3;
149pub const DPI_MODE_SHUTDOWN_ABORT: u32 = 4;
150pub const DPI_MODE_SHUTDOWN_FINAL: u32 = 5;
151pub const DPI_SODA_FLAGS_DEFAULT: u32 = 0;
152pub const DPI_SODA_FLAGS_ATOMIC_COMMIT: u32 = 1;
153pub const DPI_SODA_FLAGS_CREATE_COLL_MAP: u32 = 2;
154pub const DPI_SODA_FLAGS_INDEX_DROP_FORCE: u32 = 4;
155pub const DPI_MODE_STARTUP_DEFAULT: u32 = 0;
156pub const DPI_MODE_STARTUP_FORCE: u32 = 1;
157pub const DPI_MODE_STARTUP_RESTRICT: u32 = 2;
158pub const DPI_SERVER_TYPE_UNKNOWN: u32 = 0;
159pub const DPI_SERVER_TYPE_DEDICATED: u32 = 1;
160pub const DPI_SERVER_TYPE_SHARED: u32 = 2;
161pub const DPI_SERVER_TYPE_POOLED: u32 = 4;
162pub const DPI_STMT_TYPE_UNKNOWN: u32 = 0;
163pub const DPI_STMT_TYPE_SELECT: u32 = 1;
164pub const DPI_STMT_TYPE_UPDATE: u32 = 2;
165pub const DPI_STMT_TYPE_DELETE: u32 = 3;
166pub const DPI_STMT_TYPE_INSERT: u32 = 4;
167pub const DPI_STMT_TYPE_CREATE: u32 = 5;
168pub const DPI_STMT_TYPE_DROP: u32 = 6;
169pub const DPI_STMT_TYPE_ALTER: u32 = 7;
170pub const DPI_STMT_TYPE_BEGIN: u32 = 8;
171pub const DPI_STMT_TYPE_DECLARE: u32 = 9;
172pub const DPI_STMT_TYPE_CALL: u32 = 10;
173pub const DPI_STMT_TYPE_EXPLAIN_PLAN: u32 = 15;
174pub const DPI_STMT_TYPE_MERGE: u32 = 16;
175pub const DPI_STMT_TYPE_ROLLBACK: u32 = 17;
176pub const DPI_STMT_TYPE_COMMIT: u32 = 21;
177pub const DPI_SUBSCR_GROUPING_CLASS_TIME: u32 = 1;
178pub const DPI_SUBSCR_GROUPING_TYPE_SUMMARY: u32 = 1;
179pub const DPI_SUBSCR_GROUPING_TYPE_LAST: u32 = 2;
180pub const DPI_SUBSCR_NAMESPACE_AQ: u32 = 1;
181pub const DPI_SUBSCR_NAMESPACE_DBCHANGE: u32 = 2;
182pub const DPI_SUBSCR_PROTO_CALLBACK: u32 = 0;
183pub const DPI_SUBSCR_PROTO_MAIL: u32 = 1;
184pub const DPI_SUBSCR_PROTO_PLSQL: u32 = 2;
185pub const DPI_SUBSCR_PROTO_HTTP: u32 = 3;
186pub const DPI_SUBSCR_QOS_RELIABLE: u32 = 1;
187pub const DPI_SUBSCR_QOS_DEREG_NFY: u32 = 2;
188pub const DPI_SUBSCR_QOS_ROWIDS: u32 = 4;
189pub const DPI_SUBSCR_QOS_QUERY: u32 = 8;
190pub const DPI_SUBSCR_QOS_BEST_EFFORT: u32 = 16;
191pub const DPI_TPC_BEGIN_JOIN: u32 = 2;
192pub const DPI_TPC_BEGIN_NEW: u32 = 1;
193pub const DPI_TPC_BEGIN_PROMOTE: u32 = 8;
194pub const DPI_TPC_BEGIN_RESUME: u32 = 4;
195pub const DPI_TPC_END_NORMAL: u32 = 0;
196pub const DPI_TPC_END_SUSPEND: u32 = 1048576;
197pub const DPI_VECTOR_FLAGS_FLEXIBLE_DIM: u32 = 1;
198pub const DPI_VECTOR_FORMAT_FLOAT32: u32 = 2;
199pub const DPI_VECTOR_FORMAT_FLOAT64: u32 = 3;
200pub const DPI_VECTOR_FORMAT_INT8: u32 = 4;
201pub const DPI_VECTOR_FORMAT_BINARY: u32 = 5;
202pub const DPI_VISIBILITY_IMMEDIATE: u32 = 1;
203pub const DPI_VISIBILITY_ON_COMMIT: u32 = 2;
204pub type dpiAuthMode = u32;
205pub type dpiConnCloseMode = u32;
206pub type dpiCreateMode = u32;
207pub type dpiDeqMode = u32;
208pub type dpiDeqNavigation = u32;
209pub type dpiEventType = u32;
210pub type dpiExecMode = u32;
211pub type dpiFetchMode = u16;
212pub type dpiMessageDeliveryMode = u16;
213pub type dpiMessageState = u32;
214pub type dpiNativeTypeNum = u32;
215pub type dpiOpCode = u32;
216pub type dpiOracleTypeNum = u32;
217pub type dpiPoolCloseMode = u32;
218pub type dpiPoolGetMode = u8;
219pub type dpiPurity = u32;
220pub type dpiShutdownMode = u32;
221pub type dpiStartupMode = u32;
222pub type dpiServerType = u8;
223pub type dpiStatementType = u16;
224pub type dpiSubscrGroupingClass = u8;
225pub type dpiSubscrGroupingType = u8;
226pub type dpiSubscrNamespace = u32;
227pub type dpiSubscrProtocol = u32;
228pub type dpiSubscrQOS = u32;
229pub type dpiTpcBeginFlags = u32;
230pub type dpiTpcEndFlags = u32;
231pub type dpiVectorFlags = u8;
232pub type dpiVectorFormat = u8;
233pub type dpiVisibility = u32;
234#[repr(C)]
235#[derive(Debug, Copy, Clone)]
236pub struct dpiConn {
237    _unused: [u8; 0],
238}
239#[repr(C)]
240#[derive(Debug, Copy, Clone)]
241pub struct dpiContext {
242    _unused: [u8; 0],
243}
244#[repr(C)]
245#[derive(Debug, Copy, Clone)]
246pub struct dpiDeqOptions {
247    _unused: [u8; 0],
248}
249#[repr(C)]
250#[derive(Debug, Copy, Clone)]
251pub struct dpiEnqOptions {
252    _unused: [u8; 0],
253}
254#[repr(C)]
255#[derive(Debug, Copy, Clone)]
256pub struct dpiJson {
257    _unused: [u8; 0],
258}
259#[repr(C)]
260#[derive(Debug, Copy, Clone)]
261pub struct dpiLob {
262    _unused: [u8; 0],
263}
264#[repr(C)]
265#[derive(Debug, Copy, Clone)]
266pub struct dpiMsgProps {
267    _unused: [u8; 0],
268}
269#[repr(C)]
270#[derive(Debug, Copy, Clone)]
271pub struct dpiObject {
272    _unused: [u8; 0],
273}
274#[repr(C)]
275#[derive(Debug, Copy, Clone)]
276pub struct dpiObjectAttr {
277    _unused: [u8; 0],
278}
279#[repr(C)]
280#[derive(Debug, Copy, Clone)]
281pub struct dpiObjectType {
282    _unused: [u8; 0],
283}
284#[repr(C)]
285#[derive(Debug, Copy, Clone)]
286pub struct dpiPool {
287    _unused: [u8; 0],
288}
289#[repr(C)]
290#[derive(Debug, Copy, Clone)]
291pub struct dpiQueue {
292    _unused: [u8; 0],
293}
294#[repr(C)]
295#[derive(Debug, Copy, Clone)]
296pub struct dpiRowid {
297    _unused: [u8; 0],
298}
299#[repr(C)]
300#[derive(Debug, Copy, Clone)]
301pub struct dpiSodaColl {
302    _unused: [u8; 0],
303}
304#[repr(C)]
305#[derive(Debug, Copy, Clone)]
306pub struct dpiSodaCollCursor {
307    _unused: [u8; 0],
308}
309#[repr(C)]
310#[derive(Debug, Copy, Clone)]
311pub struct dpiSodaDb {
312    _unused: [u8; 0],
313}
314#[repr(C)]
315#[derive(Debug, Copy, Clone)]
316pub struct dpiSodaDoc {
317    _unused: [u8; 0],
318}
319#[repr(C)]
320#[derive(Debug, Copy, Clone)]
321pub struct dpiSodaDocCursor {
322    _unused: [u8; 0],
323}
324#[repr(C)]
325#[derive(Debug, Copy, Clone)]
326pub struct dpiStmt {
327    _unused: [u8; 0],
328}
329#[repr(C)]
330#[derive(Debug, Copy, Clone)]
331pub struct dpiSubscr {
332    _unused: [u8; 0],
333}
334#[repr(C)]
335#[derive(Debug, Copy, Clone)]
336pub struct dpiVar {
337    _unused: [u8; 0],
338}
339#[repr(C)]
340#[derive(Debug, Copy, Clone)]
341pub struct dpiVector {
342    _unused: [u8; 0],
343}
344pub type dpiSodaCollNames = dpiStringList;
345pub type dpiAccessTokenCallback = ::std::option::Option<
346    unsafe extern "C" fn(
347        context: *mut ::std::os::raw::c_void,
348        accessToken: *mut dpiAccessToken,
349    ) -> ::std::os::raw::c_int,
350>;
351#[repr(C)]
352#[derive(Debug, Copy, Clone)]
353pub struct dpiBytes {
354    pub ptr: *mut ::std::os::raw::c_char,
355    pub length: u32,
356    pub encoding: *const ::std::os::raw::c_char,
357}
358#[test]
359fn bindgen_test_layout_dpiBytes() {
360    const UNINIT: ::std::mem::MaybeUninit<dpiBytes> = ::std::mem::MaybeUninit::uninit();
361    let ptr = UNINIT.as_ptr();
362    assert_eq!(
363        ::std::mem::size_of::<dpiBytes>(),
364        24usize,
365        "Size of dpiBytes"
366    );
367    assert_eq!(
368        ::std::mem::align_of::<dpiBytes>(),
369        8usize,
370        "Alignment of dpiBytes"
371    );
372    assert_eq!(
373        unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize },
374        0usize,
375        "Offset of field: dpiBytes::ptr"
376    );
377    assert_eq!(
378        unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize },
379        8usize,
380        "Offset of field: dpiBytes::length"
381    );
382    assert_eq!(
383        unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize },
384        16usize,
385        "Offset of field: dpiBytes::encoding"
386    );
387}
388impl Default for dpiBytes {
389    fn default() -> Self {
390        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
391        unsafe {
392            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
393            s.assume_init()
394        }
395    }
396}
397#[repr(C)]
398#[derive(Debug, Default, Copy, Clone)]
399pub struct dpiIntervalDS {
400    pub days: i32,
401    pub hours: i32,
402    pub minutes: i32,
403    pub seconds: i32,
404    pub fseconds: i32,
405}
406#[test]
407fn bindgen_test_layout_dpiIntervalDS() {
408    const UNINIT: ::std::mem::MaybeUninit<dpiIntervalDS> = ::std::mem::MaybeUninit::uninit();
409    let ptr = UNINIT.as_ptr();
410    assert_eq!(
411        ::std::mem::size_of::<dpiIntervalDS>(),
412        20usize,
413        "Size of dpiIntervalDS"
414    );
415    assert_eq!(
416        ::std::mem::align_of::<dpiIntervalDS>(),
417        4usize,
418        "Alignment of dpiIntervalDS"
419    );
420    assert_eq!(
421        unsafe { ::std::ptr::addr_of!((*ptr).days) as usize - ptr as usize },
422        0usize,
423        "Offset of field: dpiIntervalDS::days"
424    );
425    assert_eq!(
426        unsafe { ::std::ptr::addr_of!((*ptr).hours) as usize - ptr as usize },
427        4usize,
428        "Offset of field: dpiIntervalDS::hours"
429    );
430    assert_eq!(
431        unsafe { ::std::ptr::addr_of!((*ptr).minutes) as usize - ptr as usize },
432        8usize,
433        "Offset of field: dpiIntervalDS::minutes"
434    );
435    assert_eq!(
436        unsafe { ::std::ptr::addr_of!((*ptr).seconds) as usize - ptr as usize },
437        12usize,
438        "Offset of field: dpiIntervalDS::seconds"
439    );
440    assert_eq!(
441        unsafe { ::std::ptr::addr_of!((*ptr).fseconds) as usize - ptr as usize },
442        16usize,
443        "Offset of field: dpiIntervalDS::fseconds"
444    );
445}
446#[repr(C)]
447#[derive(Debug, Default, Copy, Clone)]
448pub struct dpiIntervalYM {
449    pub years: i32,
450    pub months: i32,
451}
452#[test]
453fn bindgen_test_layout_dpiIntervalYM() {
454    const UNINIT: ::std::mem::MaybeUninit<dpiIntervalYM> = ::std::mem::MaybeUninit::uninit();
455    let ptr = UNINIT.as_ptr();
456    assert_eq!(
457        ::std::mem::size_of::<dpiIntervalYM>(),
458        8usize,
459        "Size of dpiIntervalYM"
460    );
461    assert_eq!(
462        ::std::mem::align_of::<dpiIntervalYM>(),
463        4usize,
464        "Alignment of dpiIntervalYM"
465    );
466    assert_eq!(
467        unsafe { ::std::ptr::addr_of!((*ptr).years) as usize - ptr as usize },
468        0usize,
469        "Offset of field: dpiIntervalYM::years"
470    );
471    assert_eq!(
472        unsafe { ::std::ptr::addr_of!((*ptr).months) as usize - ptr as usize },
473        4usize,
474        "Offset of field: dpiIntervalYM::months"
475    );
476}
477#[repr(C)]
478#[derive(Debug, Copy, Clone)]
479pub struct dpiJsonNode {
480    pub oracleTypeNum: dpiOracleTypeNum,
481    pub nativeTypeNum: dpiNativeTypeNum,
482    pub value: *mut dpiDataBuffer,
483}
484#[test]
485fn bindgen_test_layout_dpiJsonNode() {
486    const UNINIT: ::std::mem::MaybeUninit<dpiJsonNode> = ::std::mem::MaybeUninit::uninit();
487    let ptr = UNINIT.as_ptr();
488    assert_eq!(
489        ::std::mem::size_of::<dpiJsonNode>(),
490        16usize,
491        "Size of dpiJsonNode"
492    );
493    assert_eq!(
494        ::std::mem::align_of::<dpiJsonNode>(),
495        8usize,
496        "Alignment of dpiJsonNode"
497    );
498    assert_eq!(
499        unsafe { ::std::ptr::addr_of!((*ptr).oracleTypeNum) as usize - ptr as usize },
500        0usize,
501        "Offset of field: dpiJsonNode::oracleTypeNum"
502    );
503    assert_eq!(
504        unsafe { ::std::ptr::addr_of!((*ptr).nativeTypeNum) as usize - ptr as usize },
505        4usize,
506        "Offset of field: dpiJsonNode::nativeTypeNum"
507    );
508    assert_eq!(
509        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
510        8usize,
511        "Offset of field: dpiJsonNode::value"
512    );
513}
514impl Default for dpiJsonNode {
515    fn default() -> Self {
516        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
517        unsafe {
518            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
519            s.assume_init()
520        }
521    }
522}
523#[repr(C)]
524#[derive(Debug, Copy, Clone)]
525pub struct dpiJsonObject {
526    pub numFields: u32,
527    pub fieldNames: *mut *mut ::std::os::raw::c_char,
528    pub fieldNameLengths: *mut u32,
529    pub fields: *mut dpiJsonNode,
530    pub fieldValues: *mut dpiDataBuffer,
531}
532#[test]
533fn bindgen_test_layout_dpiJsonObject() {
534    const UNINIT: ::std::mem::MaybeUninit<dpiJsonObject> = ::std::mem::MaybeUninit::uninit();
535    let ptr = UNINIT.as_ptr();
536    assert_eq!(
537        ::std::mem::size_of::<dpiJsonObject>(),
538        40usize,
539        "Size of dpiJsonObject"
540    );
541    assert_eq!(
542        ::std::mem::align_of::<dpiJsonObject>(),
543        8usize,
544        "Alignment of dpiJsonObject"
545    );
546    assert_eq!(
547        unsafe { ::std::ptr::addr_of!((*ptr).numFields) as usize - ptr as usize },
548        0usize,
549        "Offset of field: dpiJsonObject::numFields"
550    );
551    assert_eq!(
552        unsafe { ::std::ptr::addr_of!((*ptr).fieldNames) as usize - ptr as usize },
553        8usize,
554        "Offset of field: dpiJsonObject::fieldNames"
555    );
556    assert_eq!(
557        unsafe { ::std::ptr::addr_of!((*ptr).fieldNameLengths) as usize - ptr as usize },
558        16usize,
559        "Offset of field: dpiJsonObject::fieldNameLengths"
560    );
561    assert_eq!(
562        unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize },
563        24usize,
564        "Offset of field: dpiJsonObject::fields"
565    );
566    assert_eq!(
567        unsafe { ::std::ptr::addr_of!((*ptr).fieldValues) as usize - ptr as usize },
568        32usize,
569        "Offset of field: dpiJsonObject::fieldValues"
570    );
571}
572impl Default for dpiJsonObject {
573    fn default() -> Self {
574        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
575        unsafe {
576            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
577            s.assume_init()
578        }
579    }
580}
581#[repr(C)]
582#[derive(Debug, Copy, Clone)]
583pub struct dpiJsonArray {
584    pub numElements: u32,
585    pub elements: *mut dpiJsonNode,
586    pub elementValues: *mut dpiDataBuffer,
587}
588#[test]
589fn bindgen_test_layout_dpiJsonArray() {
590    const UNINIT: ::std::mem::MaybeUninit<dpiJsonArray> = ::std::mem::MaybeUninit::uninit();
591    let ptr = UNINIT.as_ptr();
592    assert_eq!(
593        ::std::mem::size_of::<dpiJsonArray>(),
594        24usize,
595        "Size of dpiJsonArray"
596    );
597    assert_eq!(
598        ::std::mem::align_of::<dpiJsonArray>(),
599        8usize,
600        "Alignment of dpiJsonArray"
601    );
602    assert_eq!(
603        unsafe { ::std::ptr::addr_of!((*ptr).numElements) as usize - ptr as usize },
604        0usize,
605        "Offset of field: dpiJsonArray::numElements"
606    );
607    assert_eq!(
608        unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize },
609        8usize,
610        "Offset of field: dpiJsonArray::elements"
611    );
612    assert_eq!(
613        unsafe { ::std::ptr::addr_of!((*ptr).elementValues) as usize - ptr as usize },
614        16usize,
615        "Offset of field: dpiJsonArray::elementValues"
616    );
617}
618impl Default for dpiJsonArray {
619    fn default() -> Self {
620        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
621        unsafe {
622            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
623            s.assume_init()
624        }
625    }
626}
627#[repr(C)]
628#[derive(Debug, Default, Copy, Clone)]
629pub struct dpiTimestamp {
630    pub year: i16,
631    pub month: u8,
632    pub day: u8,
633    pub hour: u8,
634    pub minute: u8,
635    pub second: u8,
636    pub fsecond: u32,
637    pub tzHourOffset: i8,
638    pub tzMinuteOffset: i8,
639}
640#[test]
641fn bindgen_test_layout_dpiTimestamp() {
642    const UNINIT: ::std::mem::MaybeUninit<dpiTimestamp> = ::std::mem::MaybeUninit::uninit();
643    let ptr = UNINIT.as_ptr();
644    assert_eq!(
645        ::std::mem::size_of::<dpiTimestamp>(),
646        16usize,
647        "Size of dpiTimestamp"
648    );
649    assert_eq!(
650        ::std::mem::align_of::<dpiTimestamp>(),
651        4usize,
652        "Alignment of dpiTimestamp"
653    );
654    assert_eq!(
655        unsafe { ::std::ptr::addr_of!((*ptr).year) as usize - ptr as usize },
656        0usize,
657        "Offset of field: dpiTimestamp::year"
658    );
659    assert_eq!(
660        unsafe { ::std::ptr::addr_of!((*ptr).month) as usize - ptr as usize },
661        2usize,
662        "Offset of field: dpiTimestamp::month"
663    );
664    assert_eq!(
665        unsafe { ::std::ptr::addr_of!((*ptr).day) as usize - ptr as usize },
666        3usize,
667        "Offset of field: dpiTimestamp::day"
668    );
669    assert_eq!(
670        unsafe { ::std::ptr::addr_of!((*ptr).hour) as usize - ptr as usize },
671        4usize,
672        "Offset of field: dpiTimestamp::hour"
673    );
674    assert_eq!(
675        unsafe { ::std::ptr::addr_of!((*ptr).minute) as usize - ptr as usize },
676        5usize,
677        "Offset of field: dpiTimestamp::minute"
678    );
679    assert_eq!(
680        unsafe { ::std::ptr::addr_of!((*ptr).second) as usize - ptr as usize },
681        6usize,
682        "Offset of field: dpiTimestamp::second"
683    );
684    assert_eq!(
685        unsafe { ::std::ptr::addr_of!((*ptr).fsecond) as usize - ptr as usize },
686        8usize,
687        "Offset of field: dpiTimestamp::fsecond"
688    );
689    assert_eq!(
690        unsafe { ::std::ptr::addr_of!((*ptr).tzHourOffset) as usize - ptr as usize },
691        12usize,
692        "Offset of field: dpiTimestamp::tzHourOffset"
693    );
694    assert_eq!(
695        unsafe { ::std::ptr::addr_of!((*ptr).tzMinuteOffset) as usize - ptr as usize },
696        13usize,
697        "Offset of field: dpiTimestamp::tzMinuteOffset"
698    );
699}
700#[repr(C)]
701#[derive(Copy, Clone)]
702pub union dpiDataBuffer {
703    pub asBoolean: ::std::os::raw::c_int,
704    pub asUint8: u8,
705    pub asUint16: u16,
706    pub asUint32: u32,
707    pub asInt64: i64,
708    pub asUint64: u64,
709    pub asFloat: f32,
710    pub asDouble: f64,
711    pub asString: *mut ::std::os::raw::c_char,
712    pub asRaw: *mut ::std::os::raw::c_void,
713    pub asBytes: dpiBytes,
714    pub asTimestamp: dpiTimestamp,
715    pub asIntervalDS: dpiIntervalDS,
716    pub asIntervalYM: dpiIntervalYM,
717    pub asJson: *mut dpiJson,
718    pub asJsonObject: dpiJsonObject,
719    pub asJsonArray: dpiJsonArray,
720    pub asLOB: *mut dpiLob,
721    pub asObject: *mut dpiObject,
722    pub asStmt: *mut dpiStmt,
723    pub asRowid: *mut dpiRowid,
724    pub asVector: *mut dpiVector,
725}
726#[test]
727fn bindgen_test_layout_dpiDataBuffer() {
728    const UNINIT: ::std::mem::MaybeUninit<dpiDataBuffer> = ::std::mem::MaybeUninit::uninit();
729    let ptr = UNINIT.as_ptr();
730    assert_eq!(
731        ::std::mem::size_of::<dpiDataBuffer>(),
732        40usize,
733        "Size of dpiDataBuffer"
734    );
735    assert_eq!(
736        ::std::mem::align_of::<dpiDataBuffer>(),
737        8usize,
738        "Alignment of dpiDataBuffer"
739    );
740    assert_eq!(
741        unsafe { ::std::ptr::addr_of!((*ptr).asBoolean) as usize - ptr as usize },
742        0usize,
743        "Offset of field: dpiDataBuffer::asBoolean"
744    );
745    assert_eq!(
746        unsafe { ::std::ptr::addr_of!((*ptr).asUint8) as usize - ptr as usize },
747        0usize,
748        "Offset of field: dpiDataBuffer::asUint8"
749    );
750    assert_eq!(
751        unsafe { ::std::ptr::addr_of!((*ptr).asUint16) as usize - ptr as usize },
752        0usize,
753        "Offset of field: dpiDataBuffer::asUint16"
754    );
755    assert_eq!(
756        unsafe { ::std::ptr::addr_of!((*ptr).asUint32) as usize - ptr as usize },
757        0usize,
758        "Offset of field: dpiDataBuffer::asUint32"
759    );
760    assert_eq!(
761        unsafe { ::std::ptr::addr_of!((*ptr).asInt64) as usize - ptr as usize },
762        0usize,
763        "Offset of field: dpiDataBuffer::asInt64"
764    );
765    assert_eq!(
766        unsafe { ::std::ptr::addr_of!((*ptr).asUint64) as usize - ptr as usize },
767        0usize,
768        "Offset of field: dpiDataBuffer::asUint64"
769    );
770    assert_eq!(
771        unsafe { ::std::ptr::addr_of!((*ptr).asFloat) as usize - ptr as usize },
772        0usize,
773        "Offset of field: dpiDataBuffer::asFloat"
774    );
775    assert_eq!(
776        unsafe { ::std::ptr::addr_of!((*ptr).asDouble) as usize - ptr as usize },
777        0usize,
778        "Offset of field: dpiDataBuffer::asDouble"
779    );
780    assert_eq!(
781        unsafe { ::std::ptr::addr_of!((*ptr).asString) as usize - ptr as usize },
782        0usize,
783        "Offset of field: dpiDataBuffer::asString"
784    );
785    assert_eq!(
786        unsafe { ::std::ptr::addr_of!((*ptr).asRaw) as usize - ptr as usize },
787        0usize,
788        "Offset of field: dpiDataBuffer::asRaw"
789    );
790    assert_eq!(
791        unsafe { ::std::ptr::addr_of!((*ptr).asBytes) as usize - ptr as usize },
792        0usize,
793        "Offset of field: dpiDataBuffer::asBytes"
794    );
795    assert_eq!(
796        unsafe { ::std::ptr::addr_of!((*ptr).asTimestamp) as usize - ptr as usize },
797        0usize,
798        "Offset of field: dpiDataBuffer::asTimestamp"
799    );
800    assert_eq!(
801        unsafe { ::std::ptr::addr_of!((*ptr).asIntervalDS) as usize - ptr as usize },
802        0usize,
803        "Offset of field: dpiDataBuffer::asIntervalDS"
804    );
805    assert_eq!(
806        unsafe { ::std::ptr::addr_of!((*ptr).asIntervalYM) as usize - ptr as usize },
807        0usize,
808        "Offset of field: dpiDataBuffer::asIntervalYM"
809    );
810    assert_eq!(
811        unsafe { ::std::ptr::addr_of!((*ptr).asJson) as usize - ptr as usize },
812        0usize,
813        "Offset of field: dpiDataBuffer::asJson"
814    );
815    assert_eq!(
816        unsafe { ::std::ptr::addr_of!((*ptr).asJsonObject) as usize - ptr as usize },
817        0usize,
818        "Offset of field: dpiDataBuffer::asJsonObject"
819    );
820    assert_eq!(
821        unsafe { ::std::ptr::addr_of!((*ptr).asJsonArray) as usize - ptr as usize },
822        0usize,
823        "Offset of field: dpiDataBuffer::asJsonArray"
824    );
825    assert_eq!(
826        unsafe { ::std::ptr::addr_of!((*ptr).asLOB) as usize - ptr as usize },
827        0usize,
828        "Offset of field: dpiDataBuffer::asLOB"
829    );
830    assert_eq!(
831        unsafe { ::std::ptr::addr_of!((*ptr).asObject) as usize - ptr as usize },
832        0usize,
833        "Offset of field: dpiDataBuffer::asObject"
834    );
835    assert_eq!(
836        unsafe { ::std::ptr::addr_of!((*ptr).asStmt) as usize - ptr as usize },
837        0usize,
838        "Offset of field: dpiDataBuffer::asStmt"
839    );
840    assert_eq!(
841        unsafe { ::std::ptr::addr_of!((*ptr).asRowid) as usize - ptr as usize },
842        0usize,
843        "Offset of field: dpiDataBuffer::asRowid"
844    );
845    assert_eq!(
846        unsafe { ::std::ptr::addr_of!((*ptr).asVector) as usize - ptr as usize },
847        0usize,
848        "Offset of field: dpiDataBuffer::asVector"
849    );
850}
851impl Default for dpiDataBuffer {
852    fn default() -> Self {
853        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
854        unsafe {
855            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
856            s.assume_init()
857        }
858    }
859}
860#[repr(C)]
861#[derive(Debug, Copy, Clone)]
862pub struct dpiAnnotation {
863    pub key: *const ::std::os::raw::c_char,
864    pub keyLength: u32,
865    pub value: *const ::std::os::raw::c_char,
866    pub valueLength: u32,
867}
868#[test]
869fn bindgen_test_layout_dpiAnnotation() {
870    const UNINIT: ::std::mem::MaybeUninit<dpiAnnotation> = ::std::mem::MaybeUninit::uninit();
871    let ptr = UNINIT.as_ptr();
872    assert_eq!(
873        ::std::mem::size_of::<dpiAnnotation>(),
874        32usize,
875        "Size of dpiAnnotation"
876    );
877    assert_eq!(
878        ::std::mem::align_of::<dpiAnnotation>(),
879        8usize,
880        "Alignment of dpiAnnotation"
881    );
882    assert_eq!(
883        unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize },
884        0usize,
885        "Offset of field: dpiAnnotation::key"
886    );
887    assert_eq!(
888        unsafe { ::std::ptr::addr_of!((*ptr).keyLength) as usize - ptr as usize },
889        8usize,
890        "Offset of field: dpiAnnotation::keyLength"
891    );
892    assert_eq!(
893        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
894        16usize,
895        "Offset of field: dpiAnnotation::value"
896    );
897    assert_eq!(
898        unsafe { ::std::ptr::addr_of!((*ptr).valueLength) as usize - ptr as usize },
899        24usize,
900        "Offset of field: dpiAnnotation::valueLength"
901    );
902}
903impl Default for dpiAnnotation {
904    fn default() -> Self {
905        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
906        unsafe {
907            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
908            s.assume_init()
909        }
910    }
911}
912#[repr(C)]
913#[derive(Debug, Copy, Clone)]
914pub struct dpiAppContext {
915    pub namespaceName: *const ::std::os::raw::c_char,
916    pub namespaceNameLength: u32,
917    pub name: *const ::std::os::raw::c_char,
918    pub nameLength: u32,
919    pub value: *const ::std::os::raw::c_char,
920    pub valueLength: u32,
921}
922#[test]
923fn bindgen_test_layout_dpiAppContext() {
924    const UNINIT: ::std::mem::MaybeUninit<dpiAppContext> = ::std::mem::MaybeUninit::uninit();
925    let ptr = UNINIT.as_ptr();
926    assert_eq!(
927        ::std::mem::size_of::<dpiAppContext>(),
928        48usize,
929        "Size of dpiAppContext"
930    );
931    assert_eq!(
932        ::std::mem::align_of::<dpiAppContext>(),
933        8usize,
934        "Alignment of dpiAppContext"
935    );
936    assert_eq!(
937        unsafe { ::std::ptr::addr_of!((*ptr).namespaceName) as usize - ptr as usize },
938        0usize,
939        "Offset of field: dpiAppContext::namespaceName"
940    );
941    assert_eq!(
942        unsafe { ::std::ptr::addr_of!((*ptr).namespaceNameLength) as usize - ptr as usize },
943        8usize,
944        "Offset of field: dpiAppContext::namespaceNameLength"
945    );
946    assert_eq!(
947        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
948        16usize,
949        "Offset of field: dpiAppContext::name"
950    );
951    assert_eq!(
952        unsafe { ::std::ptr::addr_of!((*ptr).nameLength) as usize - ptr as usize },
953        24usize,
954        "Offset of field: dpiAppContext::nameLength"
955    );
956    assert_eq!(
957        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
958        32usize,
959        "Offset of field: dpiAppContext::value"
960    );
961    assert_eq!(
962        unsafe { ::std::ptr::addr_of!((*ptr).valueLength) as usize - ptr as usize },
963        40usize,
964        "Offset of field: dpiAppContext::valueLength"
965    );
966}
967impl Default for dpiAppContext {
968    fn default() -> Self {
969        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
970        unsafe {
971            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
972            s.assume_init()
973        }
974    }
975}
976#[repr(C)]
977#[derive(Debug, Copy, Clone)]
978pub struct dpiCommonCreateParams {
979    pub createMode: dpiCreateMode,
980    pub encoding: *const ::std::os::raw::c_char,
981    pub nencoding: *const ::std::os::raw::c_char,
982    pub edition: *const ::std::os::raw::c_char,
983    pub editionLength: u32,
984    pub driverName: *const ::std::os::raw::c_char,
985    pub driverNameLength: u32,
986    pub sodaMetadataCache: ::std::os::raw::c_int,
987    pub stmtCacheSize: u32,
988    pub accessToken: *mut dpiAccessToken,
989}
990#[test]
991fn bindgen_test_layout_dpiCommonCreateParams() {
992    const UNINIT: ::std::mem::MaybeUninit<dpiCommonCreateParams> =
993        ::std::mem::MaybeUninit::uninit();
994    let ptr = UNINIT.as_ptr();
995    assert_eq!(
996        ::std::mem::size_of::<dpiCommonCreateParams>(),
997        72usize,
998        "Size of dpiCommonCreateParams"
999    );
1000    assert_eq!(
1001        ::std::mem::align_of::<dpiCommonCreateParams>(),
1002        8usize,
1003        "Alignment of dpiCommonCreateParams"
1004    );
1005    assert_eq!(
1006        unsafe { ::std::ptr::addr_of!((*ptr).createMode) as usize - ptr as usize },
1007        0usize,
1008        "Offset of field: dpiCommonCreateParams::createMode"
1009    );
1010    assert_eq!(
1011        unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize },
1012        8usize,
1013        "Offset of field: dpiCommonCreateParams::encoding"
1014    );
1015    assert_eq!(
1016        unsafe { ::std::ptr::addr_of!((*ptr).nencoding) as usize - ptr as usize },
1017        16usize,
1018        "Offset of field: dpiCommonCreateParams::nencoding"
1019    );
1020    assert_eq!(
1021        unsafe { ::std::ptr::addr_of!((*ptr).edition) as usize - ptr as usize },
1022        24usize,
1023        "Offset of field: dpiCommonCreateParams::edition"
1024    );
1025    assert_eq!(
1026        unsafe { ::std::ptr::addr_of!((*ptr).editionLength) as usize - ptr as usize },
1027        32usize,
1028        "Offset of field: dpiCommonCreateParams::editionLength"
1029    );
1030    assert_eq!(
1031        unsafe { ::std::ptr::addr_of!((*ptr).driverName) as usize - ptr as usize },
1032        40usize,
1033        "Offset of field: dpiCommonCreateParams::driverName"
1034    );
1035    assert_eq!(
1036        unsafe { ::std::ptr::addr_of!((*ptr).driverNameLength) as usize - ptr as usize },
1037        48usize,
1038        "Offset of field: dpiCommonCreateParams::driverNameLength"
1039    );
1040    assert_eq!(
1041        unsafe { ::std::ptr::addr_of!((*ptr).sodaMetadataCache) as usize - ptr as usize },
1042        52usize,
1043        "Offset of field: dpiCommonCreateParams::sodaMetadataCache"
1044    );
1045    assert_eq!(
1046        unsafe { ::std::ptr::addr_of!((*ptr).stmtCacheSize) as usize - ptr as usize },
1047        56usize,
1048        "Offset of field: dpiCommonCreateParams::stmtCacheSize"
1049    );
1050    assert_eq!(
1051        unsafe { ::std::ptr::addr_of!((*ptr).accessToken) as usize - ptr as usize },
1052        64usize,
1053        "Offset of field: dpiCommonCreateParams::accessToken"
1054    );
1055}
1056impl Default for dpiCommonCreateParams {
1057    fn default() -> Self {
1058        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1059        unsafe {
1060            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1061            s.assume_init()
1062        }
1063    }
1064}
1065#[repr(C)]
1066#[derive(Debug, Copy, Clone)]
1067pub struct dpiConnCreateParams {
1068    pub authMode: dpiAuthMode,
1069    pub connectionClass: *const ::std::os::raw::c_char,
1070    pub connectionClassLength: u32,
1071    pub purity: dpiPurity,
1072    pub newPassword: *const ::std::os::raw::c_char,
1073    pub newPasswordLength: u32,
1074    pub appContext: *mut dpiAppContext,
1075    pub numAppContext: u32,
1076    pub externalAuth: ::std::os::raw::c_int,
1077    pub externalHandle: *mut ::std::os::raw::c_void,
1078    pub pool: *mut dpiPool,
1079    pub tag: *const ::std::os::raw::c_char,
1080    pub tagLength: u32,
1081    pub matchAnyTag: ::std::os::raw::c_int,
1082    pub outTag: *const ::std::os::raw::c_char,
1083    pub outTagLength: u32,
1084    pub outTagFound: ::std::os::raw::c_int,
1085    pub shardingKeyColumns: *mut dpiShardingKeyColumn,
1086    pub numShardingKeyColumns: u8,
1087    pub superShardingKeyColumns: *mut dpiShardingKeyColumn,
1088    pub numSuperShardingKeyColumns: u8,
1089    pub outNewSession: ::std::os::raw::c_int,
1090}
1091#[test]
1092fn bindgen_test_layout_dpiConnCreateParams() {
1093    const UNINIT: ::std::mem::MaybeUninit<dpiConnCreateParams> = ::std::mem::MaybeUninit::uninit();
1094    let ptr = UNINIT.as_ptr();
1095    assert_eq!(
1096        ::std::mem::size_of::<dpiConnCreateParams>(),
1097        136usize,
1098        "Size of dpiConnCreateParams"
1099    );
1100    assert_eq!(
1101        ::std::mem::align_of::<dpiConnCreateParams>(),
1102        8usize,
1103        "Alignment of dpiConnCreateParams"
1104    );
1105    assert_eq!(
1106        unsafe { ::std::ptr::addr_of!((*ptr).authMode) as usize - ptr as usize },
1107        0usize,
1108        "Offset of field: dpiConnCreateParams::authMode"
1109    );
1110    assert_eq!(
1111        unsafe { ::std::ptr::addr_of!((*ptr).connectionClass) as usize - ptr as usize },
1112        8usize,
1113        "Offset of field: dpiConnCreateParams::connectionClass"
1114    );
1115    assert_eq!(
1116        unsafe { ::std::ptr::addr_of!((*ptr).connectionClassLength) as usize - ptr as usize },
1117        16usize,
1118        "Offset of field: dpiConnCreateParams::connectionClassLength"
1119    );
1120    assert_eq!(
1121        unsafe { ::std::ptr::addr_of!((*ptr).purity) as usize - ptr as usize },
1122        20usize,
1123        "Offset of field: dpiConnCreateParams::purity"
1124    );
1125    assert_eq!(
1126        unsafe { ::std::ptr::addr_of!((*ptr).newPassword) as usize - ptr as usize },
1127        24usize,
1128        "Offset of field: dpiConnCreateParams::newPassword"
1129    );
1130    assert_eq!(
1131        unsafe { ::std::ptr::addr_of!((*ptr).newPasswordLength) as usize - ptr as usize },
1132        32usize,
1133        "Offset of field: dpiConnCreateParams::newPasswordLength"
1134    );
1135    assert_eq!(
1136        unsafe { ::std::ptr::addr_of!((*ptr).appContext) as usize - ptr as usize },
1137        40usize,
1138        "Offset of field: dpiConnCreateParams::appContext"
1139    );
1140    assert_eq!(
1141        unsafe { ::std::ptr::addr_of!((*ptr).numAppContext) as usize - ptr as usize },
1142        48usize,
1143        "Offset of field: dpiConnCreateParams::numAppContext"
1144    );
1145    assert_eq!(
1146        unsafe { ::std::ptr::addr_of!((*ptr).externalAuth) as usize - ptr as usize },
1147        52usize,
1148        "Offset of field: dpiConnCreateParams::externalAuth"
1149    );
1150    assert_eq!(
1151        unsafe { ::std::ptr::addr_of!((*ptr).externalHandle) as usize - ptr as usize },
1152        56usize,
1153        "Offset of field: dpiConnCreateParams::externalHandle"
1154    );
1155    assert_eq!(
1156        unsafe { ::std::ptr::addr_of!((*ptr).pool) as usize - ptr as usize },
1157        64usize,
1158        "Offset of field: dpiConnCreateParams::pool"
1159    );
1160    assert_eq!(
1161        unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize },
1162        72usize,
1163        "Offset of field: dpiConnCreateParams::tag"
1164    );
1165    assert_eq!(
1166        unsafe { ::std::ptr::addr_of!((*ptr).tagLength) as usize - ptr as usize },
1167        80usize,
1168        "Offset of field: dpiConnCreateParams::tagLength"
1169    );
1170    assert_eq!(
1171        unsafe { ::std::ptr::addr_of!((*ptr).matchAnyTag) as usize - ptr as usize },
1172        84usize,
1173        "Offset of field: dpiConnCreateParams::matchAnyTag"
1174    );
1175    assert_eq!(
1176        unsafe { ::std::ptr::addr_of!((*ptr).outTag) as usize - ptr as usize },
1177        88usize,
1178        "Offset of field: dpiConnCreateParams::outTag"
1179    );
1180    assert_eq!(
1181        unsafe { ::std::ptr::addr_of!((*ptr).outTagLength) as usize - ptr as usize },
1182        96usize,
1183        "Offset of field: dpiConnCreateParams::outTagLength"
1184    );
1185    assert_eq!(
1186        unsafe { ::std::ptr::addr_of!((*ptr).outTagFound) as usize - ptr as usize },
1187        100usize,
1188        "Offset of field: dpiConnCreateParams::outTagFound"
1189    );
1190    assert_eq!(
1191        unsafe { ::std::ptr::addr_of!((*ptr).shardingKeyColumns) as usize - ptr as usize },
1192        104usize,
1193        "Offset of field: dpiConnCreateParams::shardingKeyColumns"
1194    );
1195    assert_eq!(
1196        unsafe { ::std::ptr::addr_of!((*ptr).numShardingKeyColumns) as usize - ptr as usize },
1197        112usize,
1198        "Offset of field: dpiConnCreateParams::numShardingKeyColumns"
1199    );
1200    assert_eq!(
1201        unsafe { ::std::ptr::addr_of!((*ptr).superShardingKeyColumns) as usize - ptr as usize },
1202        120usize,
1203        "Offset of field: dpiConnCreateParams::superShardingKeyColumns"
1204    );
1205    assert_eq!(
1206        unsafe { ::std::ptr::addr_of!((*ptr).numSuperShardingKeyColumns) as usize - ptr as usize },
1207        128usize,
1208        "Offset of field: dpiConnCreateParams::numSuperShardingKeyColumns"
1209    );
1210    assert_eq!(
1211        unsafe { ::std::ptr::addr_of!((*ptr).outNewSession) as usize - ptr as usize },
1212        132usize,
1213        "Offset of field: dpiConnCreateParams::outNewSession"
1214    );
1215}
1216impl Default for dpiConnCreateParams {
1217    fn default() -> Self {
1218        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1219        unsafe {
1220            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1221            s.assume_init()
1222        }
1223    }
1224}
1225#[repr(C)]
1226#[derive(Debug, Copy, Clone)]
1227pub struct dpiConnInfo {
1228    pub dbDomain: *const ::std::os::raw::c_char,
1229    pub dbDomainLength: u32,
1230    pub dbName: *const ::std::os::raw::c_char,
1231    pub dbNameLength: u32,
1232    pub instanceName: *const ::std::os::raw::c_char,
1233    pub instanceNameLength: u32,
1234    pub serviceName: *const ::std::os::raw::c_char,
1235    pub serviceNameLength: u32,
1236    pub maxIdentifierLength: u32,
1237    pub maxOpenCursors: u32,
1238    pub serverType: u8,
1239}
1240#[test]
1241fn bindgen_test_layout_dpiConnInfo() {
1242    const UNINIT: ::std::mem::MaybeUninit<dpiConnInfo> = ::std::mem::MaybeUninit::uninit();
1243    let ptr = UNINIT.as_ptr();
1244    assert_eq!(
1245        ::std::mem::size_of::<dpiConnInfo>(),
1246        72usize,
1247        "Size of dpiConnInfo"
1248    );
1249    assert_eq!(
1250        ::std::mem::align_of::<dpiConnInfo>(),
1251        8usize,
1252        "Alignment of dpiConnInfo"
1253    );
1254    assert_eq!(
1255        unsafe { ::std::ptr::addr_of!((*ptr).dbDomain) as usize - ptr as usize },
1256        0usize,
1257        "Offset of field: dpiConnInfo::dbDomain"
1258    );
1259    assert_eq!(
1260        unsafe { ::std::ptr::addr_of!((*ptr).dbDomainLength) as usize - ptr as usize },
1261        8usize,
1262        "Offset of field: dpiConnInfo::dbDomainLength"
1263    );
1264    assert_eq!(
1265        unsafe { ::std::ptr::addr_of!((*ptr).dbName) as usize - ptr as usize },
1266        16usize,
1267        "Offset of field: dpiConnInfo::dbName"
1268    );
1269    assert_eq!(
1270        unsafe { ::std::ptr::addr_of!((*ptr).dbNameLength) as usize - ptr as usize },
1271        24usize,
1272        "Offset of field: dpiConnInfo::dbNameLength"
1273    );
1274    assert_eq!(
1275        unsafe { ::std::ptr::addr_of!((*ptr).instanceName) as usize - ptr as usize },
1276        32usize,
1277        "Offset of field: dpiConnInfo::instanceName"
1278    );
1279    assert_eq!(
1280        unsafe { ::std::ptr::addr_of!((*ptr).instanceNameLength) as usize - ptr as usize },
1281        40usize,
1282        "Offset of field: dpiConnInfo::instanceNameLength"
1283    );
1284    assert_eq!(
1285        unsafe { ::std::ptr::addr_of!((*ptr).serviceName) as usize - ptr as usize },
1286        48usize,
1287        "Offset of field: dpiConnInfo::serviceName"
1288    );
1289    assert_eq!(
1290        unsafe { ::std::ptr::addr_of!((*ptr).serviceNameLength) as usize - ptr as usize },
1291        56usize,
1292        "Offset of field: dpiConnInfo::serviceNameLength"
1293    );
1294    assert_eq!(
1295        unsafe { ::std::ptr::addr_of!((*ptr).maxIdentifierLength) as usize - ptr as usize },
1296        60usize,
1297        "Offset of field: dpiConnInfo::maxIdentifierLength"
1298    );
1299    assert_eq!(
1300        unsafe { ::std::ptr::addr_of!((*ptr).maxOpenCursors) as usize - ptr as usize },
1301        64usize,
1302        "Offset of field: dpiConnInfo::maxOpenCursors"
1303    );
1304    assert_eq!(
1305        unsafe { ::std::ptr::addr_of!((*ptr).serverType) as usize - ptr as usize },
1306        68usize,
1307        "Offset of field: dpiConnInfo::serverType"
1308    );
1309}
1310impl Default for dpiConnInfo {
1311    fn default() -> Self {
1312        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1313        unsafe {
1314            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1315            s.assume_init()
1316        }
1317    }
1318}
1319#[repr(C)]
1320#[derive(Debug, Copy, Clone)]
1321pub struct dpiContextCreateParams {
1322    pub defaultDriverName: *const ::std::os::raw::c_char,
1323    pub defaultEncoding: *const ::std::os::raw::c_char,
1324    pub loadErrorUrl: *const ::std::os::raw::c_char,
1325    pub oracleClientLibDir: *const ::std::os::raw::c_char,
1326    pub oracleClientConfigDir: *const ::std::os::raw::c_char,
1327    pub sodaUseJsonDesc: ::std::os::raw::c_int,
1328    pub useJsonId: ::std::os::raw::c_int,
1329}
1330#[test]
1331fn bindgen_test_layout_dpiContextCreateParams() {
1332    const UNINIT: ::std::mem::MaybeUninit<dpiContextCreateParams> =
1333        ::std::mem::MaybeUninit::uninit();
1334    let ptr = UNINIT.as_ptr();
1335    assert_eq!(
1336        ::std::mem::size_of::<dpiContextCreateParams>(),
1337        48usize,
1338        "Size of dpiContextCreateParams"
1339    );
1340    assert_eq!(
1341        ::std::mem::align_of::<dpiContextCreateParams>(),
1342        8usize,
1343        "Alignment of dpiContextCreateParams"
1344    );
1345    assert_eq!(
1346        unsafe { ::std::ptr::addr_of!((*ptr).defaultDriverName) as usize - ptr as usize },
1347        0usize,
1348        "Offset of field: dpiContextCreateParams::defaultDriverName"
1349    );
1350    assert_eq!(
1351        unsafe { ::std::ptr::addr_of!((*ptr).defaultEncoding) as usize - ptr as usize },
1352        8usize,
1353        "Offset of field: dpiContextCreateParams::defaultEncoding"
1354    );
1355    assert_eq!(
1356        unsafe { ::std::ptr::addr_of!((*ptr).loadErrorUrl) as usize - ptr as usize },
1357        16usize,
1358        "Offset of field: dpiContextCreateParams::loadErrorUrl"
1359    );
1360    assert_eq!(
1361        unsafe { ::std::ptr::addr_of!((*ptr).oracleClientLibDir) as usize - ptr as usize },
1362        24usize,
1363        "Offset of field: dpiContextCreateParams::oracleClientLibDir"
1364    );
1365    assert_eq!(
1366        unsafe { ::std::ptr::addr_of!((*ptr).oracleClientConfigDir) as usize - ptr as usize },
1367        32usize,
1368        "Offset of field: dpiContextCreateParams::oracleClientConfigDir"
1369    );
1370    assert_eq!(
1371        unsafe { ::std::ptr::addr_of!((*ptr).sodaUseJsonDesc) as usize - ptr as usize },
1372        40usize,
1373        "Offset of field: dpiContextCreateParams::sodaUseJsonDesc"
1374    );
1375    assert_eq!(
1376        unsafe { ::std::ptr::addr_of!((*ptr).useJsonId) as usize - ptr as usize },
1377        44usize,
1378        "Offset of field: dpiContextCreateParams::useJsonId"
1379    );
1380}
1381impl Default for dpiContextCreateParams {
1382    fn default() -> Self {
1383        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1384        unsafe {
1385            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1386            s.assume_init()
1387        }
1388    }
1389}
1390#[repr(C)]
1391#[derive(Copy, Clone)]
1392pub struct dpiData {
1393    pub isNull: ::std::os::raw::c_int,
1394    pub value: dpiDataBuffer,
1395}
1396#[test]
1397fn bindgen_test_layout_dpiData() {
1398    const UNINIT: ::std::mem::MaybeUninit<dpiData> = ::std::mem::MaybeUninit::uninit();
1399    let ptr = UNINIT.as_ptr();
1400    assert_eq!(::std::mem::size_of::<dpiData>(), 48usize, "Size of dpiData");
1401    assert_eq!(
1402        ::std::mem::align_of::<dpiData>(),
1403        8usize,
1404        "Alignment of dpiData"
1405    );
1406    assert_eq!(
1407        unsafe { ::std::ptr::addr_of!((*ptr).isNull) as usize - ptr as usize },
1408        0usize,
1409        "Offset of field: dpiData::isNull"
1410    );
1411    assert_eq!(
1412        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
1413        8usize,
1414        "Offset of field: dpiData::value"
1415    );
1416}
1417impl Default for dpiData {
1418    fn default() -> Self {
1419        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1420        unsafe {
1421            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1422            s.assume_init()
1423        }
1424    }
1425}
1426#[repr(C)]
1427#[derive(Debug, Copy, Clone)]
1428pub struct dpiDataTypeInfo {
1429    pub oracleTypeNum: dpiOracleTypeNum,
1430    pub defaultNativeTypeNum: dpiNativeTypeNum,
1431    pub ociTypeCode: u16,
1432    pub dbSizeInBytes: u32,
1433    pub clientSizeInBytes: u32,
1434    pub sizeInChars: u32,
1435    pub precision: i16,
1436    pub scale: i8,
1437    pub fsPrecision: u8,
1438    pub objectType: *mut dpiObjectType,
1439    pub isJson: ::std::os::raw::c_int,
1440    pub domainSchema: *const ::std::os::raw::c_char,
1441    pub domainSchemaLength: u32,
1442    pub domainName: *const ::std::os::raw::c_char,
1443    pub domainNameLength: u32,
1444    pub numAnnotations: u32,
1445    pub annotations: *mut dpiAnnotation,
1446    pub isOson: ::std::os::raw::c_int,
1447    pub vectorDimensions: u32,
1448    pub vectorFormat: u8,
1449    pub vectorFlags: u8,
1450}
1451#[test]
1452fn bindgen_test_layout_dpiDataTypeInfo() {
1453    const UNINIT: ::std::mem::MaybeUninit<dpiDataTypeInfo> = ::std::mem::MaybeUninit::uninit();
1454    let ptr = UNINIT.as_ptr();
1455    assert_eq!(
1456        ::std::mem::size_of::<dpiDataTypeInfo>(),
1457        104usize,
1458        "Size of dpiDataTypeInfo"
1459    );
1460    assert_eq!(
1461        ::std::mem::align_of::<dpiDataTypeInfo>(),
1462        8usize,
1463        "Alignment of dpiDataTypeInfo"
1464    );
1465    assert_eq!(
1466        unsafe { ::std::ptr::addr_of!((*ptr).oracleTypeNum) as usize - ptr as usize },
1467        0usize,
1468        "Offset of field: dpiDataTypeInfo::oracleTypeNum"
1469    );
1470    assert_eq!(
1471        unsafe { ::std::ptr::addr_of!((*ptr).defaultNativeTypeNum) as usize - ptr as usize },
1472        4usize,
1473        "Offset of field: dpiDataTypeInfo::defaultNativeTypeNum"
1474    );
1475    assert_eq!(
1476        unsafe { ::std::ptr::addr_of!((*ptr).ociTypeCode) as usize - ptr as usize },
1477        8usize,
1478        "Offset of field: dpiDataTypeInfo::ociTypeCode"
1479    );
1480    assert_eq!(
1481        unsafe { ::std::ptr::addr_of!((*ptr).dbSizeInBytes) as usize - ptr as usize },
1482        12usize,
1483        "Offset of field: dpiDataTypeInfo::dbSizeInBytes"
1484    );
1485    assert_eq!(
1486        unsafe { ::std::ptr::addr_of!((*ptr).clientSizeInBytes) as usize - ptr as usize },
1487        16usize,
1488        "Offset of field: dpiDataTypeInfo::clientSizeInBytes"
1489    );
1490    assert_eq!(
1491        unsafe { ::std::ptr::addr_of!((*ptr).sizeInChars) as usize - ptr as usize },
1492        20usize,
1493        "Offset of field: dpiDataTypeInfo::sizeInChars"
1494    );
1495    assert_eq!(
1496        unsafe { ::std::ptr::addr_of!((*ptr).precision) as usize - ptr as usize },
1497        24usize,
1498        "Offset of field: dpiDataTypeInfo::precision"
1499    );
1500    assert_eq!(
1501        unsafe { ::std::ptr::addr_of!((*ptr).scale) as usize - ptr as usize },
1502        26usize,
1503        "Offset of field: dpiDataTypeInfo::scale"
1504    );
1505    assert_eq!(
1506        unsafe { ::std::ptr::addr_of!((*ptr).fsPrecision) as usize - ptr as usize },
1507        27usize,
1508        "Offset of field: dpiDataTypeInfo::fsPrecision"
1509    );
1510    assert_eq!(
1511        unsafe { ::std::ptr::addr_of!((*ptr).objectType) as usize - ptr as usize },
1512        32usize,
1513        "Offset of field: dpiDataTypeInfo::objectType"
1514    );
1515    assert_eq!(
1516        unsafe { ::std::ptr::addr_of!((*ptr).isJson) as usize - ptr as usize },
1517        40usize,
1518        "Offset of field: dpiDataTypeInfo::isJson"
1519    );
1520    assert_eq!(
1521        unsafe { ::std::ptr::addr_of!((*ptr).domainSchema) as usize - ptr as usize },
1522        48usize,
1523        "Offset of field: dpiDataTypeInfo::domainSchema"
1524    );
1525    assert_eq!(
1526        unsafe { ::std::ptr::addr_of!((*ptr).domainSchemaLength) as usize - ptr as usize },
1527        56usize,
1528        "Offset of field: dpiDataTypeInfo::domainSchemaLength"
1529    );
1530    assert_eq!(
1531        unsafe { ::std::ptr::addr_of!((*ptr).domainName) as usize - ptr as usize },
1532        64usize,
1533        "Offset of field: dpiDataTypeInfo::domainName"
1534    );
1535    assert_eq!(
1536        unsafe { ::std::ptr::addr_of!((*ptr).domainNameLength) as usize - ptr as usize },
1537        72usize,
1538        "Offset of field: dpiDataTypeInfo::domainNameLength"
1539    );
1540    assert_eq!(
1541        unsafe { ::std::ptr::addr_of!((*ptr).numAnnotations) as usize - ptr as usize },
1542        76usize,
1543        "Offset of field: dpiDataTypeInfo::numAnnotations"
1544    );
1545    assert_eq!(
1546        unsafe { ::std::ptr::addr_of!((*ptr).annotations) as usize - ptr as usize },
1547        80usize,
1548        "Offset of field: dpiDataTypeInfo::annotations"
1549    );
1550    assert_eq!(
1551        unsafe { ::std::ptr::addr_of!((*ptr).isOson) as usize - ptr as usize },
1552        88usize,
1553        "Offset of field: dpiDataTypeInfo::isOson"
1554    );
1555    assert_eq!(
1556        unsafe { ::std::ptr::addr_of!((*ptr).vectorDimensions) as usize - ptr as usize },
1557        92usize,
1558        "Offset of field: dpiDataTypeInfo::vectorDimensions"
1559    );
1560    assert_eq!(
1561        unsafe { ::std::ptr::addr_of!((*ptr).vectorFormat) as usize - ptr as usize },
1562        96usize,
1563        "Offset of field: dpiDataTypeInfo::vectorFormat"
1564    );
1565    assert_eq!(
1566        unsafe { ::std::ptr::addr_of!((*ptr).vectorFlags) as usize - ptr as usize },
1567        97usize,
1568        "Offset of field: dpiDataTypeInfo::vectorFlags"
1569    );
1570}
1571impl Default for dpiDataTypeInfo {
1572    fn default() -> Self {
1573        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1574        unsafe {
1575            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1576            s.assume_init()
1577        }
1578    }
1579}
1580#[repr(C)]
1581#[derive(Debug, Copy, Clone)]
1582pub struct dpiAccessToken {
1583    pub token: *const ::std::os::raw::c_char,
1584    pub tokenLength: u32,
1585    pub privateKey: *const ::std::os::raw::c_char,
1586    pub privateKeyLength: u32,
1587}
1588#[test]
1589fn bindgen_test_layout_dpiAccessToken() {
1590    const UNINIT: ::std::mem::MaybeUninit<dpiAccessToken> = ::std::mem::MaybeUninit::uninit();
1591    let ptr = UNINIT.as_ptr();
1592    assert_eq!(
1593        ::std::mem::size_of::<dpiAccessToken>(),
1594        32usize,
1595        "Size of dpiAccessToken"
1596    );
1597    assert_eq!(
1598        ::std::mem::align_of::<dpiAccessToken>(),
1599        8usize,
1600        "Alignment of dpiAccessToken"
1601    );
1602    assert_eq!(
1603        unsafe { ::std::ptr::addr_of!((*ptr).token) as usize - ptr as usize },
1604        0usize,
1605        "Offset of field: dpiAccessToken::token"
1606    );
1607    assert_eq!(
1608        unsafe { ::std::ptr::addr_of!((*ptr).tokenLength) as usize - ptr as usize },
1609        8usize,
1610        "Offset of field: dpiAccessToken::tokenLength"
1611    );
1612    assert_eq!(
1613        unsafe { ::std::ptr::addr_of!((*ptr).privateKey) as usize - ptr as usize },
1614        16usize,
1615        "Offset of field: dpiAccessToken::privateKey"
1616    );
1617    assert_eq!(
1618        unsafe { ::std::ptr::addr_of!((*ptr).privateKeyLength) as usize - ptr as usize },
1619        24usize,
1620        "Offset of field: dpiAccessToken::privateKeyLength"
1621    );
1622}
1623impl Default for dpiAccessToken {
1624    fn default() -> Self {
1625        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1626        unsafe {
1627            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1628            s.assume_init()
1629        }
1630    }
1631}
1632#[repr(C)]
1633#[derive(Debug, Copy, Clone)]
1634pub struct dpiEncodingInfo {
1635    pub encoding: *const ::std::os::raw::c_char,
1636    pub maxBytesPerCharacter: i32,
1637    pub nencoding: *const ::std::os::raw::c_char,
1638    pub nmaxBytesPerCharacter: i32,
1639}
1640#[test]
1641fn bindgen_test_layout_dpiEncodingInfo() {
1642    const UNINIT: ::std::mem::MaybeUninit<dpiEncodingInfo> = ::std::mem::MaybeUninit::uninit();
1643    let ptr = UNINIT.as_ptr();
1644    assert_eq!(
1645        ::std::mem::size_of::<dpiEncodingInfo>(),
1646        32usize,
1647        "Size of dpiEncodingInfo"
1648    );
1649    assert_eq!(
1650        ::std::mem::align_of::<dpiEncodingInfo>(),
1651        8usize,
1652        "Alignment of dpiEncodingInfo"
1653    );
1654    assert_eq!(
1655        unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize },
1656        0usize,
1657        "Offset of field: dpiEncodingInfo::encoding"
1658    );
1659    assert_eq!(
1660        unsafe { ::std::ptr::addr_of!((*ptr).maxBytesPerCharacter) as usize - ptr as usize },
1661        8usize,
1662        "Offset of field: dpiEncodingInfo::maxBytesPerCharacter"
1663    );
1664    assert_eq!(
1665        unsafe { ::std::ptr::addr_of!((*ptr).nencoding) as usize - ptr as usize },
1666        16usize,
1667        "Offset of field: dpiEncodingInfo::nencoding"
1668    );
1669    assert_eq!(
1670        unsafe { ::std::ptr::addr_of!((*ptr).nmaxBytesPerCharacter) as usize - ptr as usize },
1671        24usize,
1672        "Offset of field: dpiEncodingInfo::nmaxBytesPerCharacter"
1673    );
1674}
1675impl Default for dpiEncodingInfo {
1676    fn default() -> Self {
1677        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1678        unsafe {
1679            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1680            s.assume_init()
1681        }
1682    }
1683}
1684#[repr(C)]
1685#[derive(Debug, Copy, Clone)]
1686pub struct dpiErrorInfo {
1687    pub code: i32,
1688    pub offset16: u16,
1689    pub message: *const ::std::os::raw::c_char,
1690    pub messageLength: u32,
1691    pub encoding: *const ::std::os::raw::c_char,
1692    pub fnName: *const ::std::os::raw::c_char,
1693    pub action: *const ::std::os::raw::c_char,
1694    pub sqlState: *const ::std::os::raw::c_char,
1695    pub isRecoverable: ::std::os::raw::c_int,
1696    pub isWarning: ::std::os::raw::c_int,
1697    pub offset: u32,
1698}
1699#[test]
1700fn bindgen_test_layout_dpiErrorInfo() {
1701    const UNINIT: ::std::mem::MaybeUninit<dpiErrorInfo> = ::std::mem::MaybeUninit::uninit();
1702    let ptr = UNINIT.as_ptr();
1703    assert_eq!(
1704        ::std::mem::size_of::<dpiErrorInfo>(),
1705        72usize,
1706        "Size of dpiErrorInfo"
1707    );
1708    assert_eq!(
1709        ::std::mem::align_of::<dpiErrorInfo>(),
1710        8usize,
1711        "Alignment of dpiErrorInfo"
1712    );
1713    assert_eq!(
1714        unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize },
1715        0usize,
1716        "Offset of field: dpiErrorInfo::code"
1717    );
1718    assert_eq!(
1719        unsafe { ::std::ptr::addr_of!((*ptr).offset16) as usize - ptr as usize },
1720        4usize,
1721        "Offset of field: dpiErrorInfo::offset16"
1722    );
1723    assert_eq!(
1724        unsafe { ::std::ptr::addr_of!((*ptr).message) as usize - ptr as usize },
1725        8usize,
1726        "Offset of field: dpiErrorInfo::message"
1727    );
1728    assert_eq!(
1729        unsafe { ::std::ptr::addr_of!((*ptr).messageLength) as usize - ptr as usize },
1730        16usize,
1731        "Offset of field: dpiErrorInfo::messageLength"
1732    );
1733    assert_eq!(
1734        unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize },
1735        24usize,
1736        "Offset of field: dpiErrorInfo::encoding"
1737    );
1738    assert_eq!(
1739        unsafe { ::std::ptr::addr_of!((*ptr).fnName) as usize - ptr as usize },
1740        32usize,
1741        "Offset of field: dpiErrorInfo::fnName"
1742    );
1743    assert_eq!(
1744        unsafe { ::std::ptr::addr_of!((*ptr).action) as usize - ptr as usize },
1745        40usize,
1746        "Offset of field: dpiErrorInfo::action"
1747    );
1748    assert_eq!(
1749        unsafe { ::std::ptr::addr_of!((*ptr).sqlState) as usize - ptr as usize },
1750        48usize,
1751        "Offset of field: dpiErrorInfo::sqlState"
1752    );
1753    assert_eq!(
1754        unsafe { ::std::ptr::addr_of!((*ptr).isRecoverable) as usize - ptr as usize },
1755        56usize,
1756        "Offset of field: dpiErrorInfo::isRecoverable"
1757    );
1758    assert_eq!(
1759        unsafe { ::std::ptr::addr_of!((*ptr).isWarning) as usize - ptr as usize },
1760        60usize,
1761        "Offset of field: dpiErrorInfo::isWarning"
1762    );
1763    assert_eq!(
1764        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
1765        64usize,
1766        "Offset of field: dpiErrorInfo::offset"
1767    );
1768}
1769impl Default for dpiErrorInfo {
1770    fn default() -> Self {
1771        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1772        unsafe {
1773            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1774            s.assume_init()
1775        }
1776    }
1777}
1778#[repr(C)]
1779#[derive(Debug, Copy, Clone)]
1780pub struct dpiObjectAttrInfo {
1781    pub name: *const ::std::os::raw::c_char,
1782    pub nameLength: u32,
1783    pub typeInfo: dpiDataTypeInfo,
1784}
1785#[test]
1786fn bindgen_test_layout_dpiObjectAttrInfo() {
1787    const UNINIT: ::std::mem::MaybeUninit<dpiObjectAttrInfo> = ::std::mem::MaybeUninit::uninit();
1788    let ptr = UNINIT.as_ptr();
1789    assert_eq!(
1790        ::std::mem::size_of::<dpiObjectAttrInfo>(),
1791        120usize,
1792        "Size of dpiObjectAttrInfo"
1793    );
1794    assert_eq!(
1795        ::std::mem::align_of::<dpiObjectAttrInfo>(),
1796        8usize,
1797        "Alignment of dpiObjectAttrInfo"
1798    );
1799    assert_eq!(
1800        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
1801        0usize,
1802        "Offset of field: dpiObjectAttrInfo::name"
1803    );
1804    assert_eq!(
1805        unsafe { ::std::ptr::addr_of!((*ptr).nameLength) as usize - ptr as usize },
1806        8usize,
1807        "Offset of field: dpiObjectAttrInfo::nameLength"
1808    );
1809    assert_eq!(
1810        unsafe { ::std::ptr::addr_of!((*ptr).typeInfo) as usize - ptr as usize },
1811        16usize,
1812        "Offset of field: dpiObjectAttrInfo::typeInfo"
1813    );
1814}
1815impl Default for dpiObjectAttrInfo {
1816    fn default() -> Self {
1817        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1818        unsafe {
1819            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1820            s.assume_init()
1821        }
1822    }
1823}
1824#[repr(C)]
1825#[derive(Debug, Copy, Clone)]
1826pub struct dpiObjectTypeInfo {
1827    pub schema: *const ::std::os::raw::c_char,
1828    pub schemaLength: u32,
1829    pub name: *const ::std::os::raw::c_char,
1830    pub nameLength: u32,
1831    pub isCollection: ::std::os::raw::c_int,
1832    pub elementTypeInfo: dpiDataTypeInfo,
1833    pub numAttributes: u16,
1834    pub packageName: *const ::std::os::raw::c_char,
1835    pub packageNameLength: u32,
1836}
1837#[test]
1838fn bindgen_test_layout_dpiObjectTypeInfo() {
1839    const UNINIT: ::std::mem::MaybeUninit<dpiObjectTypeInfo> = ::std::mem::MaybeUninit::uninit();
1840    let ptr = UNINIT.as_ptr();
1841    assert_eq!(
1842        ::std::mem::size_of::<dpiObjectTypeInfo>(),
1843        160usize,
1844        "Size of dpiObjectTypeInfo"
1845    );
1846    assert_eq!(
1847        ::std::mem::align_of::<dpiObjectTypeInfo>(),
1848        8usize,
1849        "Alignment of dpiObjectTypeInfo"
1850    );
1851    assert_eq!(
1852        unsafe { ::std::ptr::addr_of!((*ptr).schema) as usize - ptr as usize },
1853        0usize,
1854        "Offset of field: dpiObjectTypeInfo::schema"
1855    );
1856    assert_eq!(
1857        unsafe { ::std::ptr::addr_of!((*ptr).schemaLength) as usize - ptr as usize },
1858        8usize,
1859        "Offset of field: dpiObjectTypeInfo::schemaLength"
1860    );
1861    assert_eq!(
1862        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
1863        16usize,
1864        "Offset of field: dpiObjectTypeInfo::name"
1865    );
1866    assert_eq!(
1867        unsafe { ::std::ptr::addr_of!((*ptr).nameLength) as usize - ptr as usize },
1868        24usize,
1869        "Offset of field: dpiObjectTypeInfo::nameLength"
1870    );
1871    assert_eq!(
1872        unsafe { ::std::ptr::addr_of!((*ptr).isCollection) as usize - ptr as usize },
1873        28usize,
1874        "Offset of field: dpiObjectTypeInfo::isCollection"
1875    );
1876    assert_eq!(
1877        unsafe { ::std::ptr::addr_of!((*ptr).elementTypeInfo) as usize - ptr as usize },
1878        32usize,
1879        "Offset of field: dpiObjectTypeInfo::elementTypeInfo"
1880    );
1881    assert_eq!(
1882        unsafe { ::std::ptr::addr_of!((*ptr).numAttributes) as usize - ptr as usize },
1883        136usize,
1884        "Offset of field: dpiObjectTypeInfo::numAttributes"
1885    );
1886    assert_eq!(
1887        unsafe { ::std::ptr::addr_of!((*ptr).packageName) as usize - ptr as usize },
1888        144usize,
1889        "Offset of field: dpiObjectTypeInfo::packageName"
1890    );
1891    assert_eq!(
1892        unsafe { ::std::ptr::addr_of!((*ptr).packageNameLength) as usize - ptr as usize },
1893        152usize,
1894        "Offset of field: dpiObjectTypeInfo::packageNameLength"
1895    );
1896}
1897impl Default for dpiObjectTypeInfo {
1898    fn default() -> Self {
1899        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1900        unsafe {
1901            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1902            s.assume_init()
1903        }
1904    }
1905}
1906#[repr(C)]
1907#[derive(Debug, Copy, Clone)]
1908pub struct dpiPoolCreateParams {
1909    pub minSessions: u32,
1910    pub maxSessions: u32,
1911    pub sessionIncrement: u32,
1912    pub pingInterval: ::std::os::raw::c_int,
1913    pub pingTimeout: ::std::os::raw::c_int,
1914    pub homogeneous: ::std::os::raw::c_int,
1915    pub externalAuth: ::std::os::raw::c_int,
1916    pub getMode: dpiPoolGetMode,
1917    pub outPoolName: *const ::std::os::raw::c_char,
1918    pub outPoolNameLength: u32,
1919    pub timeout: u32,
1920    pub waitTimeout: u32,
1921    pub maxLifetimeSession: u32,
1922    pub plsqlFixupCallback: *const ::std::os::raw::c_char,
1923    pub plsqlFixupCallbackLength: u32,
1924    pub maxSessionsPerShard: u32,
1925    pub accessTokenCallback: dpiAccessTokenCallback,
1926    pub accessTokenCallbackContext: *mut ::std::os::raw::c_void,
1927}
1928#[test]
1929fn bindgen_test_layout_dpiPoolCreateParams() {
1930    const UNINIT: ::std::mem::MaybeUninit<dpiPoolCreateParams> = ::std::mem::MaybeUninit::uninit();
1931    let ptr = UNINIT.as_ptr();
1932    assert_eq!(
1933        ::std::mem::size_of::<dpiPoolCreateParams>(),
1934        88usize,
1935        "Size of dpiPoolCreateParams"
1936    );
1937    assert_eq!(
1938        ::std::mem::align_of::<dpiPoolCreateParams>(),
1939        8usize,
1940        "Alignment of dpiPoolCreateParams"
1941    );
1942    assert_eq!(
1943        unsafe { ::std::ptr::addr_of!((*ptr).minSessions) as usize - ptr as usize },
1944        0usize,
1945        "Offset of field: dpiPoolCreateParams::minSessions"
1946    );
1947    assert_eq!(
1948        unsafe { ::std::ptr::addr_of!((*ptr).maxSessions) as usize - ptr as usize },
1949        4usize,
1950        "Offset of field: dpiPoolCreateParams::maxSessions"
1951    );
1952    assert_eq!(
1953        unsafe { ::std::ptr::addr_of!((*ptr).sessionIncrement) as usize - ptr as usize },
1954        8usize,
1955        "Offset of field: dpiPoolCreateParams::sessionIncrement"
1956    );
1957    assert_eq!(
1958        unsafe { ::std::ptr::addr_of!((*ptr).pingInterval) as usize - ptr as usize },
1959        12usize,
1960        "Offset of field: dpiPoolCreateParams::pingInterval"
1961    );
1962    assert_eq!(
1963        unsafe { ::std::ptr::addr_of!((*ptr).pingTimeout) as usize - ptr as usize },
1964        16usize,
1965        "Offset of field: dpiPoolCreateParams::pingTimeout"
1966    );
1967    assert_eq!(
1968        unsafe { ::std::ptr::addr_of!((*ptr).homogeneous) as usize - ptr as usize },
1969        20usize,
1970        "Offset of field: dpiPoolCreateParams::homogeneous"
1971    );
1972    assert_eq!(
1973        unsafe { ::std::ptr::addr_of!((*ptr).externalAuth) as usize - ptr as usize },
1974        24usize,
1975        "Offset of field: dpiPoolCreateParams::externalAuth"
1976    );
1977    assert_eq!(
1978        unsafe { ::std::ptr::addr_of!((*ptr).getMode) as usize - ptr as usize },
1979        28usize,
1980        "Offset of field: dpiPoolCreateParams::getMode"
1981    );
1982    assert_eq!(
1983        unsafe { ::std::ptr::addr_of!((*ptr).outPoolName) as usize - ptr as usize },
1984        32usize,
1985        "Offset of field: dpiPoolCreateParams::outPoolName"
1986    );
1987    assert_eq!(
1988        unsafe { ::std::ptr::addr_of!((*ptr).outPoolNameLength) as usize - ptr as usize },
1989        40usize,
1990        "Offset of field: dpiPoolCreateParams::outPoolNameLength"
1991    );
1992    assert_eq!(
1993        unsafe { ::std::ptr::addr_of!((*ptr).timeout) as usize - ptr as usize },
1994        44usize,
1995        "Offset of field: dpiPoolCreateParams::timeout"
1996    );
1997    assert_eq!(
1998        unsafe { ::std::ptr::addr_of!((*ptr).waitTimeout) as usize - ptr as usize },
1999        48usize,
2000        "Offset of field: dpiPoolCreateParams::waitTimeout"
2001    );
2002    assert_eq!(
2003        unsafe { ::std::ptr::addr_of!((*ptr).maxLifetimeSession) as usize - ptr as usize },
2004        52usize,
2005        "Offset of field: dpiPoolCreateParams::maxLifetimeSession"
2006    );
2007    assert_eq!(
2008        unsafe { ::std::ptr::addr_of!((*ptr).plsqlFixupCallback) as usize - ptr as usize },
2009        56usize,
2010        "Offset of field: dpiPoolCreateParams::plsqlFixupCallback"
2011    );
2012    assert_eq!(
2013        unsafe { ::std::ptr::addr_of!((*ptr).plsqlFixupCallbackLength) as usize - ptr as usize },
2014        64usize,
2015        "Offset of field: dpiPoolCreateParams::plsqlFixupCallbackLength"
2016    );
2017    assert_eq!(
2018        unsafe { ::std::ptr::addr_of!((*ptr).maxSessionsPerShard) as usize - ptr as usize },
2019        68usize,
2020        "Offset of field: dpiPoolCreateParams::maxSessionsPerShard"
2021    );
2022    assert_eq!(
2023        unsafe { ::std::ptr::addr_of!((*ptr).accessTokenCallback) as usize - ptr as usize },
2024        72usize,
2025        "Offset of field: dpiPoolCreateParams::accessTokenCallback"
2026    );
2027    assert_eq!(
2028        unsafe { ::std::ptr::addr_of!((*ptr).accessTokenCallbackContext) as usize - ptr as usize },
2029        80usize,
2030        "Offset of field: dpiPoolCreateParams::accessTokenCallbackContext"
2031    );
2032}
2033impl Default for dpiPoolCreateParams {
2034    fn default() -> Self {
2035        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2036        unsafe {
2037            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2038            s.assume_init()
2039        }
2040    }
2041}
2042#[repr(C)]
2043#[derive(Debug, Copy, Clone)]
2044pub struct dpiQueryInfo {
2045    pub name: *const ::std::os::raw::c_char,
2046    pub nameLength: u32,
2047    pub typeInfo: dpiDataTypeInfo,
2048    pub nullOk: ::std::os::raw::c_int,
2049}
2050#[test]
2051fn bindgen_test_layout_dpiQueryInfo() {
2052    const UNINIT: ::std::mem::MaybeUninit<dpiQueryInfo> = ::std::mem::MaybeUninit::uninit();
2053    let ptr = UNINIT.as_ptr();
2054    assert_eq!(
2055        ::std::mem::size_of::<dpiQueryInfo>(),
2056        128usize,
2057        "Size of dpiQueryInfo"
2058    );
2059    assert_eq!(
2060        ::std::mem::align_of::<dpiQueryInfo>(),
2061        8usize,
2062        "Alignment of dpiQueryInfo"
2063    );
2064    assert_eq!(
2065        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
2066        0usize,
2067        "Offset of field: dpiQueryInfo::name"
2068    );
2069    assert_eq!(
2070        unsafe { ::std::ptr::addr_of!((*ptr).nameLength) as usize - ptr as usize },
2071        8usize,
2072        "Offset of field: dpiQueryInfo::nameLength"
2073    );
2074    assert_eq!(
2075        unsafe { ::std::ptr::addr_of!((*ptr).typeInfo) as usize - ptr as usize },
2076        16usize,
2077        "Offset of field: dpiQueryInfo::typeInfo"
2078    );
2079    assert_eq!(
2080        unsafe { ::std::ptr::addr_of!((*ptr).nullOk) as usize - ptr as usize },
2081        120usize,
2082        "Offset of field: dpiQueryInfo::nullOk"
2083    );
2084}
2085impl Default for dpiQueryInfo {
2086    fn default() -> Self {
2087        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2088        unsafe {
2089            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2090            s.assume_init()
2091        }
2092    }
2093}
2094#[repr(C)]
2095#[derive(Debug, Copy, Clone)]
2096pub struct dpiMsgRecipient {
2097    pub name: *const ::std::os::raw::c_char,
2098    pub nameLength: u32,
2099}
2100#[test]
2101fn bindgen_test_layout_dpiMsgRecipient() {
2102    const UNINIT: ::std::mem::MaybeUninit<dpiMsgRecipient> = ::std::mem::MaybeUninit::uninit();
2103    let ptr = UNINIT.as_ptr();
2104    assert_eq!(
2105        ::std::mem::size_of::<dpiMsgRecipient>(),
2106        16usize,
2107        "Size of dpiMsgRecipient"
2108    );
2109    assert_eq!(
2110        ::std::mem::align_of::<dpiMsgRecipient>(),
2111        8usize,
2112        "Alignment of dpiMsgRecipient"
2113    );
2114    assert_eq!(
2115        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
2116        0usize,
2117        "Offset of field: dpiMsgRecipient::name"
2118    );
2119    assert_eq!(
2120        unsafe { ::std::ptr::addr_of!((*ptr).nameLength) as usize - ptr as usize },
2121        8usize,
2122        "Offset of field: dpiMsgRecipient::nameLength"
2123    );
2124}
2125impl Default for dpiMsgRecipient {
2126    fn default() -> Self {
2127        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2128        unsafe {
2129            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2130            s.assume_init()
2131        }
2132    }
2133}
2134#[repr(C)]
2135#[derive(Copy, Clone)]
2136pub struct dpiShardingKeyColumn {
2137    pub oracleTypeNum: dpiOracleTypeNum,
2138    pub nativeTypeNum: dpiNativeTypeNum,
2139    pub value: dpiDataBuffer,
2140}
2141#[test]
2142fn bindgen_test_layout_dpiShardingKeyColumn() {
2143    const UNINIT: ::std::mem::MaybeUninit<dpiShardingKeyColumn> = ::std::mem::MaybeUninit::uninit();
2144    let ptr = UNINIT.as_ptr();
2145    assert_eq!(
2146        ::std::mem::size_of::<dpiShardingKeyColumn>(),
2147        48usize,
2148        "Size of dpiShardingKeyColumn"
2149    );
2150    assert_eq!(
2151        ::std::mem::align_of::<dpiShardingKeyColumn>(),
2152        8usize,
2153        "Alignment of dpiShardingKeyColumn"
2154    );
2155    assert_eq!(
2156        unsafe { ::std::ptr::addr_of!((*ptr).oracleTypeNum) as usize - ptr as usize },
2157        0usize,
2158        "Offset of field: dpiShardingKeyColumn::oracleTypeNum"
2159    );
2160    assert_eq!(
2161        unsafe { ::std::ptr::addr_of!((*ptr).nativeTypeNum) as usize - ptr as usize },
2162        4usize,
2163        "Offset of field: dpiShardingKeyColumn::nativeTypeNum"
2164    );
2165    assert_eq!(
2166        unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize },
2167        8usize,
2168        "Offset of field: dpiShardingKeyColumn::value"
2169    );
2170}
2171impl Default for dpiShardingKeyColumn {
2172    fn default() -> Self {
2173        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2174        unsafe {
2175            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2176            s.assume_init()
2177        }
2178    }
2179}
2180#[repr(C)]
2181#[derive(Copy, Clone)]
2182pub struct dpiStringList {
2183    pub __bindgen_anon_1: dpiStringList__bindgen_ty_1,
2184    pub __bindgen_anon_2: dpiStringList__bindgen_ty_2,
2185    pub __bindgen_anon_3: dpiStringList__bindgen_ty_3,
2186}
2187#[repr(C)]
2188#[derive(Copy, Clone)]
2189pub union dpiStringList__bindgen_ty_1 {
2190    pub numStrings: u32,
2191    pub numNames: u32,
2192}
2193#[test]
2194fn bindgen_test_layout_dpiStringList__bindgen_ty_1() {
2195    const UNINIT: ::std::mem::MaybeUninit<dpiStringList__bindgen_ty_1> =
2196        ::std::mem::MaybeUninit::uninit();
2197    let ptr = UNINIT.as_ptr();
2198    assert_eq!(
2199        ::std::mem::size_of::<dpiStringList__bindgen_ty_1>(),
2200        4usize,
2201        "Size of dpiStringList__bindgen_ty_1"
2202    );
2203    assert_eq!(
2204        ::std::mem::align_of::<dpiStringList__bindgen_ty_1>(),
2205        4usize,
2206        "Alignment of dpiStringList__bindgen_ty_1"
2207    );
2208    assert_eq!(
2209        unsafe { ::std::ptr::addr_of!((*ptr).numStrings) as usize - ptr as usize },
2210        0usize,
2211        "Offset of field: dpiStringList__bindgen_ty_1::numStrings"
2212    );
2213    assert_eq!(
2214        unsafe { ::std::ptr::addr_of!((*ptr).numNames) as usize - ptr as usize },
2215        0usize,
2216        "Offset of field: dpiStringList__bindgen_ty_1::numNames"
2217    );
2218}
2219impl Default for dpiStringList__bindgen_ty_1 {
2220    fn default() -> Self {
2221        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2222        unsafe {
2223            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2224            s.assume_init()
2225        }
2226    }
2227}
2228#[repr(C)]
2229#[derive(Copy, Clone)]
2230pub union dpiStringList__bindgen_ty_2 {
2231    pub strings: *mut *const ::std::os::raw::c_char,
2232    pub names: *mut *const ::std::os::raw::c_char,
2233}
2234#[test]
2235fn bindgen_test_layout_dpiStringList__bindgen_ty_2() {
2236    const UNINIT: ::std::mem::MaybeUninit<dpiStringList__bindgen_ty_2> =
2237        ::std::mem::MaybeUninit::uninit();
2238    let ptr = UNINIT.as_ptr();
2239    assert_eq!(
2240        ::std::mem::size_of::<dpiStringList__bindgen_ty_2>(),
2241        8usize,
2242        "Size of dpiStringList__bindgen_ty_2"
2243    );
2244    assert_eq!(
2245        ::std::mem::align_of::<dpiStringList__bindgen_ty_2>(),
2246        8usize,
2247        "Alignment of dpiStringList__bindgen_ty_2"
2248    );
2249    assert_eq!(
2250        unsafe { ::std::ptr::addr_of!((*ptr).strings) as usize - ptr as usize },
2251        0usize,
2252        "Offset of field: dpiStringList__bindgen_ty_2::strings"
2253    );
2254    assert_eq!(
2255        unsafe { ::std::ptr::addr_of!((*ptr).names) as usize - ptr as usize },
2256        0usize,
2257        "Offset of field: dpiStringList__bindgen_ty_2::names"
2258    );
2259}
2260impl Default for dpiStringList__bindgen_ty_2 {
2261    fn default() -> Self {
2262        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2263        unsafe {
2264            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2265            s.assume_init()
2266        }
2267    }
2268}
2269#[repr(C)]
2270#[derive(Copy, Clone)]
2271pub union dpiStringList__bindgen_ty_3 {
2272    pub stringLengths: *mut u32,
2273    pub nameLengths: *mut u32,
2274}
2275#[test]
2276fn bindgen_test_layout_dpiStringList__bindgen_ty_3() {
2277    const UNINIT: ::std::mem::MaybeUninit<dpiStringList__bindgen_ty_3> =
2278        ::std::mem::MaybeUninit::uninit();
2279    let ptr = UNINIT.as_ptr();
2280    assert_eq!(
2281        ::std::mem::size_of::<dpiStringList__bindgen_ty_3>(),
2282        8usize,
2283        "Size of dpiStringList__bindgen_ty_3"
2284    );
2285    assert_eq!(
2286        ::std::mem::align_of::<dpiStringList__bindgen_ty_3>(),
2287        8usize,
2288        "Alignment of dpiStringList__bindgen_ty_3"
2289    );
2290    assert_eq!(
2291        unsafe { ::std::ptr::addr_of!((*ptr).stringLengths) as usize - ptr as usize },
2292        0usize,
2293        "Offset of field: dpiStringList__bindgen_ty_3::stringLengths"
2294    );
2295    assert_eq!(
2296        unsafe { ::std::ptr::addr_of!((*ptr).nameLengths) as usize - ptr as usize },
2297        0usize,
2298        "Offset of field: dpiStringList__bindgen_ty_3::nameLengths"
2299    );
2300}
2301impl Default for dpiStringList__bindgen_ty_3 {
2302    fn default() -> Self {
2303        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2304        unsafe {
2305            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2306            s.assume_init()
2307        }
2308    }
2309}
2310#[test]
2311fn bindgen_test_layout_dpiStringList() {
2312    assert_eq!(
2313        ::std::mem::size_of::<dpiStringList>(),
2314        24usize,
2315        "Size of dpiStringList"
2316    );
2317    assert_eq!(
2318        ::std::mem::align_of::<dpiStringList>(),
2319        8usize,
2320        "Alignment of dpiStringList"
2321    );
2322}
2323impl Default for dpiStringList {
2324    fn default() -> Self {
2325        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2326        unsafe {
2327            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2328            s.assume_init()
2329        }
2330    }
2331}
2332#[repr(C)]
2333#[derive(Debug, Copy, Clone)]
2334pub struct dpiSodaOperOptions {
2335    pub numKeys: u32,
2336    pub keys: *mut *const ::std::os::raw::c_char,
2337    pub keyLengths: *mut u32,
2338    pub key: *const ::std::os::raw::c_char,
2339    pub keyLength: u32,
2340    pub version: *const ::std::os::raw::c_char,
2341    pub versionLength: u32,
2342    pub filter: *const ::std::os::raw::c_char,
2343    pub filterLength: u32,
2344    pub skip: u32,
2345    pub limit: u32,
2346    pub fetchArraySize: u32,
2347    pub hint: *const ::std::os::raw::c_char,
2348    pub hintLength: u32,
2349    pub lock: ::std::os::raw::c_int,
2350}
2351#[test]
2352fn bindgen_test_layout_dpiSodaOperOptions() {
2353    const UNINIT: ::std::mem::MaybeUninit<dpiSodaOperOptions> = ::std::mem::MaybeUninit::uninit();
2354    let ptr = UNINIT.as_ptr();
2355    assert_eq!(
2356        ::std::mem::size_of::<dpiSodaOperOptions>(),
2357        96usize,
2358        "Size of dpiSodaOperOptions"
2359    );
2360    assert_eq!(
2361        ::std::mem::align_of::<dpiSodaOperOptions>(),
2362        8usize,
2363        "Alignment of dpiSodaOperOptions"
2364    );
2365    assert_eq!(
2366        unsafe { ::std::ptr::addr_of!((*ptr).numKeys) as usize - ptr as usize },
2367        0usize,
2368        "Offset of field: dpiSodaOperOptions::numKeys"
2369    );
2370    assert_eq!(
2371        unsafe { ::std::ptr::addr_of!((*ptr).keys) as usize - ptr as usize },
2372        8usize,
2373        "Offset of field: dpiSodaOperOptions::keys"
2374    );
2375    assert_eq!(
2376        unsafe { ::std::ptr::addr_of!((*ptr).keyLengths) as usize - ptr as usize },
2377        16usize,
2378        "Offset of field: dpiSodaOperOptions::keyLengths"
2379    );
2380    assert_eq!(
2381        unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize },
2382        24usize,
2383        "Offset of field: dpiSodaOperOptions::key"
2384    );
2385    assert_eq!(
2386        unsafe { ::std::ptr::addr_of!((*ptr).keyLength) as usize - ptr as usize },
2387        32usize,
2388        "Offset of field: dpiSodaOperOptions::keyLength"
2389    );
2390    assert_eq!(
2391        unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
2392        40usize,
2393        "Offset of field: dpiSodaOperOptions::version"
2394    );
2395    assert_eq!(
2396        unsafe { ::std::ptr::addr_of!((*ptr).versionLength) as usize - ptr as usize },
2397        48usize,
2398        "Offset of field: dpiSodaOperOptions::versionLength"
2399    );
2400    assert_eq!(
2401        unsafe { ::std::ptr::addr_of!((*ptr).filter) as usize - ptr as usize },
2402        56usize,
2403        "Offset of field: dpiSodaOperOptions::filter"
2404    );
2405    assert_eq!(
2406        unsafe { ::std::ptr::addr_of!((*ptr).filterLength) as usize - ptr as usize },
2407        64usize,
2408        "Offset of field: dpiSodaOperOptions::filterLength"
2409    );
2410    assert_eq!(
2411        unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize },
2412        68usize,
2413        "Offset of field: dpiSodaOperOptions::skip"
2414    );
2415    assert_eq!(
2416        unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize },
2417        72usize,
2418        "Offset of field: dpiSodaOperOptions::limit"
2419    );
2420    assert_eq!(
2421        unsafe { ::std::ptr::addr_of!((*ptr).fetchArraySize) as usize - ptr as usize },
2422        76usize,
2423        "Offset of field: dpiSodaOperOptions::fetchArraySize"
2424    );
2425    assert_eq!(
2426        unsafe { ::std::ptr::addr_of!((*ptr).hint) as usize - ptr as usize },
2427        80usize,
2428        "Offset of field: dpiSodaOperOptions::hint"
2429    );
2430    assert_eq!(
2431        unsafe { ::std::ptr::addr_of!((*ptr).hintLength) as usize - ptr as usize },
2432        88usize,
2433        "Offset of field: dpiSodaOperOptions::hintLength"
2434    );
2435    assert_eq!(
2436        unsafe { ::std::ptr::addr_of!((*ptr).lock) as usize - ptr as usize },
2437        92usize,
2438        "Offset of field: dpiSodaOperOptions::lock"
2439    );
2440}
2441impl Default for dpiSodaOperOptions {
2442    fn default() -> Self {
2443        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2444        unsafe {
2445            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2446            s.assume_init()
2447        }
2448    }
2449}
2450#[repr(C)]
2451#[derive(Debug, Default, Copy, Clone)]
2452pub struct dpiStmtInfo {
2453    pub isQuery: ::std::os::raw::c_int,
2454    pub isPLSQL: ::std::os::raw::c_int,
2455    pub isDDL: ::std::os::raw::c_int,
2456    pub isDML: ::std::os::raw::c_int,
2457    pub statementType: dpiStatementType,
2458    pub isReturning: ::std::os::raw::c_int,
2459}
2460#[test]
2461fn bindgen_test_layout_dpiStmtInfo() {
2462    const UNINIT: ::std::mem::MaybeUninit<dpiStmtInfo> = ::std::mem::MaybeUninit::uninit();
2463    let ptr = UNINIT.as_ptr();
2464    assert_eq!(
2465        ::std::mem::size_of::<dpiStmtInfo>(),
2466        24usize,
2467        "Size of dpiStmtInfo"
2468    );
2469    assert_eq!(
2470        ::std::mem::align_of::<dpiStmtInfo>(),
2471        4usize,
2472        "Alignment of dpiStmtInfo"
2473    );
2474    assert_eq!(
2475        unsafe { ::std::ptr::addr_of!((*ptr).isQuery) as usize - ptr as usize },
2476        0usize,
2477        "Offset of field: dpiStmtInfo::isQuery"
2478    );
2479    assert_eq!(
2480        unsafe { ::std::ptr::addr_of!((*ptr).isPLSQL) as usize - ptr as usize },
2481        4usize,
2482        "Offset of field: dpiStmtInfo::isPLSQL"
2483    );
2484    assert_eq!(
2485        unsafe { ::std::ptr::addr_of!((*ptr).isDDL) as usize - ptr as usize },
2486        8usize,
2487        "Offset of field: dpiStmtInfo::isDDL"
2488    );
2489    assert_eq!(
2490        unsafe { ::std::ptr::addr_of!((*ptr).isDML) as usize - ptr as usize },
2491        12usize,
2492        "Offset of field: dpiStmtInfo::isDML"
2493    );
2494    assert_eq!(
2495        unsafe { ::std::ptr::addr_of!((*ptr).statementType) as usize - ptr as usize },
2496        16usize,
2497        "Offset of field: dpiStmtInfo::statementType"
2498    );
2499    assert_eq!(
2500        unsafe { ::std::ptr::addr_of!((*ptr).isReturning) as usize - ptr as usize },
2501        20usize,
2502        "Offset of field: dpiStmtInfo::isReturning"
2503    );
2504}
2505pub type dpiSubscrCallback = ::std::option::Option<
2506    unsafe extern "C" fn(context: *mut ::std::os::raw::c_void, message: *mut dpiSubscrMessage),
2507>;
2508#[repr(C)]
2509#[derive(Debug, Copy, Clone)]
2510pub struct dpiSubscrCreateParams {
2511    pub subscrNamespace: dpiSubscrNamespace,
2512    pub protocol: dpiSubscrProtocol,
2513    pub qos: dpiSubscrQOS,
2514    pub operations: dpiOpCode,
2515    pub portNumber: u32,
2516    pub timeout: u32,
2517    pub name: *const ::std::os::raw::c_char,
2518    pub nameLength: u32,
2519    pub callback: dpiSubscrCallback,
2520    pub callbackContext: *mut ::std::os::raw::c_void,
2521    pub recipientName: *const ::std::os::raw::c_char,
2522    pub recipientNameLength: u32,
2523    pub ipAddress: *const ::std::os::raw::c_char,
2524    pub ipAddressLength: u32,
2525    pub groupingClass: u8,
2526    pub groupingValue: u32,
2527    pub groupingType: u8,
2528    pub outRegId: u64,
2529    pub clientInitiated: ::std::os::raw::c_int,
2530}
2531#[test]
2532fn bindgen_test_layout_dpiSubscrCreateParams() {
2533    const UNINIT: ::std::mem::MaybeUninit<dpiSubscrCreateParams> =
2534        ::std::mem::MaybeUninit::uninit();
2535    let ptr = UNINIT.as_ptr();
2536    assert_eq!(
2537        ::std::mem::size_of::<dpiSubscrCreateParams>(),
2538        112usize,
2539        "Size of dpiSubscrCreateParams"
2540    );
2541    assert_eq!(
2542        ::std::mem::align_of::<dpiSubscrCreateParams>(),
2543        8usize,
2544        "Alignment of dpiSubscrCreateParams"
2545    );
2546    assert_eq!(
2547        unsafe { ::std::ptr::addr_of!((*ptr).subscrNamespace) as usize - ptr as usize },
2548        0usize,
2549        "Offset of field: dpiSubscrCreateParams::subscrNamespace"
2550    );
2551    assert_eq!(
2552        unsafe { ::std::ptr::addr_of!((*ptr).protocol) as usize - ptr as usize },
2553        4usize,
2554        "Offset of field: dpiSubscrCreateParams::protocol"
2555    );
2556    assert_eq!(
2557        unsafe { ::std::ptr::addr_of!((*ptr).qos) as usize - ptr as usize },
2558        8usize,
2559        "Offset of field: dpiSubscrCreateParams::qos"
2560    );
2561    assert_eq!(
2562        unsafe { ::std::ptr::addr_of!((*ptr).operations) as usize - ptr as usize },
2563        12usize,
2564        "Offset of field: dpiSubscrCreateParams::operations"
2565    );
2566    assert_eq!(
2567        unsafe { ::std::ptr::addr_of!((*ptr).portNumber) as usize - ptr as usize },
2568        16usize,
2569        "Offset of field: dpiSubscrCreateParams::portNumber"
2570    );
2571    assert_eq!(
2572        unsafe { ::std::ptr::addr_of!((*ptr).timeout) as usize - ptr as usize },
2573        20usize,
2574        "Offset of field: dpiSubscrCreateParams::timeout"
2575    );
2576    assert_eq!(
2577        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
2578        24usize,
2579        "Offset of field: dpiSubscrCreateParams::name"
2580    );
2581    assert_eq!(
2582        unsafe { ::std::ptr::addr_of!((*ptr).nameLength) as usize - ptr as usize },
2583        32usize,
2584        "Offset of field: dpiSubscrCreateParams::nameLength"
2585    );
2586    assert_eq!(
2587        unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize },
2588        40usize,
2589        "Offset of field: dpiSubscrCreateParams::callback"
2590    );
2591    assert_eq!(
2592        unsafe { ::std::ptr::addr_of!((*ptr).callbackContext) as usize - ptr as usize },
2593        48usize,
2594        "Offset of field: dpiSubscrCreateParams::callbackContext"
2595    );
2596    assert_eq!(
2597        unsafe { ::std::ptr::addr_of!((*ptr).recipientName) as usize - ptr as usize },
2598        56usize,
2599        "Offset of field: dpiSubscrCreateParams::recipientName"
2600    );
2601    assert_eq!(
2602        unsafe { ::std::ptr::addr_of!((*ptr).recipientNameLength) as usize - ptr as usize },
2603        64usize,
2604        "Offset of field: dpiSubscrCreateParams::recipientNameLength"
2605    );
2606    assert_eq!(
2607        unsafe { ::std::ptr::addr_of!((*ptr).ipAddress) as usize - ptr as usize },
2608        72usize,
2609        "Offset of field: dpiSubscrCreateParams::ipAddress"
2610    );
2611    assert_eq!(
2612        unsafe { ::std::ptr::addr_of!((*ptr).ipAddressLength) as usize - ptr as usize },
2613        80usize,
2614        "Offset of field: dpiSubscrCreateParams::ipAddressLength"
2615    );
2616    assert_eq!(
2617        unsafe { ::std::ptr::addr_of!((*ptr).groupingClass) as usize - ptr as usize },
2618        84usize,
2619        "Offset of field: dpiSubscrCreateParams::groupingClass"
2620    );
2621    assert_eq!(
2622        unsafe { ::std::ptr::addr_of!((*ptr).groupingValue) as usize - ptr as usize },
2623        88usize,
2624        "Offset of field: dpiSubscrCreateParams::groupingValue"
2625    );
2626    assert_eq!(
2627        unsafe { ::std::ptr::addr_of!((*ptr).groupingType) as usize - ptr as usize },
2628        92usize,
2629        "Offset of field: dpiSubscrCreateParams::groupingType"
2630    );
2631    assert_eq!(
2632        unsafe { ::std::ptr::addr_of!((*ptr).outRegId) as usize - ptr as usize },
2633        96usize,
2634        "Offset of field: dpiSubscrCreateParams::outRegId"
2635    );
2636    assert_eq!(
2637        unsafe { ::std::ptr::addr_of!((*ptr).clientInitiated) as usize - ptr as usize },
2638        104usize,
2639        "Offset of field: dpiSubscrCreateParams::clientInitiated"
2640    );
2641}
2642impl Default for dpiSubscrCreateParams {
2643    fn default() -> Self {
2644        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2645        unsafe {
2646            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2647            s.assume_init()
2648        }
2649    }
2650}
2651#[repr(C)]
2652#[derive(Debug, Copy, Clone)]
2653pub struct dpiSubscrMessage {
2654    pub eventType: dpiEventType,
2655    pub dbName: *const ::std::os::raw::c_char,
2656    pub dbNameLength: u32,
2657    pub tables: *mut dpiSubscrMessageTable,
2658    pub numTables: u32,
2659    pub queries: *mut dpiSubscrMessageQuery,
2660    pub numQueries: u32,
2661    pub errorInfo: *mut dpiErrorInfo,
2662    pub txId: *const ::std::os::raw::c_void,
2663    pub txIdLength: u32,
2664    pub registered: ::std::os::raw::c_int,
2665    pub queueName: *const ::std::os::raw::c_char,
2666    pub queueNameLength: u32,
2667    pub consumerName: *const ::std::os::raw::c_char,
2668    pub consumerNameLength: u32,
2669    pub aqMsgId: *const ::std::os::raw::c_void,
2670    pub aqMsgIdLength: u32,
2671}
2672#[test]
2673fn bindgen_test_layout_dpiSubscrMessage() {
2674    const UNINIT: ::std::mem::MaybeUninit<dpiSubscrMessage> = ::std::mem::MaybeUninit::uninit();
2675    let ptr = UNINIT.as_ptr();
2676    assert_eq!(
2677        ::std::mem::size_of::<dpiSubscrMessage>(),
2678        128usize,
2679        "Size of dpiSubscrMessage"
2680    );
2681    assert_eq!(
2682        ::std::mem::align_of::<dpiSubscrMessage>(),
2683        8usize,
2684        "Alignment of dpiSubscrMessage"
2685    );
2686    assert_eq!(
2687        unsafe { ::std::ptr::addr_of!((*ptr).eventType) as usize - ptr as usize },
2688        0usize,
2689        "Offset of field: dpiSubscrMessage::eventType"
2690    );
2691    assert_eq!(
2692        unsafe { ::std::ptr::addr_of!((*ptr).dbName) as usize - ptr as usize },
2693        8usize,
2694        "Offset of field: dpiSubscrMessage::dbName"
2695    );
2696    assert_eq!(
2697        unsafe { ::std::ptr::addr_of!((*ptr).dbNameLength) as usize - ptr as usize },
2698        16usize,
2699        "Offset of field: dpiSubscrMessage::dbNameLength"
2700    );
2701    assert_eq!(
2702        unsafe { ::std::ptr::addr_of!((*ptr).tables) as usize - ptr as usize },
2703        24usize,
2704        "Offset of field: dpiSubscrMessage::tables"
2705    );
2706    assert_eq!(
2707        unsafe { ::std::ptr::addr_of!((*ptr).numTables) as usize - ptr as usize },
2708        32usize,
2709        "Offset of field: dpiSubscrMessage::numTables"
2710    );
2711    assert_eq!(
2712        unsafe { ::std::ptr::addr_of!((*ptr).queries) as usize - ptr as usize },
2713        40usize,
2714        "Offset of field: dpiSubscrMessage::queries"
2715    );
2716    assert_eq!(
2717        unsafe { ::std::ptr::addr_of!((*ptr).numQueries) as usize - ptr as usize },
2718        48usize,
2719        "Offset of field: dpiSubscrMessage::numQueries"
2720    );
2721    assert_eq!(
2722        unsafe { ::std::ptr::addr_of!((*ptr).errorInfo) as usize - ptr as usize },
2723        56usize,
2724        "Offset of field: dpiSubscrMessage::errorInfo"
2725    );
2726    assert_eq!(
2727        unsafe { ::std::ptr::addr_of!((*ptr).txId) as usize - ptr as usize },
2728        64usize,
2729        "Offset of field: dpiSubscrMessage::txId"
2730    );
2731    assert_eq!(
2732        unsafe { ::std::ptr::addr_of!((*ptr).txIdLength) as usize - ptr as usize },
2733        72usize,
2734        "Offset of field: dpiSubscrMessage::txIdLength"
2735    );
2736    assert_eq!(
2737        unsafe { ::std::ptr::addr_of!((*ptr).registered) as usize - ptr as usize },
2738        76usize,
2739        "Offset of field: dpiSubscrMessage::registered"
2740    );
2741    assert_eq!(
2742        unsafe { ::std::ptr::addr_of!((*ptr).queueName) as usize - ptr as usize },
2743        80usize,
2744        "Offset of field: dpiSubscrMessage::queueName"
2745    );
2746    assert_eq!(
2747        unsafe { ::std::ptr::addr_of!((*ptr).queueNameLength) as usize - ptr as usize },
2748        88usize,
2749        "Offset of field: dpiSubscrMessage::queueNameLength"
2750    );
2751    assert_eq!(
2752        unsafe { ::std::ptr::addr_of!((*ptr).consumerName) as usize - ptr as usize },
2753        96usize,
2754        "Offset of field: dpiSubscrMessage::consumerName"
2755    );
2756    assert_eq!(
2757        unsafe { ::std::ptr::addr_of!((*ptr).consumerNameLength) as usize - ptr as usize },
2758        104usize,
2759        "Offset of field: dpiSubscrMessage::consumerNameLength"
2760    );
2761    assert_eq!(
2762        unsafe { ::std::ptr::addr_of!((*ptr).aqMsgId) as usize - ptr as usize },
2763        112usize,
2764        "Offset of field: dpiSubscrMessage::aqMsgId"
2765    );
2766    assert_eq!(
2767        unsafe { ::std::ptr::addr_of!((*ptr).aqMsgIdLength) as usize - ptr as usize },
2768        120usize,
2769        "Offset of field: dpiSubscrMessage::aqMsgIdLength"
2770    );
2771}
2772impl Default for dpiSubscrMessage {
2773    fn default() -> Self {
2774        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2775        unsafe {
2776            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2777            s.assume_init()
2778        }
2779    }
2780}
2781#[repr(C)]
2782#[derive(Debug, Copy, Clone)]
2783pub struct dpiSubscrMessageQuery {
2784    pub id: u64,
2785    pub operation: dpiOpCode,
2786    pub tables: *mut dpiSubscrMessageTable,
2787    pub numTables: u32,
2788}
2789#[test]
2790fn bindgen_test_layout_dpiSubscrMessageQuery() {
2791    const UNINIT: ::std::mem::MaybeUninit<dpiSubscrMessageQuery> =
2792        ::std::mem::MaybeUninit::uninit();
2793    let ptr = UNINIT.as_ptr();
2794    assert_eq!(
2795        ::std::mem::size_of::<dpiSubscrMessageQuery>(),
2796        32usize,
2797        "Size of dpiSubscrMessageQuery"
2798    );
2799    assert_eq!(
2800        ::std::mem::align_of::<dpiSubscrMessageQuery>(),
2801        8usize,
2802        "Alignment of dpiSubscrMessageQuery"
2803    );
2804    assert_eq!(
2805        unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
2806        0usize,
2807        "Offset of field: dpiSubscrMessageQuery::id"
2808    );
2809    assert_eq!(
2810        unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize },
2811        8usize,
2812        "Offset of field: dpiSubscrMessageQuery::operation"
2813    );
2814    assert_eq!(
2815        unsafe { ::std::ptr::addr_of!((*ptr).tables) as usize - ptr as usize },
2816        16usize,
2817        "Offset of field: dpiSubscrMessageQuery::tables"
2818    );
2819    assert_eq!(
2820        unsafe { ::std::ptr::addr_of!((*ptr).numTables) as usize - ptr as usize },
2821        24usize,
2822        "Offset of field: dpiSubscrMessageQuery::numTables"
2823    );
2824}
2825impl Default for dpiSubscrMessageQuery {
2826    fn default() -> Self {
2827        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2828        unsafe {
2829            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2830            s.assume_init()
2831        }
2832    }
2833}
2834#[repr(C)]
2835#[derive(Debug, Copy, Clone)]
2836pub struct dpiSubscrMessageRow {
2837    pub operation: dpiOpCode,
2838    pub rowid: *const ::std::os::raw::c_char,
2839    pub rowidLength: u32,
2840}
2841#[test]
2842fn bindgen_test_layout_dpiSubscrMessageRow() {
2843    const UNINIT: ::std::mem::MaybeUninit<dpiSubscrMessageRow> = ::std::mem::MaybeUninit::uninit();
2844    let ptr = UNINIT.as_ptr();
2845    assert_eq!(
2846        ::std::mem::size_of::<dpiSubscrMessageRow>(),
2847        24usize,
2848        "Size of dpiSubscrMessageRow"
2849    );
2850    assert_eq!(
2851        ::std::mem::align_of::<dpiSubscrMessageRow>(),
2852        8usize,
2853        "Alignment of dpiSubscrMessageRow"
2854    );
2855    assert_eq!(
2856        unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize },
2857        0usize,
2858        "Offset of field: dpiSubscrMessageRow::operation"
2859    );
2860    assert_eq!(
2861        unsafe { ::std::ptr::addr_of!((*ptr).rowid) as usize - ptr as usize },
2862        8usize,
2863        "Offset of field: dpiSubscrMessageRow::rowid"
2864    );
2865    assert_eq!(
2866        unsafe { ::std::ptr::addr_of!((*ptr).rowidLength) as usize - ptr as usize },
2867        16usize,
2868        "Offset of field: dpiSubscrMessageRow::rowidLength"
2869    );
2870}
2871impl Default for dpiSubscrMessageRow {
2872    fn default() -> Self {
2873        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2874        unsafe {
2875            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2876            s.assume_init()
2877        }
2878    }
2879}
2880#[repr(C)]
2881#[derive(Debug, Copy, Clone)]
2882pub struct dpiSubscrMessageTable {
2883    pub operation: dpiOpCode,
2884    pub name: *const ::std::os::raw::c_char,
2885    pub nameLength: u32,
2886    pub rows: *mut dpiSubscrMessageRow,
2887    pub numRows: u32,
2888}
2889#[test]
2890fn bindgen_test_layout_dpiSubscrMessageTable() {
2891    const UNINIT: ::std::mem::MaybeUninit<dpiSubscrMessageTable> =
2892        ::std::mem::MaybeUninit::uninit();
2893    let ptr = UNINIT.as_ptr();
2894    assert_eq!(
2895        ::std::mem::size_of::<dpiSubscrMessageTable>(),
2896        40usize,
2897        "Size of dpiSubscrMessageTable"
2898    );
2899    assert_eq!(
2900        ::std::mem::align_of::<dpiSubscrMessageTable>(),
2901        8usize,
2902        "Alignment of dpiSubscrMessageTable"
2903    );
2904    assert_eq!(
2905        unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize },
2906        0usize,
2907        "Offset of field: dpiSubscrMessageTable::operation"
2908    );
2909    assert_eq!(
2910        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
2911        8usize,
2912        "Offset of field: dpiSubscrMessageTable::name"
2913    );
2914    assert_eq!(
2915        unsafe { ::std::ptr::addr_of!((*ptr).nameLength) as usize - ptr as usize },
2916        16usize,
2917        "Offset of field: dpiSubscrMessageTable::nameLength"
2918    );
2919    assert_eq!(
2920        unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize },
2921        24usize,
2922        "Offset of field: dpiSubscrMessageTable::rows"
2923    );
2924    assert_eq!(
2925        unsafe { ::std::ptr::addr_of!((*ptr).numRows) as usize - ptr as usize },
2926        32usize,
2927        "Offset of field: dpiSubscrMessageTable::numRows"
2928    );
2929}
2930impl Default for dpiSubscrMessageTable {
2931    fn default() -> Self {
2932        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2933        unsafe {
2934            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2935            s.assume_init()
2936        }
2937    }
2938}
2939#[repr(C)]
2940#[derive(Debug, Default, Copy, Clone)]
2941pub struct dpiVersionInfo {
2942    pub versionNum: ::std::os::raw::c_int,
2943    pub releaseNum: ::std::os::raw::c_int,
2944    pub updateNum: ::std::os::raw::c_int,
2945    pub portReleaseNum: ::std::os::raw::c_int,
2946    pub portUpdateNum: ::std::os::raw::c_int,
2947    pub fullVersionNum: u32,
2948}
2949#[test]
2950fn bindgen_test_layout_dpiVersionInfo() {
2951    const UNINIT: ::std::mem::MaybeUninit<dpiVersionInfo> = ::std::mem::MaybeUninit::uninit();
2952    let ptr = UNINIT.as_ptr();
2953    assert_eq!(
2954        ::std::mem::size_of::<dpiVersionInfo>(),
2955        24usize,
2956        "Size of dpiVersionInfo"
2957    );
2958    assert_eq!(
2959        ::std::mem::align_of::<dpiVersionInfo>(),
2960        4usize,
2961        "Alignment of dpiVersionInfo"
2962    );
2963    assert_eq!(
2964        unsafe { ::std::ptr::addr_of!((*ptr).versionNum) as usize - ptr as usize },
2965        0usize,
2966        "Offset of field: dpiVersionInfo::versionNum"
2967    );
2968    assert_eq!(
2969        unsafe { ::std::ptr::addr_of!((*ptr).releaseNum) as usize - ptr as usize },
2970        4usize,
2971        "Offset of field: dpiVersionInfo::releaseNum"
2972    );
2973    assert_eq!(
2974        unsafe { ::std::ptr::addr_of!((*ptr).updateNum) as usize - ptr as usize },
2975        8usize,
2976        "Offset of field: dpiVersionInfo::updateNum"
2977    );
2978    assert_eq!(
2979        unsafe { ::std::ptr::addr_of!((*ptr).portReleaseNum) as usize - ptr as usize },
2980        12usize,
2981        "Offset of field: dpiVersionInfo::portReleaseNum"
2982    );
2983    assert_eq!(
2984        unsafe { ::std::ptr::addr_of!((*ptr).portUpdateNum) as usize - ptr as usize },
2985        16usize,
2986        "Offset of field: dpiVersionInfo::portUpdateNum"
2987    );
2988    assert_eq!(
2989        unsafe { ::std::ptr::addr_of!((*ptr).fullVersionNum) as usize - ptr as usize },
2990        20usize,
2991        "Offset of field: dpiVersionInfo::fullVersionNum"
2992    );
2993}
2994#[repr(C)]
2995#[derive(Copy, Clone)]
2996pub union dpiVectorDimensionBuffer {
2997    pub asPtr: *mut ::std::os::raw::c_void,
2998    pub asInt8: *mut i8,
2999    pub asFloat: *mut f32,
3000    pub asDouble: *mut f64,
3001}
3002#[test]
3003fn bindgen_test_layout_dpiVectorDimensionBuffer() {
3004    const UNINIT: ::std::mem::MaybeUninit<dpiVectorDimensionBuffer> =
3005        ::std::mem::MaybeUninit::uninit();
3006    let ptr = UNINIT.as_ptr();
3007    assert_eq!(
3008        ::std::mem::size_of::<dpiVectorDimensionBuffer>(),
3009        8usize,
3010        "Size of dpiVectorDimensionBuffer"
3011    );
3012    assert_eq!(
3013        ::std::mem::align_of::<dpiVectorDimensionBuffer>(),
3014        8usize,
3015        "Alignment of dpiVectorDimensionBuffer"
3016    );
3017    assert_eq!(
3018        unsafe { ::std::ptr::addr_of!((*ptr).asPtr) as usize - ptr as usize },
3019        0usize,
3020        "Offset of field: dpiVectorDimensionBuffer::asPtr"
3021    );
3022    assert_eq!(
3023        unsafe { ::std::ptr::addr_of!((*ptr).asInt8) as usize - ptr as usize },
3024        0usize,
3025        "Offset of field: dpiVectorDimensionBuffer::asInt8"
3026    );
3027    assert_eq!(
3028        unsafe { ::std::ptr::addr_of!((*ptr).asFloat) as usize - ptr as usize },
3029        0usize,
3030        "Offset of field: dpiVectorDimensionBuffer::asFloat"
3031    );
3032    assert_eq!(
3033        unsafe { ::std::ptr::addr_of!((*ptr).asDouble) as usize - ptr as usize },
3034        0usize,
3035        "Offset of field: dpiVectorDimensionBuffer::asDouble"
3036    );
3037}
3038impl Default for dpiVectorDimensionBuffer {
3039    fn default() -> Self {
3040        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3041        unsafe {
3042            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3043            s.assume_init()
3044        }
3045    }
3046}
3047#[repr(C)]
3048#[derive(Copy, Clone)]
3049pub struct dpiVectorInfo {
3050    pub format: u8,
3051    pub numDimensions: u32,
3052    pub dimensionSize: u8,
3053    pub dimensions: dpiVectorDimensionBuffer,
3054}
3055#[test]
3056fn bindgen_test_layout_dpiVectorInfo() {
3057    const UNINIT: ::std::mem::MaybeUninit<dpiVectorInfo> = ::std::mem::MaybeUninit::uninit();
3058    let ptr = UNINIT.as_ptr();
3059    assert_eq!(
3060        ::std::mem::size_of::<dpiVectorInfo>(),
3061        24usize,
3062        "Size of dpiVectorInfo"
3063    );
3064    assert_eq!(
3065        ::std::mem::align_of::<dpiVectorInfo>(),
3066        8usize,
3067        "Alignment of dpiVectorInfo"
3068    );
3069    assert_eq!(
3070        unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize },
3071        0usize,
3072        "Offset of field: dpiVectorInfo::format"
3073    );
3074    assert_eq!(
3075        unsafe { ::std::ptr::addr_of!((*ptr).numDimensions) as usize - ptr as usize },
3076        4usize,
3077        "Offset of field: dpiVectorInfo::numDimensions"
3078    );
3079    assert_eq!(
3080        unsafe { ::std::ptr::addr_of!((*ptr).dimensionSize) as usize - ptr as usize },
3081        8usize,
3082        "Offset of field: dpiVectorInfo::dimensionSize"
3083    );
3084    assert_eq!(
3085        unsafe { ::std::ptr::addr_of!((*ptr).dimensions) as usize - ptr as usize },
3086        16usize,
3087        "Offset of field: dpiVectorInfo::dimensions"
3088    );
3089}
3090impl Default for dpiVectorInfo {
3091    fn default() -> Self {
3092        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3093        unsafe {
3094            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3095            s.assume_init()
3096        }
3097    }
3098}
3099#[repr(C)]
3100#[derive(Debug, Copy, Clone)]
3101pub struct dpiXid {
3102    pub formatId: ::std::os::raw::c_long,
3103    pub globalTransactionId: *const ::std::os::raw::c_char,
3104    pub globalTransactionIdLength: u32,
3105    pub branchQualifier: *const ::std::os::raw::c_char,
3106    pub branchQualifierLength: u32,
3107}
3108#[test]
3109fn bindgen_test_layout_dpiXid() {
3110    const UNINIT: ::std::mem::MaybeUninit<dpiXid> = ::std::mem::MaybeUninit::uninit();
3111    let ptr = UNINIT.as_ptr();
3112    assert_eq!(::std::mem::size_of::<dpiXid>(), 40usize, "Size of dpiXid");
3113    assert_eq!(
3114        ::std::mem::align_of::<dpiXid>(),
3115        8usize,
3116        "Alignment of dpiXid"
3117    );
3118    assert_eq!(
3119        unsafe { ::std::ptr::addr_of!((*ptr).formatId) as usize - ptr as usize },
3120        0usize,
3121        "Offset of field: dpiXid::formatId"
3122    );
3123    assert_eq!(
3124        unsafe { ::std::ptr::addr_of!((*ptr).globalTransactionId) as usize - ptr as usize },
3125        8usize,
3126        "Offset of field: dpiXid::globalTransactionId"
3127    );
3128    assert_eq!(
3129        unsafe { ::std::ptr::addr_of!((*ptr).globalTransactionIdLength) as usize - ptr as usize },
3130        16usize,
3131        "Offset of field: dpiXid::globalTransactionIdLength"
3132    );
3133    assert_eq!(
3134        unsafe { ::std::ptr::addr_of!((*ptr).branchQualifier) as usize - ptr as usize },
3135        24usize,
3136        "Offset of field: dpiXid::branchQualifier"
3137    );
3138    assert_eq!(
3139        unsafe { ::std::ptr::addr_of!((*ptr).branchQualifierLength) as usize - ptr as usize },
3140        32usize,
3141        "Offset of field: dpiXid::branchQualifierLength"
3142    );
3143}
3144impl Default for dpiXid {
3145    fn default() -> Self {
3146        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3147        unsafe {
3148            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3149            s.assume_init()
3150        }
3151    }
3152}
3153extern "C" {
3154    pub fn dpiContext_createWithParams(
3155        majorVersion: ::std::os::raw::c_uint,
3156        minorVersion: ::std::os::raw::c_uint,
3157        params: *mut dpiContextCreateParams,
3158        context: *mut *mut dpiContext,
3159        errorInfo: *mut dpiErrorInfo,
3160    ) -> ::std::os::raw::c_int;
3161}
3162extern "C" {
3163    pub fn dpiContext_destroy(context: *mut dpiContext) -> ::std::os::raw::c_int;
3164}
3165extern "C" {
3166    pub fn dpiContext_freeStringList(
3167        context: *mut dpiContext,
3168        list: *mut dpiStringList,
3169    ) -> ::std::os::raw::c_int;
3170}
3171extern "C" {
3172    pub fn dpiContext_getClientVersion(
3173        context: *const dpiContext,
3174        versionInfo: *mut dpiVersionInfo,
3175    ) -> ::std::os::raw::c_int;
3176}
3177extern "C" {
3178    pub fn dpiContext_getError(context: *const dpiContext, errorInfo: *mut dpiErrorInfo);
3179}
3180extern "C" {
3181    pub fn dpiContext_initCommonCreateParams(
3182        context: *const dpiContext,
3183        params: *mut dpiCommonCreateParams,
3184    ) -> ::std::os::raw::c_int;
3185}
3186extern "C" {
3187    pub fn dpiContext_initConnCreateParams(
3188        context: *const dpiContext,
3189        params: *mut dpiConnCreateParams,
3190    ) -> ::std::os::raw::c_int;
3191}
3192extern "C" {
3193    pub fn dpiContext_initPoolCreateParams(
3194        context: *const dpiContext,
3195        params: *mut dpiPoolCreateParams,
3196    ) -> ::std::os::raw::c_int;
3197}
3198extern "C" {
3199    pub fn dpiContext_initSodaOperOptions(
3200        context: *const dpiContext,
3201        options: *mut dpiSodaOperOptions,
3202    ) -> ::std::os::raw::c_int;
3203}
3204extern "C" {
3205    pub fn dpiContext_initSubscrCreateParams(
3206        context: *const dpiContext,
3207        params: *mut dpiSubscrCreateParams,
3208    ) -> ::std::os::raw::c_int;
3209}
3210extern "C" {
3211    pub fn dpiConn_addRef(conn: *mut dpiConn) -> ::std::os::raw::c_int;
3212}
3213extern "C" {
3214    pub fn dpiConn_getCallTimeout(conn: *mut dpiConn, value: *mut u32) -> ::std::os::raw::c_int;
3215}
3216extern "C" {
3217    pub fn dpiConn_getCurrentSchema(
3218        conn: *mut dpiConn,
3219        value: *mut *const ::std::os::raw::c_char,
3220        valueLength: *mut u32,
3221    ) -> ::std::os::raw::c_int;
3222}
3223extern "C" {
3224    pub fn dpiConn_getDbDomain(
3225        conn: *mut dpiConn,
3226        value: *mut *const ::std::os::raw::c_char,
3227        valueLength: *mut u32,
3228    ) -> ::std::os::raw::c_int;
3229}
3230extern "C" {
3231    pub fn dpiConn_getDbName(
3232        conn: *mut dpiConn,
3233        value: *mut *const ::std::os::raw::c_char,
3234        valueLength: *mut u32,
3235    ) -> ::std::os::raw::c_int;
3236}
3237extern "C" {
3238    pub fn dpiConn_getEdition(
3239        conn: *mut dpiConn,
3240        value: *mut *const ::std::os::raw::c_char,
3241        valueLength: *mut u32,
3242    ) -> ::std::os::raw::c_int;
3243}
3244extern "C" {
3245    pub fn dpiConn_getEncodingInfo(
3246        conn: *mut dpiConn,
3247        info: *mut dpiEncodingInfo,
3248    ) -> ::std::os::raw::c_int;
3249}
3250extern "C" {
3251    pub fn dpiConn_getExternalName(
3252        conn: *mut dpiConn,
3253        value: *mut *const ::std::os::raw::c_char,
3254        valueLength: *mut u32,
3255    ) -> ::std::os::raw::c_int;
3256}
3257extern "C" {
3258    pub fn dpiConn_getHandle(
3259        conn: *mut dpiConn,
3260        handle: *mut *mut ::std::os::raw::c_void,
3261    ) -> ::std::os::raw::c_int;
3262}
3263extern "C" {
3264    pub fn dpiConn_getInfo(conn: *mut dpiConn, info: *mut dpiConnInfo) -> ::std::os::raw::c_int;
3265}
3266extern "C" {
3267    pub fn dpiConn_getInstanceName(
3268        conn: *mut dpiConn,
3269        value: *mut *const ::std::os::raw::c_char,
3270        valueLength: *mut u32,
3271    ) -> ::std::os::raw::c_int;
3272}
3273extern "C" {
3274    pub fn dpiConn_getInternalName(
3275        conn: *mut dpiConn,
3276        value: *mut *const ::std::os::raw::c_char,
3277        valueLength: *mut u32,
3278    ) -> ::std::os::raw::c_int;
3279}
3280extern "C" {
3281    pub fn dpiConn_getIsHealthy(
3282        conn: *mut dpiConn,
3283        isHealthy: *mut ::std::os::raw::c_int,
3284    ) -> ::std::os::raw::c_int;
3285}
3286extern "C" {
3287    pub fn dpiConn_getLTXID(
3288        conn: *mut dpiConn,
3289        value: *mut *const ::std::os::raw::c_char,
3290        valueLength: *mut u32,
3291    ) -> ::std::os::raw::c_int;
3292}
3293extern "C" {
3294    pub fn dpiConn_getMaxOpenCursors(
3295        conn: *mut dpiConn,
3296        maxOpenCursors: *mut u32,
3297    ) -> ::std::os::raw::c_int;
3298}
3299extern "C" {
3300    pub fn dpiConn_getOciAttr(
3301        conn: *mut dpiConn,
3302        handleType: u32,
3303        attribute: u32,
3304        value: *mut dpiDataBuffer,
3305        valueLength: *mut u32,
3306    ) -> ::std::os::raw::c_int;
3307}
3308extern "C" {
3309    pub fn dpiConn_getServiceName(
3310        conn: *mut dpiConn,
3311        value: *mut *const ::std::os::raw::c_char,
3312        valueLength: *mut u32,
3313    ) -> ::std::os::raw::c_int;
3314}
3315extern "C" {
3316    pub fn dpiConn_getStmtCacheSize(
3317        conn: *mut dpiConn,
3318        cacheSize: *mut u32,
3319    ) -> ::std::os::raw::c_int;
3320}
3321extern "C" {
3322    pub fn dpiConn_getTransactionInProgress(
3323        conn: *mut dpiConn,
3324        txnInProgress: *mut ::std::os::raw::c_int,
3325    ) -> ::std::os::raw::c_int;
3326}
3327extern "C" {
3328    pub fn dpiConn_newDeqOptions(
3329        conn: *mut dpiConn,
3330        options: *mut *mut dpiDeqOptions,
3331    ) -> ::std::os::raw::c_int;
3332}
3333extern "C" {
3334    pub fn dpiConn_newEnqOptions(
3335        conn: *mut dpiConn,
3336        options: *mut *mut dpiEnqOptions,
3337    ) -> ::std::os::raw::c_int;
3338}
3339extern "C" {
3340    pub fn dpiConn_newJson(conn: *mut dpiConn, json: *mut *mut dpiJson) -> ::std::os::raw::c_int;
3341}
3342extern "C" {
3343    pub fn dpiConn_newJsonQueue(
3344        conn: *mut dpiConn,
3345        name: *const ::std::os::raw::c_char,
3346        nameLength: u32,
3347        queue: *mut *mut dpiQueue,
3348    ) -> ::std::os::raw::c_int;
3349}
3350extern "C" {
3351    pub fn dpiConn_newMsgProps(
3352        conn: *mut dpiConn,
3353        props: *mut *mut dpiMsgProps,
3354    ) -> ::std::os::raw::c_int;
3355}
3356extern "C" {
3357    pub fn dpiConn_newQueue(
3358        conn: *mut dpiConn,
3359        name: *const ::std::os::raw::c_char,
3360        nameLength: u32,
3361        payloadType: *mut dpiObjectType,
3362        queue: *mut *mut dpiQueue,
3363    ) -> ::std::os::raw::c_int;
3364}
3365extern "C" {
3366    pub fn dpiConn_newVar(
3367        conn: *mut dpiConn,
3368        oracleTypeNum: dpiOracleTypeNum,
3369        nativeTypeNum: dpiNativeTypeNum,
3370        maxArraySize: u32,
3371        size: u32,
3372        sizeIsBytes: ::std::os::raw::c_int,
3373        isArray: ::std::os::raw::c_int,
3374        objType: *mut dpiObjectType,
3375        var: *mut *mut dpiVar,
3376        data: *mut *mut dpiData,
3377    ) -> ::std::os::raw::c_int;
3378}
3379extern "C" {
3380    pub fn dpiConn_newVector(
3381        conn: *mut dpiConn,
3382        info: *mut dpiVectorInfo,
3383        vector: *mut *mut dpiVector,
3384    ) -> ::std::os::raw::c_int;
3385}
3386extern "C" {
3387    pub fn dpiConn_prepareStmt(
3388        conn: *mut dpiConn,
3389        scrollable: ::std::os::raw::c_int,
3390        sql: *const ::std::os::raw::c_char,
3391        sqlLength: u32,
3392        tag: *const ::std::os::raw::c_char,
3393        tagLength: u32,
3394        stmt: *mut *mut dpiStmt,
3395    ) -> ::std::os::raw::c_int;
3396}
3397extern "C" {
3398    pub fn dpiConn_setAction(
3399        conn: *mut dpiConn,
3400        value: *const ::std::os::raw::c_char,
3401        valueLength: u32,
3402    ) -> ::std::os::raw::c_int;
3403}
3404extern "C" {
3405    pub fn dpiConn_setCallTimeout(conn: *mut dpiConn, value: u32) -> ::std::os::raw::c_int;
3406}
3407extern "C" {
3408    pub fn dpiConn_setClientIdentifier(
3409        conn: *mut dpiConn,
3410        value: *const ::std::os::raw::c_char,
3411        valueLength: u32,
3412    ) -> ::std::os::raw::c_int;
3413}
3414extern "C" {
3415    pub fn dpiConn_setClientInfo(
3416        conn: *mut dpiConn,
3417        value: *const ::std::os::raw::c_char,
3418        valueLength: u32,
3419    ) -> ::std::os::raw::c_int;
3420}
3421extern "C" {
3422    pub fn dpiConn_setCurrentSchema(
3423        conn: *mut dpiConn,
3424        value: *const ::std::os::raw::c_char,
3425        valueLength: u32,
3426    ) -> ::std::os::raw::c_int;
3427}
3428extern "C" {
3429    pub fn dpiConn_setDbOp(
3430        conn: *mut dpiConn,
3431        value: *const ::std::os::raw::c_char,
3432        valueLength: u32,
3433    ) -> ::std::os::raw::c_int;
3434}
3435extern "C" {
3436    pub fn dpiConn_setEcontextId(
3437        conn: *mut dpiConn,
3438        value: *const ::std::os::raw::c_char,
3439        valueLength: u32,
3440    ) -> ::std::os::raw::c_int;
3441}
3442extern "C" {
3443    pub fn dpiConn_setExternalName(
3444        conn: *mut dpiConn,
3445        value: *const ::std::os::raw::c_char,
3446        valueLength: u32,
3447    ) -> ::std::os::raw::c_int;
3448}
3449extern "C" {
3450    pub fn dpiConn_setInternalName(
3451        conn: *mut dpiConn,
3452        value: *const ::std::os::raw::c_char,
3453        valueLength: u32,
3454    ) -> ::std::os::raw::c_int;
3455}
3456extern "C" {
3457    pub fn dpiConn_setModule(
3458        conn: *mut dpiConn,
3459        value: *const ::std::os::raw::c_char,
3460        valueLength: u32,
3461    ) -> ::std::os::raw::c_int;
3462}
3463extern "C" {
3464    pub fn dpiConn_setOciAttr(
3465        conn: *mut dpiConn,
3466        handleType: u32,
3467        attribute: u32,
3468        value: *mut ::std::os::raw::c_void,
3469        valueLength: u32,
3470    ) -> ::std::os::raw::c_int;
3471}
3472extern "C" {
3473    pub fn dpiConn_setStmtCacheSize(conn: *mut dpiConn, cacheSize: u32) -> ::std::os::raw::c_int;
3474}
3475extern "C" {
3476    pub fn dpiData_getBool(data: *mut dpiData) -> ::std::os::raw::c_int;
3477}
3478extern "C" {
3479    pub fn dpiData_getBytes(data: *mut dpiData) -> *mut dpiBytes;
3480}
3481extern "C" {
3482    pub fn dpiData_getDouble(data: *mut dpiData) -> f64;
3483}
3484extern "C" {
3485    pub fn dpiData_getFloat(data: *mut dpiData) -> f32;
3486}
3487extern "C" {
3488    pub fn dpiData_getInt64(data: *mut dpiData) -> i64;
3489}
3490extern "C" {
3491    pub fn dpiData_getIntervalDS(data: *mut dpiData) -> *mut dpiIntervalDS;
3492}
3493extern "C" {
3494    pub fn dpiData_getIntervalYM(data: *mut dpiData) -> *mut dpiIntervalYM;
3495}
3496extern "C" {
3497    pub fn dpiData_getIsNull(data: *mut dpiData) -> ::std::os::raw::c_int;
3498}
3499extern "C" {
3500    pub fn dpiData_getJson(data: *mut dpiData) -> *mut dpiJson;
3501}
3502extern "C" {
3503    pub fn dpiData_getJsonArray(data: *mut dpiData) -> *mut dpiJsonArray;
3504}
3505extern "C" {
3506    pub fn dpiData_getJsonObject(data: *mut dpiData) -> *mut dpiJsonObject;
3507}
3508extern "C" {
3509    pub fn dpiData_getLOB(data: *mut dpiData) -> *mut dpiLob;
3510}
3511extern "C" {
3512    pub fn dpiData_getObject(data: *mut dpiData) -> *mut dpiObject;
3513}
3514extern "C" {
3515    pub fn dpiData_getStmt(data: *mut dpiData) -> *mut dpiStmt;
3516}
3517extern "C" {
3518    pub fn dpiData_getTimestamp(data: *mut dpiData) -> *mut dpiTimestamp;
3519}
3520extern "C" {
3521    pub fn dpiData_getUint64(data: *mut dpiData) -> u64;
3522}
3523extern "C" {
3524    pub fn dpiData_setBool(data: *mut dpiData, value: ::std::os::raw::c_int);
3525}
3526extern "C" {
3527    pub fn dpiData_setBytes(data: *mut dpiData, ptr: *mut ::std::os::raw::c_char, length: u32);
3528}
3529extern "C" {
3530    pub fn dpiData_setDouble(data: *mut dpiData, value: f64);
3531}
3532extern "C" {
3533    pub fn dpiData_setFloat(data: *mut dpiData, value: f32);
3534}
3535extern "C" {
3536    pub fn dpiData_setInt64(data: *mut dpiData, value: i64);
3537}
3538extern "C" {
3539    pub fn dpiData_setIntervalDS(
3540        data: *mut dpiData,
3541        days: i32,
3542        hours: i32,
3543        minutes: i32,
3544        seconds: i32,
3545        fseconds: i32,
3546    );
3547}
3548extern "C" {
3549    pub fn dpiData_setIntervalYM(data: *mut dpiData, years: i32, months: i32);
3550}
3551extern "C" {
3552    pub fn dpiData_setLOB(data: *mut dpiData, lob: *mut dpiLob);
3553}
3554extern "C" {
3555    pub fn dpiData_setNull(data: *mut dpiData);
3556}
3557extern "C" {
3558    pub fn dpiData_setObject(data: *mut dpiData, obj: *mut dpiObject);
3559}
3560extern "C" {
3561    pub fn dpiData_setStmt(data: *mut dpiData, stmt: *mut dpiStmt);
3562}
3563extern "C" {
3564    pub fn dpiData_setTimestamp(
3565        data: *mut dpiData,
3566        year: i16,
3567        month: u8,
3568        day: u8,
3569        hour: u8,
3570        minute: u8,
3571        second: u8,
3572        fsecond: u32,
3573        tzHourOffset: i8,
3574        tzMinuteOffset: i8,
3575    );
3576}
3577extern "C" {
3578    pub fn dpiData_setUint64(data: *mut dpiData, value: u64);
3579}
3580extern "C" {
3581    pub fn dpiDeqOptions_addRef(options: *mut dpiDeqOptions) -> ::std::os::raw::c_int;
3582}
3583extern "C" {
3584    pub fn dpiDeqOptions_getCondition(
3585        options: *mut dpiDeqOptions,
3586        value: *mut *const ::std::os::raw::c_char,
3587        valueLength: *mut u32,
3588    ) -> ::std::os::raw::c_int;
3589}
3590extern "C" {
3591    pub fn dpiDeqOptions_getConsumerName(
3592        options: *mut dpiDeqOptions,
3593        value: *mut *const ::std::os::raw::c_char,
3594        valueLength: *mut u32,
3595    ) -> ::std::os::raw::c_int;
3596}
3597extern "C" {
3598    pub fn dpiDeqOptions_getCorrelation(
3599        options: *mut dpiDeqOptions,
3600        value: *mut *const ::std::os::raw::c_char,
3601        valueLength: *mut u32,
3602    ) -> ::std::os::raw::c_int;
3603}
3604extern "C" {
3605    pub fn dpiDeqOptions_getMode(
3606        options: *mut dpiDeqOptions,
3607        value: *mut dpiDeqMode,
3608    ) -> ::std::os::raw::c_int;
3609}
3610extern "C" {
3611    pub fn dpiDeqOptions_getMsgId(
3612        options: *mut dpiDeqOptions,
3613        value: *mut *const ::std::os::raw::c_char,
3614        valueLength: *mut u32,
3615    ) -> ::std::os::raw::c_int;
3616}
3617extern "C" {
3618    pub fn dpiDeqOptions_getNavigation(
3619        options: *mut dpiDeqOptions,
3620        value: *mut dpiDeqNavigation,
3621    ) -> ::std::os::raw::c_int;
3622}
3623extern "C" {
3624    pub fn dpiDeqOptions_getTransformation(
3625        options: *mut dpiDeqOptions,
3626        value: *mut *const ::std::os::raw::c_char,
3627        valueLength: *mut u32,
3628    ) -> ::std::os::raw::c_int;
3629}
3630extern "C" {
3631    pub fn dpiDeqOptions_getVisibility(
3632        options: *mut dpiDeqOptions,
3633        value: *mut dpiVisibility,
3634    ) -> ::std::os::raw::c_int;
3635}
3636extern "C" {
3637    pub fn dpiDeqOptions_getWait(
3638        options: *mut dpiDeqOptions,
3639        value: *mut u32,
3640    ) -> ::std::os::raw::c_int;
3641}
3642extern "C" {
3643    pub fn dpiDeqOptions_setCondition(
3644        options: *mut dpiDeqOptions,
3645        value: *const ::std::os::raw::c_char,
3646        valueLength: u32,
3647    ) -> ::std::os::raw::c_int;
3648}
3649extern "C" {
3650    pub fn dpiDeqOptions_setConsumerName(
3651        options: *mut dpiDeqOptions,
3652        value: *const ::std::os::raw::c_char,
3653        valueLength: u32,
3654    ) -> ::std::os::raw::c_int;
3655}
3656extern "C" {
3657    pub fn dpiDeqOptions_setCorrelation(
3658        options: *mut dpiDeqOptions,
3659        value: *const ::std::os::raw::c_char,
3660        valueLength: u32,
3661    ) -> ::std::os::raw::c_int;
3662}
3663extern "C" {
3664    pub fn dpiDeqOptions_setDeliveryMode(
3665        options: *mut dpiDeqOptions,
3666        value: dpiMessageDeliveryMode,
3667    ) -> ::std::os::raw::c_int;
3668}
3669extern "C" {
3670    pub fn dpiDeqOptions_setMode(
3671        options: *mut dpiDeqOptions,
3672        value: dpiDeqMode,
3673    ) -> ::std::os::raw::c_int;
3674}
3675extern "C" {
3676    pub fn dpiDeqOptions_setMsgId(
3677        options: *mut dpiDeqOptions,
3678        value: *const ::std::os::raw::c_char,
3679        valueLength: u32,
3680    ) -> ::std::os::raw::c_int;
3681}
3682extern "C" {
3683    pub fn dpiDeqOptions_setNavigation(
3684        options: *mut dpiDeqOptions,
3685        value: dpiDeqNavigation,
3686    ) -> ::std::os::raw::c_int;
3687}
3688extern "C" {
3689    pub fn dpiDeqOptions_setTransformation(
3690        options: *mut dpiDeqOptions,
3691        value: *const ::std::os::raw::c_char,
3692        valueLength: u32,
3693    ) -> ::std::os::raw::c_int;
3694}
3695extern "C" {
3696    pub fn dpiDeqOptions_setVisibility(
3697        options: *mut dpiDeqOptions,
3698        value: dpiVisibility,
3699    ) -> ::std::os::raw::c_int;
3700}
3701extern "C" {
3702    pub fn dpiDeqOptions_setWait(options: *mut dpiDeqOptions, value: u32) -> ::std::os::raw::c_int;
3703}
3704extern "C" {
3705    pub fn dpiEnqOptions_addRef(options: *mut dpiEnqOptions) -> ::std::os::raw::c_int;
3706}
3707extern "C" {
3708    pub fn dpiEnqOptions_getTransformation(
3709        options: *mut dpiEnqOptions,
3710        value: *mut *const ::std::os::raw::c_char,
3711        valueLength: *mut u32,
3712    ) -> ::std::os::raw::c_int;
3713}
3714extern "C" {
3715    pub fn dpiEnqOptions_getVisibility(
3716        options: *mut dpiEnqOptions,
3717        value: *mut dpiVisibility,
3718    ) -> ::std::os::raw::c_int;
3719}
3720extern "C" {
3721    pub fn dpiEnqOptions_setDeliveryMode(
3722        options: *mut dpiEnqOptions,
3723        value: dpiMessageDeliveryMode,
3724    ) -> ::std::os::raw::c_int;
3725}
3726extern "C" {
3727    pub fn dpiEnqOptions_setTransformation(
3728        options: *mut dpiEnqOptions,
3729        value: *const ::std::os::raw::c_char,
3730        valueLength: u32,
3731    ) -> ::std::os::raw::c_int;
3732}
3733extern "C" {
3734    pub fn dpiEnqOptions_setVisibility(
3735        options: *mut dpiEnqOptions,
3736        value: dpiVisibility,
3737    ) -> ::std::os::raw::c_int;
3738}
3739extern "C" {
3740    pub fn dpiJson_addRef(json: *mut dpiJson) -> ::std::os::raw::c_int;
3741}
3742extern "C" {
3743    pub fn dpiJson_setFromText(
3744        json: *mut dpiJson,
3745        value: *const ::std::os::raw::c_char,
3746        valueLength: u64,
3747        flags: u32,
3748    ) -> ::std::os::raw::c_int;
3749}
3750extern "C" {
3751    pub fn dpiJson_setValue(json: *mut dpiJson, topNode: *mut dpiJsonNode)
3752        -> ::std::os::raw::c_int;
3753}
3754extern "C" {
3755    pub fn dpiLob_addRef(lob: *mut dpiLob) -> ::std::os::raw::c_int;
3756}
3757extern "C" {
3758    pub fn dpiLob_getBufferSize(
3759        lob: *mut dpiLob,
3760        sizeInChars: u64,
3761        sizeInBytes: *mut u64,
3762    ) -> ::std::os::raw::c_int;
3763}
3764extern "C" {
3765    pub fn dpiLob_getDirectoryAndFileName(
3766        lob: *mut dpiLob,
3767        directoryAlias: *mut *const ::std::os::raw::c_char,
3768        directoryAliasLength: *mut u32,
3769        fileName: *mut *const ::std::os::raw::c_char,
3770        fileNameLength: *mut u32,
3771    ) -> ::std::os::raw::c_int;
3772}
3773extern "C" {
3774    pub fn dpiLob_getType(lob: *mut dpiLob, type_: *mut dpiOracleTypeNum) -> ::std::os::raw::c_int;
3775}
3776extern "C" {
3777    pub fn dpiLob_setDirectoryAndFileName(
3778        lob: *mut dpiLob,
3779        directoryAlias: *const ::std::os::raw::c_char,
3780        directoryAliasLength: u32,
3781        fileName: *const ::std::os::raw::c_char,
3782        fileNameLength: u32,
3783    ) -> ::std::os::raw::c_int;
3784}
3785extern "C" {
3786    pub fn dpiMsgProps_addRef(props: *mut dpiMsgProps) -> ::std::os::raw::c_int;
3787}
3788extern "C" {
3789    pub fn dpiMsgProps_getNumAttempts(
3790        props: *mut dpiMsgProps,
3791        value: *mut i32,
3792    ) -> ::std::os::raw::c_int;
3793}
3794extern "C" {
3795    pub fn dpiMsgProps_getCorrelation(
3796        props: *mut dpiMsgProps,
3797        value: *mut *const ::std::os::raw::c_char,
3798        valueLength: *mut u32,
3799    ) -> ::std::os::raw::c_int;
3800}
3801extern "C" {
3802    pub fn dpiMsgProps_getDelay(props: *mut dpiMsgProps, value: *mut i32) -> ::std::os::raw::c_int;
3803}
3804extern "C" {
3805    pub fn dpiMsgProps_getDeliveryMode(
3806        props: *mut dpiMsgProps,
3807        value: *mut dpiMessageDeliveryMode,
3808    ) -> ::std::os::raw::c_int;
3809}
3810extern "C" {
3811    pub fn dpiMsgProps_getEnqTime(
3812        props: *mut dpiMsgProps,
3813        value: *mut dpiTimestamp,
3814    ) -> ::std::os::raw::c_int;
3815}
3816extern "C" {
3817    pub fn dpiMsgProps_getExceptionQ(
3818        props: *mut dpiMsgProps,
3819        value: *mut *const ::std::os::raw::c_char,
3820        valueLength: *mut u32,
3821    ) -> ::std::os::raw::c_int;
3822}
3823extern "C" {
3824    pub fn dpiMsgProps_getExpiration(
3825        props: *mut dpiMsgProps,
3826        value: *mut i32,
3827    ) -> ::std::os::raw::c_int;
3828}
3829extern "C" {
3830    pub fn dpiMsgProps_getMsgId(
3831        props: *mut dpiMsgProps,
3832        value: *mut *const ::std::os::raw::c_char,
3833        valueLength: *mut u32,
3834    ) -> ::std::os::raw::c_int;
3835}
3836extern "C" {
3837    pub fn dpiMsgProps_getOriginalMsgId(
3838        props: *mut dpiMsgProps,
3839        value: *mut *const ::std::os::raw::c_char,
3840        valueLength: *mut u32,
3841    ) -> ::std::os::raw::c_int;
3842}
3843extern "C" {
3844    pub fn dpiMsgProps_getPayload(
3845        props: *mut dpiMsgProps,
3846        obj: *mut *mut dpiObject,
3847        value: *mut *const ::std::os::raw::c_char,
3848        valueLength: *mut u32,
3849    ) -> ::std::os::raw::c_int;
3850}
3851extern "C" {
3852    pub fn dpiMsgProps_getPayloadJson(
3853        props: *mut dpiMsgProps,
3854        json: *mut *mut dpiJson,
3855    ) -> ::std::os::raw::c_int;
3856}
3857extern "C" {
3858    pub fn dpiMsgProps_getPriority(
3859        props: *mut dpiMsgProps,
3860        value: *mut i32,
3861    ) -> ::std::os::raw::c_int;
3862}
3863extern "C" {
3864    pub fn dpiMsgProps_getState(
3865        props: *mut dpiMsgProps,
3866        value: *mut dpiMessageState,
3867    ) -> ::std::os::raw::c_int;
3868}
3869extern "C" {
3870    pub fn dpiMsgProps_setCorrelation(
3871        props: *mut dpiMsgProps,
3872        value: *const ::std::os::raw::c_char,
3873        valueLength: u32,
3874    ) -> ::std::os::raw::c_int;
3875}
3876extern "C" {
3877    pub fn dpiMsgProps_setDelay(props: *mut dpiMsgProps, value: i32) -> ::std::os::raw::c_int;
3878}
3879extern "C" {
3880    pub fn dpiMsgProps_setExceptionQ(
3881        props: *mut dpiMsgProps,
3882        value: *const ::std::os::raw::c_char,
3883        valueLength: u32,
3884    ) -> ::std::os::raw::c_int;
3885}
3886extern "C" {
3887    pub fn dpiMsgProps_setExpiration(props: *mut dpiMsgProps, value: i32) -> ::std::os::raw::c_int;
3888}
3889extern "C" {
3890    pub fn dpiMsgProps_setOriginalMsgId(
3891        props: *mut dpiMsgProps,
3892        value: *const ::std::os::raw::c_char,
3893        valueLength: u32,
3894    ) -> ::std::os::raw::c_int;
3895}
3896extern "C" {
3897    pub fn dpiMsgProps_setPayloadBytes(
3898        props: *mut dpiMsgProps,
3899        value: *const ::std::os::raw::c_char,
3900        valueLength: u32,
3901    ) -> ::std::os::raw::c_int;
3902}
3903extern "C" {
3904    pub fn dpiMsgProps_setPayloadJson(
3905        props: *mut dpiMsgProps,
3906        json: *mut dpiJson,
3907    ) -> ::std::os::raw::c_int;
3908}
3909extern "C" {
3910    pub fn dpiMsgProps_setPayloadObject(
3911        props: *mut dpiMsgProps,
3912        obj: *mut dpiObject,
3913    ) -> ::std::os::raw::c_int;
3914}
3915extern "C" {
3916    pub fn dpiMsgProps_setPriority(props: *mut dpiMsgProps, value: i32) -> ::std::os::raw::c_int;
3917}
3918extern "C" {
3919    pub fn dpiMsgProps_setRecipients(
3920        props: *mut dpiMsgProps,
3921        recipients: *mut dpiMsgRecipient,
3922        numRecipients: u32,
3923    ) -> ::std::os::raw::c_int;
3924}
3925extern "C" {
3926    pub fn dpiObject_addRef(obj: *mut dpiObject) -> ::std::os::raw::c_int;
3927}
3928extern "C" {
3929    pub fn dpiObject_appendElement(
3930        obj: *mut dpiObject,
3931        nativeTypeNum: dpiNativeTypeNum,
3932        value: *mut dpiData,
3933    ) -> ::std::os::raw::c_int;
3934}
3935extern "C" {
3936    pub fn dpiObject_copy(
3937        obj: *mut dpiObject,
3938        copiedObj: *mut *mut dpiObject,
3939    ) -> ::std::os::raw::c_int;
3940}
3941extern "C" {
3942    pub fn dpiObject_deleteElementByIndex(obj: *mut dpiObject, index: i32)
3943        -> ::std::os::raw::c_int;
3944}
3945extern "C" {
3946    pub fn dpiObject_getAttributeValue(
3947        obj: *mut dpiObject,
3948        attr: *mut dpiObjectAttr,
3949        nativeTypeNum: dpiNativeTypeNum,
3950        value: *mut dpiData,
3951    ) -> ::std::os::raw::c_int;
3952}
3953extern "C" {
3954    pub fn dpiObject_getElementExistsByIndex(
3955        obj: *mut dpiObject,
3956        index: i32,
3957        exists: *mut ::std::os::raw::c_int,
3958    ) -> ::std::os::raw::c_int;
3959}
3960extern "C" {
3961    pub fn dpiObject_getElementValueByIndex(
3962        obj: *mut dpiObject,
3963        index: i32,
3964        nativeTypeNum: dpiNativeTypeNum,
3965        value: *mut dpiData,
3966    ) -> ::std::os::raw::c_int;
3967}
3968extern "C" {
3969    pub fn dpiObject_getFirstIndex(
3970        obj: *mut dpiObject,
3971        index: *mut i32,
3972        exists: *mut ::std::os::raw::c_int,
3973    ) -> ::std::os::raw::c_int;
3974}
3975extern "C" {
3976    pub fn dpiObject_getLastIndex(
3977        obj: *mut dpiObject,
3978        index: *mut i32,
3979        exists: *mut ::std::os::raw::c_int,
3980    ) -> ::std::os::raw::c_int;
3981}
3982extern "C" {
3983    pub fn dpiObject_getNextIndex(
3984        obj: *mut dpiObject,
3985        index: i32,
3986        nextIndex: *mut i32,
3987        exists: *mut ::std::os::raw::c_int,
3988    ) -> ::std::os::raw::c_int;
3989}
3990extern "C" {
3991    pub fn dpiObject_getPrevIndex(
3992        obj: *mut dpiObject,
3993        index: i32,
3994        prevIndex: *mut i32,
3995        exists: *mut ::std::os::raw::c_int,
3996    ) -> ::std::os::raw::c_int;
3997}
3998extern "C" {
3999    pub fn dpiObject_getSize(obj: *mut dpiObject, size: *mut i32) -> ::std::os::raw::c_int;
4000}
4001extern "C" {
4002    pub fn dpiObject_setAttributeValue(
4003        obj: *mut dpiObject,
4004        attr: *mut dpiObjectAttr,
4005        nativeTypeNum: dpiNativeTypeNum,
4006        value: *mut dpiData,
4007    ) -> ::std::os::raw::c_int;
4008}
4009extern "C" {
4010    pub fn dpiObject_setElementValueByIndex(
4011        obj: *mut dpiObject,
4012        index: i32,
4013        nativeTypeNum: dpiNativeTypeNum,
4014        value: *mut dpiData,
4015    ) -> ::std::os::raw::c_int;
4016}
4017extern "C" {
4018    pub fn dpiObject_trim(obj: *mut dpiObject, numToTrim: u32) -> ::std::os::raw::c_int;
4019}
4020extern "C" {
4021    pub fn dpiObjectAttr_addRef(attr: *mut dpiObjectAttr) -> ::std::os::raw::c_int;
4022}
4023extern "C" {
4024    pub fn dpiObjectAttr_getInfo(
4025        attr: *mut dpiObjectAttr,
4026        info: *mut dpiObjectAttrInfo,
4027    ) -> ::std::os::raw::c_int;
4028}
4029extern "C" {
4030    pub fn dpiObjectType_addRef(objType: *mut dpiObjectType) -> ::std::os::raw::c_int;
4031}
4032extern "C" {
4033    pub fn dpiObjectType_createObject(
4034        objType: *mut dpiObjectType,
4035        obj: *mut *mut dpiObject,
4036    ) -> ::std::os::raw::c_int;
4037}
4038extern "C" {
4039    pub fn dpiObjectType_getAttributes(
4040        objType: *mut dpiObjectType,
4041        numAttributes: u16,
4042        attributes: *mut *mut dpiObjectAttr,
4043    ) -> ::std::os::raw::c_int;
4044}
4045extern "C" {
4046    pub fn dpiObjectType_getInfo(
4047        objType: *mut dpiObjectType,
4048        info: *mut dpiObjectTypeInfo,
4049    ) -> ::std::os::raw::c_int;
4050}
4051extern "C" {
4052    pub fn dpiPool_addRef(pool: *mut dpiPool) -> ::std::os::raw::c_int;
4053}
4054extern "C" {
4055    pub fn dpiPool_getBusyCount(pool: *mut dpiPool, value: *mut u32) -> ::std::os::raw::c_int;
4056}
4057extern "C" {
4058    pub fn dpiPool_getEncodingInfo(
4059        pool: *mut dpiPool,
4060        info: *mut dpiEncodingInfo,
4061    ) -> ::std::os::raw::c_int;
4062}
4063extern "C" {
4064    pub fn dpiPool_getGetMode(
4065        pool: *mut dpiPool,
4066        value: *mut dpiPoolGetMode,
4067    ) -> ::std::os::raw::c_int;
4068}
4069extern "C" {
4070    pub fn dpiPool_getMaxLifetimeSession(
4071        pool: *mut dpiPool,
4072        value: *mut u32,
4073    ) -> ::std::os::raw::c_int;
4074}
4075extern "C" {
4076    pub fn dpiPool_getMaxSessionsPerShard(
4077        pool: *mut dpiPool,
4078        value: *mut u32,
4079    ) -> ::std::os::raw::c_int;
4080}
4081extern "C" {
4082    pub fn dpiPool_getOpenCount(pool: *mut dpiPool, value: *mut u32) -> ::std::os::raw::c_int;
4083}
4084extern "C" {
4085    pub fn dpiPool_getSodaMetadataCache(
4086        pool: *mut dpiPool,
4087        enabled: *mut ::std::os::raw::c_int,
4088    ) -> ::std::os::raw::c_int;
4089}
4090extern "C" {
4091    pub fn dpiPool_getStmtCacheSize(
4092        pool: *mut dpiPool,
4093        cacheSize: *mut u32,
4094    ) -> ::std::os::raw::c_int;
4095}
4096extern "C" {
4097    pub fn dpiPool_getTimeout(pool: *mut dpiPool, value: *mut u32) -> ::std::os::raw::c_int;
4098}
4099extern "C" {
4100    pub fn dpiPool_getWaitTimeout(pool: *mut dpiPool, value: *mut u32) -> ::std::os::raw::c_int;
4101}
4102extern "C" {
4103    pub fn dpiPool_getPingInterval(
4104        pool: *mut dpiPool,
4105        value: *mut ::std::os::raw::c_int,
4106    ) -> ::std::os::raw::c_int;
4107}
4108extern "C" {
4109    pub fn dpiPool_setAccessToken(
4110        pool: *mut dpiPool,
4111        params: *mut dpiAccessToken,
4112    ) -> ::std::os::raw::c_int;
4113}
4114extern "C" {
4115    pub fn dpiPool_setGetMode(pool: *mut dpiPool, value: dpiPoolGetMode) -> ::std::os::raw::c_int;
4116}
4117extern "C" {
4118    pub fn dpiPool_setMaxLifetimeSession(pool: *mut dpiPool, value: u32) -> ::std::os::raw::c_int;
4119}
4120extern "C" {
4121    pub fn dpiPool_setMaxSessionsPerShard(pool: *mut dpiPool, value: u32) -> ::std::os::raw::c_int;
4122}
4123extern "C" {
4124    pub fn dpiPool_setSodaMetadataCache(
4125        pool: *mut dpiPool,
4126        enabled: ::std::os::raw::c_int,
4127    ) -> ::std::os::raw::c_int;
4128}
4129extern "C" {
4130    pub fn dpiPool_setStmtCacheSize(pool: *mut dpiPool, cacheSize: u32) -> ::std::os::raw::c_int;
4131}
4132extern "C" {
4133    pub fn dpiPool_setTimeout(pool: *mut dpiPool, value: u32) -> ::std::os::raw::c_int;
4134}
4135extern "C" {
4136    pub fn dpiPool_setWaitTimeout(pool: *mut dpiPool, value: u32) -> ::std::os::raw::c_int;
4137}
4138extern "C" {
4139    pub fn dpiPool_setPingInterval(
4140        pool: *mut dpiPool,
4141        value: ::std::os::raw::c_int,
4142    ) -> ::std::os::raw::c_int;
4143}
4144extern "C" {
4145    pub fn dpiQueue_addRef(queue: *mut dpiQueue) -> ::std::os::raw::c_int;
4146}
4147extern "C" {
4148    pub fn dpiQueue_getDeqOptions(
4149        queue: *mut dpiQueue,
4150        options: *mut *mut dpiDeqOptions,
4151    ) -> ::std::os::raw::c_int;
4152}
4153extern "C" {
4154    pub fn dpiQueue_getEnqOptions(
4155        queue: *mut dpiQueue,
4156        options: *mut *mut dpiEnqOptions,
4157    ) -> ::std::os::raw::c_int;
4158}
4159extern "C" {
4160    pub fn dpiSodaColl_addRef(coll: *mut dpiSodaColl) -> ::std::os::raw::c_int;
4161}
4162extern "C" {
4163    pub fn dpiSodaColl_getMetadata(
4164        coll: *mut dpiSodaColl,
4165        value: *mut *const ::std::os::raw::c_char,
4166        valueLength: *mut u32,
4167    ) -> ::std::os::raw::c_int;
4168}
4169extern "C" {
4170    pub fn dpiSodaColl_getName(
4171        coll: *mut dpiSodaColl,
4172        value: *mut *const ::std::os::raw::c_char,
4173        valueLength: *mut u32,
4174    ) -> ::std::os::raw::c_int;
4175}
4176extern "C" {
4177    pub fn dpiSodaCollCursor_addRef(cursor: *mut dpiSodaCollCursor) -> ::std::os::raw::c_int;
4178}
4179extern "C" {
4180    pub fn dpiSodaCollCursor_close(cursor: *mut dpiSodaCollCursor) -> ::std::os::raw::c_int;
4181}
4182extern "C" {
4183    pub fn dpiSodaDb_addRef(db: *mut dpiSodaDb) -> ::std::os::raw::c_int;
4184}
4185extern "C" {
4186    pub fn dpiSodaDb_createDocument(
4187        db: *mut dpiSodaDb,
4188        key: *const ::std::os::raw::c_char,
4189        keyLength: u32,
4190        content: *const ::std::os::raw::c_char,
4191        contentLength: u32,
4192        mediaType: *const ::std::os::raw::c_char,
4193        mediaTypeLength: u32,
4194        flags: u32,
4195        doc: *mut *mut dpiSodaDoc,
4196    ) -> ::std::os::raw::c_int;
4197}
4198extern "C" {
4199    pub fn dpiSodaDb_createJsonDocument(
4200        db: *mut dpiSodaDb,
4201        key: *const ::std::os::raw::c_char,
4202        keyLength: u32,
4203        content: *const dpiJsonNode,
4204        flags: u32,
4205        doc: *mut *mut dpiSodaDoc,
4206    ) -> ::std::os::raw::c_int;
4207}
4208extern "C" {
4209    pub fn dpiSodaDb_freeCollectionNames(
4210        db: *mut dpiSodaDb,
4211        names: *mut dpiStringList,
4212    ) -> ::std::os::raw::c_int;
4213}
4214extern "C" {
4215    pub fn dpiSodaDoc_addRef(cursor: *mut dpiSodaDoc) -> ::std::os::raw::c_int;
4216}
4217extern "C" {
4218    pub fn dpiSodaDoc_getContent(
4219        doc: *mut dpiSodaDoc,
4220        value: *mut *const ::std::os::raw::c_char,
4221        valueLength: *mut u32,
4222        encoding: *mut *const ::std::os::raw::c_char,
4223    ) -> ::std::os::raw::c_int;
4224}
4225extern "C" {
4226    pub fn dpiSodaDoc_getCreatedOn(
4227        doc: *mut dpiSodaDoc,
4228        value: *mut *const ::std::os::raw::c_char,
4229        valueLength: *mut u32,
4230    ) -> ::std::os::raw::c_int;
4231}
4232extern "C" {
4233    pub fn dpiSodaDoc_getIsJson(
4234        doc: *mut dpiSodaDoc,
4235        isJson: *mut ::std::os::raw::c_int,
4236    ) -> ::std::os::raw::c_int;
4237}
4238extern "C" {
4239    pub fn dpiSodaDoc_getJsonContent(
4240        doc: *mut dpiSodaDoc,
4241        value: *mut *mut dpiJson,
4242    ) -> ::std::os::raw::c_int;
4243}
4244extern "C" {
4245    pub fn dpiSodaDoc_getKey(
4246        doc: *mut dpiSodaDoc,
4247        value: *mut *const ::std::os::raw::c_char,
4248        valueLength: *mut u32,
4249    ) -> ::std::os::raw::c_int;
4250}
4251extern "C" {
4252    pub fn dpiSodaDoc_getLastModified(
4253        doc: *mut dpiSodaDoc,
4254        value: *mut *const ::std::os::raw::c_char,
4255        valueLength: *mut u32,
4256    ) -> ::std::os::raw::c_int;
4257}
4258extern "C" {
4259    pub fn dpiSodaDoc_getMediaType(
4260        doc: *mut dpiSodaDoc,
4261        value: *mut *const ::std::os::raw::c_char,
4262        valueLength: *mut u32,
4263    ) -> ::std::os::raw::c_int;
4264}
4265extern "C" {
4266    pub fn dpiSodaDoc_getVersion(
4267        doc: *mut dpiSodaDoc,
4268        value: *mut *const ::std::os::raw::c_char,
4269        valueLength: *mut u32,
4270    ) -> ::std::os::raw::c_int;
4271}
4272extern "C" {
4273    pub fn dpiSodaDocCursor_addRef(cursor: *mut dpiSodaDocCursor) -> ::std::os::raw::c_int;
4274}
4275extern "C" {
4276    pub fn dpiSodaDocCursor_close(cursor: *mut dpiSodaDocCursor) -> ::std::os::raw::c_int;
4277}
4278extern "C" {
4279    pub fn dpiStmt_addRef(stmt: *mut dpiStmt) -> ::std::os::raw::c_int;
4280}
4281extern "C" {
4282    pub fn dpiStmt_bindByName(
4283        stmt: *mut dpiStmt,
4284        name: *const ::std::os::raw::c_char,
4285        nameLength: u32,
4286        var: *mut dpiVar,
4287    ) -> ::std::os::raw::c_int;
4288}
4289extern "C" {
4290    pub fn dpiStmt_bindByPos(
4291        stmt: *mut dpiStmt,
4292        pos: u32,
4293        var: *mut dpiVar,
4294    ) -> ::std::os::raw::c_int;
4295}
4296extern "C" {
4297    pub fn dpiStmt_bindValueByName(
4298        stmt: *mut dpiStmt,
4299        name: *const ::std::os::raw::c_char,
4300        nameLength: u32,
4301        nativeTypeNum: dpiNativeTypeNum,
4302        data: *mut dpiData,
4303    ) -> ::std::os::raw::c_int;
4304}
4305extern "C" {
4306    pub fn dpiStmt_bindValueByPos(
4307        stmt: *mut dpiStmt,
4308        pos: u32,
4309        nativeTypeNum: dpiNativeTypeNum,
4310        data: *mut dpiData,
4311    ) -> ::std::os::raw::c_int;
4312}
4313extern "C" {
4314    pub fn dpiStmt_close(
4315        stmt: *mut dpiStmt,
4316        tag: *const ::std::os::raw::c_char,
4317        tagLength: u32,
4318    ) -> ::std::os::raw::c_int;
4319}
4320extern "C" {
4321    pub fn dpiStmt_define(stmt: *mut dpiStmt, pos: u32, var: *mut dpiVar) -> ::std::os::raw::c_int;
4322}
4323extern "C" {
4324    pub fn dpiStmt_defineValue(
4325        stmt: *mut dpiStmt,
4326        pos: u32,
4327        oracleTypeNum: dpiOracleTypeNum,
4328        nativeTypeNum: dpiNativeTypeNum,
4329        size: u32,
4330        sizeIsBytes: ::std::os::raw::c_int,
4331        objType: *mut dpiObjectType,
4332    ) -> ::std::os::raw::c_int;
4333}
4334extern "C" {
4335    pub fn dpiStmt_getBatchErrorCount(stmt: *mut dpiStmt, count: *mut u32)
4336        -> ::std::os::raw::c_int;
4337}
4338extern "C" {
4339    pub fn dpiStmt_getBatchErrors(
4340        stmt: *mut dpiStmt,
4341        numErrors: u32,
4342        errors: *mut dpiErrorInfo,
4343    ) -> ::std::os::raw::c_int;
4344}
4345extern "C" {
4346    pub fn dpiStmt_getBindCount(stmt: *mut dpiStmt, count: *mut u32) -> ::std::os::raw::c_int;
4347}
4348extern "C" {
4349    pub fn dpiStmt_getBindNames(
4350        stmt: *mut dpiStmt,
4351        numBindNames: *mut u32,
4352        bindNames: *mut *const ::std::os::raw::c_char,
4353        bindNameLengths: *mut u32,
4354    ) -> ::std::os::raw::c_int;
4355}
4356extern "C" {
4357    pub fn dpiStmt_getFetchArraySize(
4358        stmt: *mut dpiStmt,
4359        arraySize: *mut u32,
4360    ) -> ::std::os::raw::c_int;
4361}
4362extern "C" {
4363    pub fn dpiStmt_getImplicitResult(
4364        stmt: *mut dpiStmt,
4365        implicitResult: *mut *mut dpiStmt,
4366    ) -> ::std::os::raw::c_int;
4367}
4368extern "C" {
4369    pub fn dpiStmt_getInfo(stmt: *mut dpiStmt, info: *mut dpiStmtInfo) -> ::std::os::raw::c_int;
4370}
4371extern "C" {
4372    pub fn dpiStmt_getLastRowid(
4373        stmt: *mut dpiStmt,
4374        rowid: *mut *mut dpiRowid,
4375    ) -> ::std::os::raw::c_int;
4376}
4377extern "C" {
4378    pub fn dpiStmt_getNumQueryColumns(
4379        stmt: *mut dpiStmt,
4380        numQueryColumns: *mut u32,
4381    ) -> ::std::os::raw::c_int;
4382}
4383extern "C" {
4384    pub fn dpiStmt_getOciAttr(
4385        stmt: *mut dpiStmt,
4386        attribute: u32,
4387        value: *mut dpiDataBuffer,
4388        valueLength: *mut u32,
4389    ) -> ::std::os::raw::c_int;
4390}
4391extern "C" {
4392    pub fn dpiStmt_getPrefetchRows(stmt: *mut dpiStmt, numRows: *mut u32) -> ::std::os::raw::c_int;
4393}
4394extern "C" {
4395    pub fn dpiStmt_getQueryInfo(
4396        stmt: *mut dpiStmt,
4397        pos: u32,
4398        info: *mut dpiQueryInfo,
4399    ) -> ::std::os::raw::c_int;
4400}
4401extern "C" {
4402    pub fn dpiStmt_getQueryValue(
4403        stmt: *mut dpiStmt,
4404        pos: u32,
4405        nativeTypeNum: *mut dpiNativeTypeNum,
4406        data: *mut *mut dpiData,
4407    ) -> ::std::os::raw::c_int;
4408}
4409extern "C" {
4410    pub fn dpiStmt_getRowCount(stmt: *mut dpiStmt, count: *mut u64) -> ::std::os::raw::c_int;
4411}
4412extern "C" {
4413    pub fn dpiStmt_getRowCounts(
4414        stmt: *mut dpiStmt,
4415        numRowCounts: *mut u32,
4416        rowCounts: *mut *mut u64,
4417    ) -> ::std::os::raw::c_int;
4418}
4419extern "C" {
4420    pub fn dpiStmt_getSubscrQueryId(stmt: *mut dpiStmt, queryId: *mut u64)
4421        -> ::std::os::raw::c_int;
4422}
4423extern "C" {
4424    pub fn dpiStmt_setFetchArraySize(stmt: *mut dpiStmt, arraySize: u32) -> ::std::os::raw::c_int;
4425}
4426extern "C" {
4427    pub fn dpiStmt_setOciAttr(
4428        stmt: *mut dpiStmt,
4429        attribute: u32,
4430        value: *mut ::std::os::raw::c_void,
4431        valueLength: u32,
4432    ) -> ::std::os::raw::c_int;
4433}
4434extern "C" {
4435    pub fn dpiStmt_setPrefetchRows(stmt: *mut dpiStmt, numRows: u32) -> ::std::os::raw::c_int;
4436}
4437extern "C" {
4438    pub fn dpiStmt_deleteFromCache(stmt: *mut dpiStmt) -> ::std::os::raw::c_int;
4439}
4440extern "C" {
4441    pub fn dpiRowid_addRef(rowid: *mut dpiRowid) -> ::std::os::raw::c_int;
4442}
4443extern "C" {
4444    pub fn dpiRowid_getStringValue(
4445        rowid: *mut dpiRowid,
4446        value: *mut *const ::std::os::raw::c_char,
4447        valueLength: *mut u32,
4448    ) -> ::std::os::raw::c_int;
4449}
4450extern "C" {
4451    pub fn dpiRowid_release(subscr: *mut dpiRowid) -> ::std::os::raw::c_int;
4452}
4453extern "C" {
4454    pub fn dpiSubscr_addRef(subscr: *mut dpiSubscr) -> ::std::os::raw::c_int;
4455}
4456extern "C" {
4457    pub fn dpiSubscr_prepareStmt(
4458        subscr: *mut dpiSubscr,
4459        sql: *const ::std::os::raw::c_char,
4460        sqlLength: u32,
4461        stmt: *mut *mut dpiStmt,
4462    ) -> ::std::os::raw::c_int;
4463}
4464extern "C" {
4465    pub fn dpiVar_addRef(var: *mut dpiVar) -> ::std::os::raw::c_int;
4466}
4467extern "C" {
4468    pub fn dpiVar_copyData(
4469        var: *mut dpiVar,
4470        pos: u32,
4471        sourceVar: *mut dpiVar,
4472        sourcePos: u32,
4473    ) -> ::std::os::raw::c_int;
4474}
4475extern "C" {
4476    pub fn dpiVar_getNumElementsInArray(
4477        var: *mut dpiVar,
4478        numElements: *mut u32,
4479    ) -> ::std::os::raw::c_int;
4480}
4481extern "C" {
4482    pub fn dpiVar_getReturnedData(
4483        var: *mut dpiVar,
4484        pos: u32,
4485        numElements: *mut u32,
4486        data: *mut *mut dpiData,
4487    ) -> ::std::os::raw::c_int;
4488}
4489extern "C" {
4490    pub fn dpiVar_getSizeInBytes(var: *mut dpiVar, sizeInBytes: *mut u32) -> ::std::os::raw::c_int;
4491}
4492extern "C" {
4493    pub fn dpiVar_setFromJson(
4494        var: *mut dpiVar,
4495        pos: u32,
4496        json: *mut dpiJson,
4497    ) -> ::std::os::raw::c_int;
4498}
4499extern "C" {
4500    pub fn dpiVar_setFromLob(var: *mut dpiVar, pos: u32, lob: *mut dpiLob)
4501        -> ::std::os::raw::c_int;
4502}
4503extern "C" {
4504    pub fn dpiVar_setFromObject(
4505        var: *mut dpiVar,
4506        pos: u32,
4507        obj: *mut dpiObject,
4508    ) -> ::std::os::raw::c_int;
4509}
4510extern "C" {
4511    pub fn dpiVar_setFromRowid(
4512        var: *mut dpiVar,
4513        pos: u32,
4514        rowid: *mut dpiRowid,
4515    ) -> ::std::os::raw::c_int;
4516}
4517extern "C" {
4518    pub fn dpiVar_setFromStmt(
4519        var: *mut dpiVar,
4520        pos: u32,
4521        stmt: *mut dpiStmt,
4522    ) -> ::std::os::raw::c_int;
4523}
4524extern "C" {
4525    pub fn dpiVar_setFromVector(
4526        var: *mut dpiVar,
4527        pos: u32,
4528        vector: *mut dpiVector,
4529    ) -> ::std::os::raw::c_int;
4530}
4531extern "C" {
4532    pub fn dpiVar_setNumElementsInArray(
4533        var: *mut dpiVar,
4534        numElements: u32,
4535    ) -> ::std::os::raw::c_int;
4536}
4537extern "C" {
4538    pub fn dpiVector_addRef(vector: *mut dpiVector) -> ::std::os::raw::c_int;
4539}
4540extern "C" {
4541    pub fn dpiVector_getValue(
4542        vector: *mut dpiVector,
4543        info: *mut dpiVectorInfo,
4544    ) -> ::std::os::raw::c_int;
4545}
4546extern "C" {
4547    pub fn dpiVector_release(vector: *mut dpiVector) -> ::std::os::raw::c_int;
4548}
4549extern "C" {
4550    pub fn dpiVector_setValue(
4551        vector: *mut dpiVector,
4552        info: *mut dpiVectorInfo,
4553    ) -> ::std::os::raw::c_int;
4554}