cassandra_cpp_sys/
cassandra.rs

1/* automatically generated by rust-bindgen 0.59.2 */
2
3pub const _STDINT_H: u32 = 1;
4pub const _FEATURES_H: u32 = 1;
5pub const _DEFAULT_SOURCE: u32 = 1;
6pub const __GLIBC_USE_ISOC2X: u32 = 0;
7pub const __USE_ISOC11: u32 = 1;
8pub const __USE_ISOC99: u32 = 1;
9pub const __USE_ISOC95: u32 = 1;
10pub const __USE_POSIX_IMPLICITLY: u32 = 1;
11pub const _POSIX_SOURCE: u32 = 1;
12pub const _POSIX_C_SOURCE: u32 = 200809;
13pub const __USE_POSIX: u32 = 1;
14pub const __USE_POSIX2: u32 = 1;
15pub const __USE_POSIX199309: u32 = 1;
16pub const __USE_POSIX199506: u32 = 1;
17pub const __USE_XOPEN2K: u32 = 1;
18pub const __USE_XOPEN2K8: u32 = 1;
19pub const _ATFILE_SOURCE: u32 = 1;
20pub const __WORDSIZE: u32 = 64;
21pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
22pub const __SYSCALL_WORDSIZE: u32 = 64;
23pub const __TIMESIZE: u32 = 64;
24pub const __USE_MISC: u32 = 1;
25pub const __USE_ATFILE: u32 = 1;
26pub const __USE_FORTIFY_LEVEL: u32 = 0;
27pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
28pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
29pub const _STDC_PREDEF_H: u32 = 1;
30pub const __STDC_IEC_559__: u32 = 1;
31pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
32pub const __STDC_ISO_10646__: u32 = 201706;
33pub const __GNU_LIBRARY__: u32 = 6;
34pub const __GLIBC__: u32 = 2;
35pub const __GLIBC_MINOR__: u32 = 34;
36pub const _SYS_CDEFS_H: u32 = 1;
37pub const __glibc_c99_flexarr_available: u32 = 1;
38pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
39pub const __HAVE_GENERIC_SELECTION: u32 = 1;
40pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
41pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
42pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0;
43pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0;
44pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
45pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0;
46pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
47pub const _BITS_TYPES_H: u32 = 1;
48pub const _BITS_TYPESIZES_H: u32 = 1;
49pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
50pub const __INO_T_MATCHES_INO64_T: u32 = 1;
51pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
52pub const __STATFS_MATCHES_STATFS64: u32 = 1;
53pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
54pub const __FD_SETSIZE: u32 = 1024;
55pub const _BITS_TIME64_H: u32 = 1;
56pub const _BITS_WCHAR_H: u32 = 1;
57pub const _BITS_STDINT_INTN_H: u32 = 1;
58pub const _BITS_STDINT_UINTN_H: u32 = 1;
59pub const INT8_MIN: i32 = -128;
60pub const INT16_MIN: i32 = -32768;
61pub const INT32_MIN: i32 = -2147483648;
62pub const INT8_MAX: u32 = 127;
63pub const INT16_MAX: u32 = 32767;
64pub const INT32_MAX: u32 = 2147483647;
65pub const UINT8_MAX: u32 = 255;
66pub const UINT16_MAX: u32 = 65535;
67pub const UINT32_MAX: u32 = 4294967295;
68pub const INT_LEAST8_MIN: i32 = -128;
69pub const INT_LEAST16_MIN: i32 = -32768;
70pub const INT_LEAST32_MIN: i32 = -2147483648;
71pub const INT_LEAST8_MAX: u32 = 127;
72pub const INT_LEAST16_MAX: u32 = 32767;
73pub const INT_LEAST32_MAX: u32 = 2147483647;
74pub const UINT_LEAST8_MAX: u32 = 255;
75pub const UINT_LEAST16_MAX: u32 = 65535;
76pub const UINT_LEAST32_MAX: u32 = 4294967295;
77pub const INT_FAST8_MIN: i32 = -128;
78pub const INT_FAST16_MIN: i64 = -9223372036854775808;
79pub const INT_FAST32_MIN: i64 = -9223372036854775808;
80pub const INT_FAST8_MAX: u32 = 127;
81pub const INT_FAST16_MAX: u64 = 9223372036854775807;
82pub const INT_FAST32_MAX: u64 = 9223372036854775807;
83pub const UINT_FAST8_MAX: u32 = 255;
84pub const UINT_FAST16_MAX: i32 = -1;
85pub const UINT_FAST32_MAX: i32 = -1;
86pub const INTPTR_MIN: i64 = -9223372036854775808;
87pub const INTPTR_MAX: u64 = 9223372036854775807;
88pub const UINTPTR_MAX: i32 = -1;
89pub const PTRDIFF_MIN: i64 = -9223372036854775808;
90pub const PTRDIFF_MAX: u64 = 9223372036854775807;
91pub const SIG_ATOMIC_MIN: i32 = -2147483648;
92pub const SIG_ATOMIC_MAX: u32 = 2147483647;
93pub const SIZE_MAX: i32 = -1;
94pub const WINT_MIN: u32 = 0;
95pub const WINT_MAX: u32 = 4294967295;
96pub const CASS_VERSION_MAJOR: u32 = 2;
97pub const CASS_VERSION_MINOR: u32 = 16;
98pub const CASS_VERSION_PATCH: u32 = 0;
99pub const CASS_VERSION_SUFFIX: &[u8; 1usize] = b"\0";
100pub const CASS_UINT64_MAX: i32 = -1;
101pub const CASS_INET_V4_LENGTH: u32 = 4;
102pub const CASS_INET_V6_LENGTH: u32 = 16;
103pub const CASS_INET_STRING_LENGTH: u32 = 46;
104pub const CASS_UUID_STRING_LENGTH: u32 = 37;
105pub const CASS_LOG_MAX_MESSAGE_SIZE: u32 = 1024;
106pub type wchar_t = ::std::os::raw::c_int;
107pub type __u_char = ::std::os::raw::c_uchar;
108pub type __u_short = ::std::os::raw::c_ushort;
109pub type __u_int = ::std::os::raw::c_uint;
110pub type __u_long = ::std::os::raw::c_ulong;
111pub type __int8_t = ::std::os::raw::c_schar;
112pub type __uint8_t = ::std::os::raw::c_uchar;
113pub type __int16_t = ::std::os::raw::c_short;
114pub type __uint16_t = ::std::os::raw::c_ushort;
115pub type __int32_t = ::std::os::raw::c_int;
116pub type __uint32_t = ::std::os::raw::c_uint;
117pub type __int64_t = ::std::os::raw::c_long;
118pub type __uint64_t = ::std::os::raw::c_ulong;
119pub type __int_least8_t = __int8_t;
120pub type __uint_least8_t = __uint8_t;
121pub type __int_least16_t = __int16_t;
122pub type __uint_least16_t = __uint16_t;
123pub type __int_least32_t = __int32_t;
124pub type __uint_least32_t = __uint32_t;
125pub type __int_least64_t = __int64_t;
126pub type __uint_least64_t = __uint64_t;
127pub type __quad_t = ::std::os::raw::c_long;
128pub type __u_quad_t = ::std::os::raw::c_ulong;
129pub type __intmax_t = ::std::os::raw::c_long;
130pub type __uintmax_t = ::std::os::raw::c_ulong;
131pub type __dev_t = ::std::os::raw::c_ulong;
132pub type __uid_t = ::std::os::raw::c_uint;
133pub type __gid_t = ::std::os::raw::c_uint;
134pub type __ino_t = ::std::os::raw::c_ulong;
135pub type __ino64_t = ::std::os::raw::c_ulong;
136pub type __mode_t = ::std::os::raw::c_uint;
137pub type __nlink_t = ::std::os::raw::c_ulong;
138pub type __off_t = ::std::os::raw::c_long;
139pub type __off64_t = ::std::os::raw::c_long;
140pub type __pid_t = ::std::os::raw::c_int;
141#[repr(C)]
142#[derive(Debug, Copy, Clone)]
143pub struct __fsid_t {
144    pub __val: [::std::os::raw::c_int; 2usize],
145}
146pub type __clock_t = ::std::os::raw::c_long;
147pub type __rlim_t = ::std::os::raw::c_ulong;
148pub type __rlim64_t = ::std::os::raw::c_ulong;
149pub type __id_t = ::std::os::raw::c_uint;
150pub type __time_t = ::std::os::raw::c_long;
151pub type __useconds_t = ::std::os::raw::c_uint;
152pub type __suseconds_t = ::std::os::raw::c_long;
153pub type __suseconds64_t = ::std::os::raw::c_long;
154pub type __daddr_t = ::std::os::raw::c_int;
155pub type __key_t = ::std::os::raw::c_int;
156pub type __clockid_t = ::std::os::raw::c_int;
157pub type __timer_t = *mut ::std::os::raw::c_void;
158pub type __blksize_t = ::std::os::raw::c_long;
159pub type __blkcnt_t = ::std::os::raw::c_long;
160pub type __blkcnt64_t = ::std::os::raw::c_long;
161pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
162pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
163pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
164pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
165pub type __fsword_t = ::std::os::raw::c_long;
166pub type __ssize_t = ::std::os::raw::c_long;
167pub type __syscall_slong_t = ::std::os::raw::c_long;
168pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
169pub type __loff_t = __off64_t;
170pub type __caddr_t = *mut ::std::os::raw::c_char;
171pub type __intptr_t = ::std::os::raw::c_long;
172pub type __socklen_t = ::std::os::raw::c_uint;
173pub type __sig_atomic_t = ::std::os::raw::c_int;
174pub type int_least8_t = __int_least8_t;
175pub type int_least16_t = __int_least16_t;
176pub type int_least32_t = __int_least32_t;
177pub type int_least64_t = __int_least64_t;
178pub type uint_least8_t = __uint_least8_t;
179pub type uint_least16_t = __uint_least16_t;
180pub type uint_least32_t = __uint_least32_t;
181pub type uint_least64_t = __uint_least64_t;
182pub type int_fast8_t = ::std::os::raw::c_schar;
183pub type int_fast16_t = ::std::os::raw::c_long;
184pub type int_fast32_t = ::std::os::raw::c_long;
185pub type int_fast64_t = ::std::os::raw::c_long;
186pub type uint_fast8_t = ::std::os::raw::c_uchar;
187pub type uint_fast16_t = ::std::os::raw::c_ulong;
188pub type uint_fast32_t = ::std::os::raw::c_ulong;
189pub type uint_fast64_t = ::std::os::raw::c_ulong;
190pub type intmax_t = __intmax_t;
191pub type uintmax_t = __uintmax_t;
192#[repr(u32)]
193#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
194pub enum cass_bool_t {
195    cass_false = 0,
196    cass_true = 1,
197}
198pub type cass_float_t = f32;
199pub type cass_double_t = f64;
200pub type cass_int8_t = i8;
201pub type cass_uint8_t = u8;
202pub type cass_int16_t = i16;
203pub type cass_uint16_t = u16;
204pub type cass_int32_t = i32;
205pub type cass_uint32_t = u32;
206pub type cass_int64_t = i64;
207pub type cass_uint64_t = u64;
208pub type cass_byte_t = cass_uint8_t;
209pub type cass_duration_t = cass_uint64_t;
210#[doc = " IP address for either IPv4 or IPv6."]
211#[doc = ""]
212#[doc = " @struct CassInet"]
213#[repr(C)]
214#[derive(Debug, Copy, Clone)]
215pub struct CassInet_ {
216    #[doc = " Big-endian, binary representation of a IPv4 or IPv6 address"]
217    pub address: [cass_uint8_t; 16usize],
218    #[doc = " Number of address bytes. 4 bytes for IPv4 and 16 bytes for IPv6."]
219    pub address_length: cass_uint8_t,
220}
221#[doc = " IP address for either IPv4 or IPv6."]
222#[doc = ""]
223#[doc = " @struct CassInet"]
224pub type CassInet = CassInet_;
225#[doc = " Version 1 (time-based) or version 4 (random) UUID."]
226#[doc = ""]
227#[doc = " @struct CassUuid"]
228#[repr(C)]
229#[derive(Debug, Copy, Clone)]
230pub struct CassUuid_ {
231    #[doc = " Represents the time and version part of a UUID. The most significant"]
232    #[doc = " 4 bits represent the version and the bottom 60 bits representing the"]
233    #[doc = " time part. For version 1 the time part represents the number of"]
234    #[doc = " 100 nanosecond periods since 00:00:00 UTC, January 1, 1970 (the Epoch)."]
235    #[doc = " For version 4 the time part is randomly generated."]
236    pub time_and_version: cass_uint64_t,
237    #[doc = " Represents the clock sequence and the node part of a UUID. The most"]
238    #[doc = " significant 16 bits represent the clock sequence (except for the most"]
239    #[doc = " significant bit which is always set) and the bottom 48 bits represent"]
240    #[doc = " the node part. For version 1 (time-based) the clock sequence part is randomly"]
241    #[doc = " generated and the node part can be explicitly set, otherwise, it's generated"]
242    #[doc = " from node unique information. For version 4 both the clock sequence and the node"]
243    #[doc = " parts are randomly generated."]
244    pub clock_seq_and_node: cass_uint64_t,
245}
246#[doc = " Version 1 (time-based) or version 4 (random) UUID."]
247#[doc = ""]
248#[doc = " @struct CassUuid"]
249pub type CassUuid = CassUuid_;
250#[repr(C)]
251#[derive(Debug, Copy, Clone)]
252pub struct CassCluster_ {
253    _unused: [u8; 0],
254}
255#[doc = " A cluster object describes the configuration of the Cassandra cluster and is used"]
256#[doc = " to construct a session instance. Unlike other DataStax drivers the cluster object"]
257#[doc = " does not maintain the control connection."]
258#[doc = ""]
259#[doc = " @struct CassCluster"]
260pub type CassCluster = CassCluster_;
261#[repr(C)]
262#[derive(Debug, Copy, Clone)]
263pub struct CassSession_ {
264    _unused: [u8; 0],
265}
266#[doc = " A session object is used to execute queries and maintains cluster state through"]
267#[doc = " the control connection. The control connection is used to auto-discover nodes and"]
268#[doc = " monitor cluster changes (topology and schema). Each session also maintains multiple"]
269#[doc = " pools of connections to cluster nodes which are used to query the cluster."]
270#[doc = ""]
271#[doc = " Instances of the session object are thread-safe to execute queries."]
272#[doc = ""]
273#[doc = " @struct CassSession"]
274pub type CassSession = CassSession_;
275#[repr(C)]
276#[derive(Debug, Copy, Clone)]
277pub struct CassStatement_ {
278    _unused: [u8; 0],
279}
280#[doc = " A statement object is an executable query. It represents either a regular"]
281#[doc = " (adhoc) statement or a prepared statement. It maintains the queries' parameter"]
282#[doc = " values along with query options (consistency level, paging state, etc.)"]
283#[doc = ""]
284#[doc = " <b>Note:</b> Parameters for regular queries are not supported by the binary protocol"]
285#[doc = " version 1."]
286#[doc = ""]
287#[doc = " @struct CassStatement"]
288pub type CassStatement = CassStatement_;
289#[repr(C)]
290#[derive(Debug, Copy, Clone)]
291pub struct CassBatch_ {
292    _unused: [u8; 0],
293}
294#[doc = " A group of statements that are executed as a single batch."]
295#[doc = ""]
296#[doc = " <b>Note:</b> Batches are not supported by the binary protocol version 1."]
297#[doc = ""]
298#[doc = " @cassandra{2.0+}"]
299#[doc = ""]
300#[doc = " @struct CassBatch"]
301pub type CassBatch = CassBatch_;
302#[repr(C)]
303#[derive(Debug, Copy, Clone)]
304pub struct CassFuture_ {
305    _unused: [u8; 0],
306}
307#[doc = " The future result of an operation."]
308#[doc = ""]
309#[doc = " It can represent a result if the operation completed successfully or an"]
310#[doc = " error if the operation failed. It can be waited on, polled or a callback"]
311#[doc = " can be attached."]
312#[doc = ""]
313#[doc = " @struct CassFuture"]
314pub type CassFuture = CassFuture_;
315#[repr(C)]
316#[derive(Debug, Copy, Clone)]
317pub struct CassPrepared_ {
318    _unused: [u8; 0],
319}
320#[doc = " A statement that has been prepared cluster-side (It has been pre-parsed"]
321#[doc = " and cached)."]
322#[doc = ""]
323#[doc = " A prepared statement is read-only and it is thread-safe to concurrently"]
324#[doc = " bind new statements."]
325#[doc = ""]
326#[doc = " @struct CassPrepared"]
327pub type CassPrepared = CassPrepared_;
328#[repr(C)]
329#[derive(Debug, Copy, Clone)]
330pub struct CassResult_ {
331    _unused: [u8; 0],
332}
333#[doc = " The result of a query."]
334#[doc = ""]
335#[doc = " A result object is read-only and is thread-safe to read or iterate over"]
336#[doc = " concurrently."]
337#[doc = ""]
338#[doc = " @struct CassResult"]
339pub type CassResult = CassResult_;
340#[repr(C)]
341#[derive(Debug, Copy, Clone)]
342pub struct CassErrorResult_ {
343    _unused: [u8; 0],
344}
345#[doc = " A error result of a request"]
346#[doc = ""]
347#[doc = " @struct CassErrorResult"]
348pub type CassErrorResult = CassErrorResult_;
349#[repr(C)]
350#[derive(Debug, Copy, Clone)]
351pub struct CassNode_ {
352    _unused: [u8; 0],
353}
354#[doc = " An object that represents a cluster node."]
355#[doc = ""]
356#[doc = " @struct CassNode"]
357pub type CassNode = CassNode_;
358#[repr(C)]
359#[derive(Debug, Copy, Clone)]
360pub struct CassIterator_ {
361    _unused: [u8; 0],
362}
363#[doc = " An object used to iterate over a group of rows, columns or collection values."]
364#[doc = ""]
365#[doc = " @struct CassIterator"]
366pub type CassIterator = CassIterator_;
367#[repr(C)]
368#[derive(Debug, Copy, Clone)]
369pub struct CassRow_ {
370    _unused: [u8; 0],
371}
372#[doc = " A collection of column values."]
373#[doc = ""]
374#[doc = " @struct CassRow"]
375pub type CassRow = CassRow_;
376#[repr(C)]
377#[derive(Debug, Copy, Clone)]
378pub struct CassValue_ {
379    _unused: [u8; 0],
380}
381#[doc = " A single primitive value or a collection of values."]
382#[doc = ""]
383#[doc = " @struct CassValue"]
384pub type CassValue = CassValue_;
385#[repr(C)]
386#[derive(Debug, Copy, Clone)]
387pub struct CassDataType_ {
388    _unused: [u8; 0],
389}
390#[doc = " A data type used to describe a value, collection or"]
391#[doc = " user defined type."]
392#[doc = ""]
393#[doc = " @struct CassDataType"]
394pub type CassDataType = CassDataType_;
395#[repr(C)]
396#[derive(Debug, Copy, Clone)]
397pub struct CassFunctionMeta_ {
398    _unused: [u8; 0],
399}
400#[doc = " @struct CassFunctionMeta"]
401#[doc = ""]
402#[doc = " @cassandra{2.2+}"]
403pub type CassFunctionMeta = CassFunctionMeta_;
404#[repr(C)]
405#[derive(Debug, Copy, Clone)]
406pub struct CassAggregateMeta_ {
407    _unused: [u8; 0],
408}
409#[doc = " @struct CassAggregateMeta"]
410#[doc = ""]
411#[doc = " @cassandra{2.2+}"]
412pub type CassAggregateMeta = CassAggregateMeta_;
413#[repr(C)]
414#[derive(Debug, Copy, Clone)]
415pub struct CassCollection_ {
416    _unused: [u8; 0],
417}
418#[doc = "  A collection of values."]
419#[doc = ""]
420#[doc = " @struct CassCollection"]
421pub type CassCollection = CassCollection_;
422#[repr(C)]
423#[derive(Debug, Copy, Clone)]
424pub struct CassTuple_ {
425    _unused: [u8; 0],
426}
427#[doc = " A tuple of values."]
428#[doc = ""]
429#[doc = " @struct CassTuple"]
430#[doc = ""]
431#[doc = " @cassandra{2.1+}"]
432pub type CassTuple = CassTuple_;
433#[repr(C)]
434#[derive(Debug, Copy, Clone)]
435pub struct CassUserType_ {
436    _unused: [u8; 0],
437}
438#[doc = " A user defined type."]
439#[doc = ""]
440#[doc = " @struct CassUserType"]
441#[doc = ""]
442#[doc = " @cassandra{2.1+}"]
443pub type CassUserType = CassUserType_;
444#[repr(C)]
445#[derive(Debug, Copy, Clone)]
446pub struct CassSsl_ {
447    _unused: [u8; 0],
448}
449#[doc = " Describes the SSL configuration of a cluster."]
450#[doc = ""]
451#[doc = " @struct CassSsl"]
452pub type CassSsl = CassSsl_;
453#[doc = " Describes the version of the connected Cassandra cluster."]
454#[doc = ""]
455#[doc = " @struct CassVersion"]
456#[repr(C)]
457#[derive(Debug, Copy, Clone)]
458pub struct CassVersion_ {
459    pub major_version: ::std::os::raw::c_int,
460    pub minor_version: ::std::os::raw::c_int,
461    pub patch_version: ::std::os::raw::c_int,
462}
463#[doc = " Describes the version of the connected Cassandra cluster."]
464#[doc = ""]
465#[doc = " @struct CassVersion"]
466pub type CassVersion = CassVersion_;
467#[repr(C)]
468#[derive(Debug, Copy, Clone)]
469pub struct CassSchemaMeta_ {
470    _unused: [u8; 0],
471}
472#[doc = " A snapshot of the schema's metadata."]
473#[doc = ""]
474#[doc = " @struct CassSchemaMeta"]
475pub type CassSchemaMeta = CassSchemaMeta_;
476#[repr(C)]
477#[derive(Debug, Copy, Clone)]
478pub struct CassKeyspaceMeta_ {
479    _unused: [u8; 0],
480}
481#[doc = " Keyspace metadata"]
482#[doc = ""]
483#[doc = " @struct CassKeyspaceMeta"]
484pub type CassKeyspaceMeta = CassKeyspaceMeta_;
485#[repr(C)]
486#[derive(Debug, Copy, Clone)]
487pub struct CassTableMeta_ {
488    _unused: [u8; 0],
489}
490#[doc = " Table metadata"]
491#[doc = ""]
492#[doc = " @struct CassTableMeta"]
493pub type CassTableMeta = CassTableMeta_;
494#[repr(C)]
495#[derive(Debug, Copy, Clone)]
496pub struct CassMaterializedViewMeta_ {
497    _unused: [u8; 0],
498}
499#[doc = " MaterializedView metadata"]
500#[doc = ""]
501#[doc = " @struct CassMaterializedViewMeta"]
502#[doc = ""]
503#[doc = " @cassandra{3.0+}"]
504pub type CassMaterializedViewMeta = CassMaterializedViewMeta_;
505#[repr(C)]
506#[derive(Debug, Copy, Clone)]
507pub struct CassColumnMeta_ {
508    _unused: [u8; 0],
509}
510#[doc = " Column metadata"]
511#[doc = ""]
512#[doc = " @struct CassColumnMeta"]
513pub type CassColumnMeta = CassColumnMeta_;
514#[repr(C)]
515#[derive(Debug, Copy, Clone)]
516pub struct CassIndexMeta_ {
517    _unused: [u8; 0],
518}
519#[doc = " Index metadata"]
520#[doc = ""]
521#[doc = " @struct CassIndexMeta"]
522pub type CassIndexMeta = CassIndexMeta_;
523#[repr(C)]
524#[derive(Debug, Copy, Clone)]
525pub struct CassUuidGen_ {
526    _unused: [u8; 0],
527}
528#[doc = " A UUID generator object."]
529#[doc = ""]
530#[doc = " Instances of the UUID generator object are thread-safe to generate UUIDs."]
531#[doc = ""]
532#[doc = " @struct CassUuidGen"]
533pub type CassUuidGen = CassUuidGen_;
534#[repr(C)]
535#[derive(Debug, Copy, Clone)]
536pub struct CassTimestampGen_ {
537    _unused: [u8; 0],
538}
539#[doc = " Policies that defined the behavior of a request when a server-side"]
540#[doc = " read/write timeout or unavailable error occurs."]
541#[doc = ""]
542#[doc = " Generators of client-side, microsecond-precision timestamps."]
543#[doc = ""]
544#[doc = " @struct CassTimestampGen"]
545#[doc = ""]
546#[doc = " @cassandra{2.1+}"]
547pub type CassTimestampGen = CassTimestampGen_;
548#[repr(C)]
549#[derive(Debug, Copy, Clone)]
550pub struct CassRetryPolicy_ {
551    _unused: [u8; 0],
552}
553#[doc = " @struct CassRetryPolicy"]
554pub type CassRetryPolicy = CassRetryPolicy_;
555#[repr(C)]
556#[derive(Debug, Copy, Clone)]
557pub struct CassCustomPayload_ {
558    _unused: [u8; 0],
559}
560#[doc = " @struct CassCustomPayload"]
561#[doc = ""]
562#[doc = " @cassandra{2.2+}"]
563pub type CassCustomPayload = CassCustomPayload_;
564#[doc = " A snapshot of the session's performance/diagnostic metrics."]
565#[doc = ""]
566#[doc = " @struct CassMetrics"]
567#[repr(C)]
568#[derive(Debug, Copy, Clone)]
569pub struct CassMetrics_ {
570    #[doc = "< Performance request metrics"]
571    pub requests: CassMetrics___bindgen_ty_1,
572    #[doc = "< Diagnostic metrics"]
573    pub stats: CassMetrics___bindgen_ty_2,
574    #[doc = "< Error metrics"]
575    pub errors: CassMetrics___bindgen_ty_3,
576}
577#[repr(C)]
578#[derive(Debug, Copy, Clone)]
579pub struct CassMetrics___bindgen_ty_1 {
580    #[doc = "< Minimum in microseconds"]
581    pub min: cass_uint64_t,
582    #[doc = "< Maximum in microseconds"]
583    pub max: cass_uint64_t,
584    #[doc = "< Mean in microseconds"]
585    pub mean: cass_uint64_t,
586    #[doc = "< Standard deviation in microseconds"]
587    pub stddev: cass_uint64_t,
588    #[doc = "< Median in microseconds"]
589    pub median: cass_uint64_t,
590    #[doc = "< 75th percentile in microseconds"]
591    pub percentile_75th: cass_uint64_t,
592    #[doc = "< 95th percentile in microseconds"]
593    pub percentile_95th: cass_uint64_t,
594    #[doc = "< 98th percentile in microseconds"]
595    pub percentile_98th: cass_uint64_t,
596    #[doc = "< 99the percentile in microseconds"]
597    pub percentile_99th: cass_uint64_t,
598    #[doc = "< 99.9th percentile in microseconds"]
599    pub percentile_999th: cass_uint64_t,
600    #[doc = "<  Mean rate in requests per second"]
601    pub mean_rate: cass_double_t,
602    #[doc = "< 1 minute rate in requests per second"]
603    pub one_minute_rate: cass_double_t,
604    #[doc = "<  5 minute rate in requests per second"]
605    pub five_minute_rate: cass_double_t,
606    #[doc = "< 15 minute rate in requests per second"]
607    pub fifteen_minute_rate: cass_double_t,
608}
609#[repr(C)]
610#[derive(Debug, Copy, Clone)]
611pub struct CassMetrics___bindgen_ty_2 {
612    #[doc = "< The total number of connections"]
613    pub total_connections: cass_uint64_t,
614    #[doc = "< Deprecated"]
615    pub available_connections: cass_uint64_t,
616    #[doc = "< Deprecated"]
617    pub exceeded_pending_requests_water_mark: cass_uint64_t,
618    #[doc = "< Deprecated"]
619    pub exceeded_write_bytes_water_mark: cass_uint64_t,
620}
621#[repr(C)]
622#[derive(Debug, Copy, Clone)]
623pub struct CassMetrics___bindgen_ty_3 {
624    #[doc = "< Occurrences of a connection timeout"]
625    pub connection_timeouts: cass_uint64_t,
626    #[doc = "< Deprecated"]
627    pub pending_request_timeouts: cass_uint64_t,
628    #[doc = "< Occurrences of requests that timed out waiting for a request to finish"]
629    pub request_timeouts: cass_uint64_t,
630}
631#[doc = " A snapshot of the session's performance/diagnostic metrics."]
632#[doc = ""]
633#[doc = " @struct CassMetrics"]
634pub type CassMetrics = CassMetrics_;
635#[repr(C)]
636#[derive(Debug, Copy, Clone)]
637pub struct CassSpeculativeExecutionMetrics_ {
638    #[doc = "< Minimum in microseconds"]
639    pub min: cass_uint64_t,
640    #[doc = "< Maximum in microseconds"]
641    pub max: cass_uint64_t,
642    #[doc = "< Mean in microseconds"]
643    pub mean: cass_uint64_t,
644    #[doc = "< Standard deviation in microseconds"]
645    pub stddev: cass_uint64_t,
646    #[doc = "< Median in microseconds"]
647    pub median: cass_uint64_t,
648    #[doc = "< 75th percentile in microseconds"]
649    pub percentile_75th: cass_uint64_t,
650    #[doc = "< 95th percentile in microseconds"]
651    pub percentile_95th: cass_uint64_t,
652    #[doc = "< 98th percentile in microseconds"]
653    pub percentile_98th: cass_uint64_t,
654    #[doc = "< 99the percentile in microseconds"]
655    pub percentile_99th: cass_uint64_t,
656    #[doc = "< 99.9th percentile in microseconds"]
657    pub percentile_999th: cass_uint64_t,
658    #[doc = "< The number of aborted speculative retries"]
659    pub count: cass_uint64_t,
660    #[doc = "< Fraction of requests that are aborted speculative retries"]
661    pub percentage: cass_double_t,
662}
663pub type CassSpeculativeExecutionMetrics = CassSpeculativeExecutionMetrics_;
664#[repr(u32)]
665#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
666pub enum CassConsistency_ {
667    CASS_CONSISTENCY_UNKNOWN = 65535,
668    CASS_CONSISTENCY_ANY = 0,
669    CASS_CONSISTENCY_ONE = 1,
670    CASS_CONSISTENCY_TWO = 2,
671    CASS_CONSISTENCY_THREE = 3,
672    CASS_CONSISTENCY_QUORUM = 4,
673    CASS_CONSISTENCY_ALL = 5,
674    CASS_CONSISTENCY_LOCAL_QUORUM = 6,
675    CASS_CONSISTENCY_EACH_QUORUM = 7,
676    CASS_CONSISTENCY_SERIAL = 8,
677    CASS_CONSISTENCY_LOCAL_SERIAL = 9,
678    CASS_CONSISTENCY_LOCAL_ONE = 10,
679}
680pub use self::CassConsistency_ as CassConsistency;
681#[repr(u32)]
682#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
683pub enum CassWriteType_ {
684    CASS_WRITE_TYPE_UNKNOWN = 0,
685    CASS_WRITE_TYPE_SIMPLE = 1,
686    CASS_WRITE_TYPE_BATCH = 2,
687    CASS_WRITE_TYPE_UNLOGGED_BATCH = 3,
688    CASS_WRITE_TYPE_COUNTER = 4,
689    CASS_WRITE_TYPE_BATCH_LOG = 5,
690    CASS_WRITE_TYPE_CAS = 6,
691    CASS_WRITE_TYPE_VIEW = 7,
692    CASS_WRITE_TYPE_CDC = 8,
693}
694pub use self::CassWriteType_ as CassWriteType;
695#[repr(u32)]
696#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
697pub enum CassColumnType_ {
698    CASS_COLUMN_TYPE_REGULAR = 0,
699    CASS_COLUMN_TYPE_PARTITION_KEY = 1,
700    CASS_COLUMN_TYPE_CLUSTERING_KEY = 2,
701    CASS_COLUMN_TYPE_STATIC = 3,
702    CASS_COLUMN_TYPE_COMPACT_VALUE = 4,
703}
704pub use self::CassColumnType_ as CassColumnType;
705#[repr(u32)]
706#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
707pub enum CassIndexType_ {
708    CASS_INDEX_TYPE_UNKNOWN = 0,
709    CASS_INDEX_TYPE_KEYS = 1,
710    CASS_INDEX_TYPE_CUSTOM = 2,
711    CASS_INDEX_TYPE_COMPOSITES = 3,
712}
713pub use self::CassIndexType_ as CassIndexType;
714#[repr(u32)]
715#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
716pub enum CassValueType_ {
717    CASS_VALUE_TYPE_UNKNOWN = 65535,
718    CASS_VALUE_TYPE_CUSTOM = 0,
719    CASS_VALUE_TYPE_ASCII = 1,
720    CASS_VALUE_TYPE_BIGINT = 2,
721    CASS_VALUE_TYPE_BLOB = 3,
722    CASS_VALUE_TYPE_BOOLEAN = 4,
723    CASS_VALUE_TYPE_COUNTER = 5,
724    CASS_VALUE_TYPE_DECIMAL = 6,
725    CASS_VALUE_TYPE_DOUBLE = 7,
726    CASS_VALUE_TYPE_FLOAT = 8,
727    CASS_VALUE_TYPE_INT = 9,
728    CASS_VALUE_TYPE_TEXT = 10,
729    CASS_VALUE_TYPE_TIMESTAMP = 11,
730    CASS_VALUE_TYPE_UUID = 12,
731    CASS_VALUE_TYPE_VARCHAR = 13,
732    CASS_VALUE_TYPE_VARINT = 14,
733    CASS_VALUE_TYPE_TIMEUUID = 15,
734    CASS_VALUE_TYPE_INET = 16,
735    CASS_VALUE_TYPE_DATE = 17,
736    CASS_VALUE_TYPE_TIME = 18,
737    CASS_VALUE_TYPE_SMALL_INT = 19,
738    CASS_VALUE_TYPE_TINY_INT = 20,
739    CASS_VALUE_TYPE_DURATION = 21,
740    CASS_VALUE_TYPE_LIST = 32,
741    CASS_VALUE_TYPE_MAP = 33,
742    CASS_VALUE_TYPE_SET = 34,
743    CASS_VALUE_TYPE_UDT = 48,
744    CASS_VALUE_TYPE_TUPLE = 49,
745    CASS_VALUE_TYPE_LAST_ENTRY = 50,
746}
747pub use self::CassValueType_ as CassValueType;
748#[repr(u32)]
749#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
750pub enum CassClusteringOrder_ {
751    CASS_CLUSTERING_ORDER_NONE = 0,
752    CASS_CLUSTERING_ORDER_ASC = 1,
753    CASS_CLUSTERING_ORDER_DESC = 2,
754}
755pub use self::CassClusteringOrder_ as CassClusteringOrder;
756#[repr(u32)]
757#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
758pub enum CassCollectionType_ {
759    CASS_COLLECTION_TYPE_LIST = 32,
760    CASS_COLLECTION_TYPE_MAP = 33,
761    CASS_COLLECTION_TYPE_SET = 34,
762}
763pub use self::CassCollectionType_ as CassCollectionType;
764#[repr(u32)]
765#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
766pub enum CassBatchType_ {
767    CASS_BATCH_TYPE_LOGGED = 0,
768    CASS_BATCH_TYPE_UNLOGGED = 1,
769    CASS_BATCH_TYPE_COUNTER = 2,
770}
771pub use self::CassBatchType_ as CassBatchType;
772#[repr(u32)]
773#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
774pub enum CassIteratorType_ {
775    CASS_ITERATOR_TYPE_RESULT = 0,
776    CASS_ITERATOR_TYPE_ROW = 1,
777    CASS_ITERATOR_TYPE_COLLECTION = 2,
778    CASS_ITERATOR_TYPE_MAP = 3,
779    CASS_ITERATOR_TYPE_TUPLE = 4,
780    CASS_ITERATOR_TYPE_USER_TYPE_FIELD = 5,
781    CASS_ITERATOR_TYPE_META_FIELD = 6,
782    CASS_ITERATOR_TYPE_KEYSPACE_META = 7,
783    CASS_ITERATOR_TYPE_TABLE_META = 8,
784    CASS_ITERATOR_TYPE_TYPE_META = 9,
785    CASS_ITERATOR_TYPE_FUNCTION_META = 10,
786    CASS_ITERATOR_TYPE_AGGREGATE_META = 11,
787    CASS_ITERATOR_TYPE_COLUMN_META = 12,
788    CASS_ITERATOR_TYPE_INDEX_META = 13,
789    CASS_ITERATOR_TYPE_MATERIALIZED_VIEW_META = 14,
790}
791pub use self::CassIteratorType_ as CassIteratorType;
792#[repr(u32)]
793#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
794pub enum CassLogLevel_ {
795    CASS_LOG_DISABLED = 0,
796    CASS_LOG_CRITICAL = 1,
797    CASS_LOG_ERROR = 2,
798    CASS_LOG_WARN = 3,
799    CASS_LOG_INFO = 4,
800    CASS_LOG_DEBUG = 5,
801    CASS_LOG_TRACE = 6,
802    CASS_LOG_LAST_ENTRY = 7,
803}
804pub use self::CassLogLevel_ as CassLogLevel;
805#[repr(u32)]
806#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
807pub enum CassSslVerifyFlags_ {
808    CASS_SSL_VERIFY_NONE = 0,
809    CASS_SSL_VERIFY_PEER_CERT = 1,
810    CASS_SSL_VERIFY_PEER_IDENTITY = 2,
811    CASS_SSL_VERIFY_PEER_IDENTITY_DNS = 4,
812}
813pub use self::CassSslVerifyFlags_ as CassSslVerifyFlags;
814#[repr(u32)]
815#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
816pub enum CassProtocolVersion_ {
817    #[doc = "< Deprecated"]
818    CASS_PROTOCOL_VERSION_V1 = 1,
819    #[doc = "< Deprecated"]
820    CASS_PROTOCOL_VERSION_V2 = 2,
821    CASS_PROTOCOL_VERSION_V3 = 3,
822    CASS_PROTOCOL_VERSION_V4 = 4,
823    CASS_PROTOCOL_VERSION_V5 = 5,
824    #[doc = "< Only supported when using the DSE"]
825    #[doc = "driver with DataStax Enterprise"]
826    CASS_PROTOCOL_VERSION_DSEV1 = 65,
827    #[doc = "< Only supported when using the DSE"]
828    #[doc = "driver with DataStax Enterprise"]
829    CASS_PROTOCOL_VERSION_DSEV2 = 66,
830}
831pub use self::CassProtocolVersion_ as CassProtocolVersion;
832#[repr(u32)]
833#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
834pub enum CassErrorSource_ {
835    CASS_ERROR_SOURCE_NONE = 0,
836    CASS_ERROR_SOURCE_LIB = 1,
837    CASS_ERROR_SOURCE_SERVER = 2,
838    CASS_ERROR_SOURCE_SSL = 3,
839    CASS_ERROR_SOURCE_COMPRESSION = 4,
840}
841pub use self::CassErrorSource_ as CassErrorSource;
842#[repr(u32)]
843#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
844pub enum CassError_ {
845    CASS_OK = 0,
846    CASS_ERROR_LIB_BAD_PARAMS = 16777217,
847    CASS_ERROR_LIB_NO_STREAMS = 16777218,
848    CASS_ERROR_LIB_UNABLE_TO_INIT = 16777219,
849    CASS_ERROR_LIB_MESSAGE_ENCODE = 16777220,
850    CASS_ERROR_LIB_HOST_RESOLUTION = 16777221,
851    CASS_ERROR_LIB_UNEXPECTED_RESPONSE = 16777222,
852    CASS_ERROR_LIB_REQUEST_QUEUE_FULL = 16777223,
853    CASS_ERROR_LIB_NO_AVAILABLE_IO_THREAD = 16777224,
854    CASS_ERROR_LIB_WRITE_ERROR = 16777225,
855    CASS_ERROR_LIB_NO_HOSTS_AVAILABLE = 16777226,
856    CASS_ERROR_LIB_INDEX_OUT_OF_BOUNDS = 16777227,
857    CASS_ERROR_LIB_INVALID_ITEM_COUNT = 16777228,
858    CASS_ERROR_LIB_INVALID_VALUE_TYPE = 16777229,
859    CASS_ERROR_LIB_REQUEST_TIMED_OUT = 16777230,
860    CASS_ERROR_LIB_UNABLE_TO_SET_KEYSPACE = 16777231,
861    CASS_ERROR_LIB_CALLBACK_ALREADY_SET = 16777232,
862    CASS_ERROR_LIB_INVALID_STATEMENT_TYPE = 16777233,
863    CASS_ERROR_LIB_NAME_DOES_NOT_EXIST = 16777234,
864    CASS_ERROR_LIB_UNABLE_TO_DETERMINE_PROTOCOL = 16777235,
865    CASS_ERROR_LIB_NULL_VALUE = 16777236,
866    CASS_ERROR_LIB_NOT_IMPLEMENTED = 16777237,
867    CASS_ERROR_LIB_UNABLE_TO_CONNECT = 16777238,
868    CASS_ERROR_LIB_UNABLE_TO_CLOSE = 16777239,
869    CASS_ERROR_LIB_NO_PAGING_STATE = 16777240,
870    CASS_ERROR_LIB_PARAMETER_UNSET = 16777241,
871    CASS_ERROR_LIB_INVALID_ERROR_RESULT_TYPE = 16777242,
872    CASS_ERROR_LIB_INVALID_FUTURE_TYPE = 16777243,
873    CASS_ERROR_LIB_INTERNAL_ERROR = 16777244,
874    CASS_ERROR_LIB_INVALID_CUSTOM_TYPE = 16777245,
875    CASS_ERROR_LIB_INVALID_DATA = 16777246,
876    CASS_ERROR_LIB_NOT_ENOUGH_DATA = 16777247,
877    CASS_ERROR_LIB_INVALID_STATE = 16777248,
878    CASS_ERROR_LIB_NO_CUSTOM_PAYLOAD = 16777249,
879    CASS_ERROR_LIB_EXECUTION_PROFILE_INVALID = 16777250,
880    CASS_ERROR_LIB_NO_TRACING_ID = 16777251,
881    CASS_ERROR_SERVER_SERVER_ERROR = 33554432,
882    CASS_ERROR_SERVER_PROTOCOL_ERROR = 33554442,
883    CASS_ERROR_SERVER_BAD_CREDENTIALS = 33554688,
884    CASS_ERROR_SERVER_UNAVAILABLE = 33558528,
885    CASS_ERROR_SERVER_OVERLOADED = 33558529,
886    CASS_ERROR_SERVER_IS_BOOTSTRAPPING = 33558530,
887    CASS_ERROR_SERVER_TRUNCATE_ERROR = 33558531,
888    CASS_ERROR_SERVER_WRITE_TIMEOUT = 33558784,
889    CASS_ERROR_SERVER_READ_TIMEOUT = 33559040,
890    CASS_ERROR_SERVER_READ_FAILURE = 33559296,
891    CASS_ERROR_SERVER_FUNCTION_FAILURE = 33559552,
892    CASS_ERROR_SERVER_WRITE_FAILURE = 33559808,
893    CASS_ERROR_SERVER_SYNTAX_ERROR = 33562624,
894    CASS_ERROR_SERVER_UNAUTHORIZED = 33562880,
895    CASS_ERROR_SERVER_INVALID_QUERY = 33563136,
896    CASS_ERROR_SERVER_CONFIG_ERROR = 33563392,
897    CASS_ERROR_SERVER_ALREADY_EXISTS = 33563648,
898    CASS_ERROR_SERVER_UNPREPARED = 33563904,
899    CASS_ERROR_SSL_INVALID_CERT = 50331649,
900    CASS_ERROR_SSL_INVALID_PRIVATE_KEY = 50331650,
901    CASS_ERROR_SSL_NO_PEER_CERT = 50331651,
902    CASS_ERROR_SSL_INVALID_PEER_CERT = 50331652,
903    CASS_ERROR_SSL_IDENTITY_MISMATCH = 50331653,
904    CASS_ERROR_SSL_PROTOCOL_ERROR = 50331654,
905    CASS_ERROR_SSL_CLOSED = 50331655,
906    CASS_ERROR_LAST_ENTRY = 50331656,
907}
908pub use self::CassError_ as CassError;
909#[doc = " A callback that's notified when the future is set."]
910#[doc = ""]
911#[doc = " @param[in] message"]
912#[doc = " @param[in] data user defined data provided when the callback"]
913#[doc = " was registered."]
914#[doc = ""]
915#[doc = " @see cass_future_set_callback()"]
916pub type CassFutureCallback = ::std::option::Option<
917    unsafe extern "C" fn(future: *mut CassFuture, data: *mut ::std::os::raw::c_void),
918>;
919#[doc = " A log message."]
920#[repr(C)]
921#[derive(Debug, Copy, Clone)]
922pub struct CassLogMessage_ {
923    #[doc = " The millisecond timestamp (since the Epoch) when the message was logged"]
924    pub time_ms: cass_uint64_t,
925    #[doc = "< The severity of the log message"]
926    pub severity: CassLogLevel,
927    #[doc = "< The file where the message was logged"]
928    pub file: *const ::std::os::raw::c_char,
929    #[doc = "< The line in the file where the message was logged"]
930    pub line: ::std::os::raw::c_int,
931    #[doc = "< The function where the message was logged"]
932    pub function: *const ::std::os::raw::c_char,
933    #[doc = "< The message"]
934    pub message: [::std::os::raw::c_char; 1024usize],
935}
936#[doc = " A log message."]
937pub type CassLogMessage = CassLogMessage_;
938#[doc = " A callback that's used to handle logging."]
939#[doc = ""]
940#[doc = " @param[in] message"]
941#[doc = " @param[in] data user defined data provided when the callback"]
942#[doc = " was registered."]
943#[doc = ""]
944#[doc = " @see cass_log_set_callback()"]
945pub type CassLogCallback = ::std::option::Option<
946    unsafe extern "C" fn(message: *const CassLogMessage, data: *mut ::std::os::raw::c_void),
947>;
948#[doc = " A custom malloc function. This function should allocate \"size\" bytes and"]
949#[doc = " return a pointer to that memory"]
950#[doc = ""]
951#[doc = " @param[in] size The size of the memory to allocate"]
952#[doc = ""]
953#[doc = " @see CassFreeFunction"]
954#[doc = " @see cass_alloc_set_functions()"]
955pub type CassMallocFunction =
956    ::std::option::Option<unsafe extern "C" fn(size: usize) -> *mut ::std::os::raw::c_void>;
957#[doc = " A custom realloc function. This function attempts to change the size of the"]
958#[doc = " memory pointed to by \"ptr\". If the memory cannot be resized then new memory"]
959#[doc = " should be allocated and contain the contents of the original memory at \"ptr\"."]
960#[doc = ""]
961#[doc = " @param[in] ptr A pointer to the original memory. If NULL it should behave the"]
962#[doc = " same as \"CassMallocFunction\""]
963#[doc = " @param[in] size The size of the memory to allocate/resize."]
964#[doc = ""]
965#[doc = " @see CassMallocFunction"]
966#[doc = " @see CassFreeFunction"]
967#[doc = " @see cass_alloc_set_functions()"]
968pub type CassReallocFunction = ::std::option::Option<
969    unsafe extern "C" fn(
970        ptr: *mut ::std::os::raw::c_void,
971        size: usize,
972    ) -> *mut ::std::os::raw::c_void,
973>;
974#[doc = " A custom free function. This function deallocates the memory pointed to by"]
975#[doc = " \"ptr\" that was previously allocated by a \"CassMallocFunction\" or"]
976#[doc = " \"CassReallocFunction\" function."]
977#[doc = ""]
978#[doc = " @param[in] ptr A pointer to memory that should be deallocated. If NULL then"]
979#[doc = " this will perform no operation."]
980#[doc = ""]
981#[doc = " @see CassMallocFunction"]
982#[doc = " @see CassReallocFunction"]
983#[doc = " @see cass_alloc_set_functions()"]
984pub type CassFreeFunction =
985    ::std::option::Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void)>;
986#[repr(C)]
987#[derive(Debug, Copy, Clone)]
988pub struct CassAuthenticator_ {
989    _unused: [u8; 0],
990}
991#[doc = " An authenticator."]
992#[doc = ""]
993#[doc = " @struct CassAuthenticator"]
994pub type CassAuthenticator = CassAuthenticator_;
995#[doc = " A callback used to initiate an authentication exchange."]
996#[doc = ""]
997#[doc = " Use cass_authenticator_set_response() to set the response token."]
998#[doc = ""]
999#[doc = " Use cass_authenticator_set_error() if an error occurred during"]
1000#[doc = " initialization."]
1001#[doc = ""]
1002#[doc = " @param[in] auth"]
1003#[doc = " @param[in] data"]
1004pub type CassAuthenticatorInitialCallback = ::std::option::Option<
1005    unsafe extern "C" fn(auth: *mut CassAuthenticator, data: *mut ::std::os::raw::c_void),
1006>;
1007#[doc = " A callback used when an authentication challenge initiated"]
1008#[doc = " by the server."]
1009#[doc = ""]
1010#[doc = " Use cass_authenticator_set_response() to set the response token."]
1011#[doc = ""]
1012#[doc = " Use cass_authenticator_set_error() if an error occurred during the"]
1013#[doc = " challenge."]
1014#[doc = ""]
1015#[doc = " @param[in] auth"]
1016#[doc = " @param[in] data"]
1017#[doc = " @param[in] token"]
1018#[doc = " @param[in] token_size"]
1019pub type CassAuthenticatorChallengeCallback = ::std::option::Option<
1020    unsafe extern "C" fn(
1021        auth: *mut CassAuthenticator,
1022        data: *mut ::std::os::raw::c_void,
1023        token: *const ::std::os::raw::c_char,
1024        token_size: usize,
1025    ),
1026>;
1027#[doc = " A callback used to indicate the success of the authentication"]
1028#[doc = " exchange."]
1029#[doc = ""]
1030#[doc = " Use cass_authenticator_set_error() if an error occurred while evaluating"]
1031#[doc = " the success token."]
1032#[doc = ""]
1033#[doc = " @param[in] auth"]
1034#[doc = " @param[in] data"]
1035#[doc = " @param[in] token"]
1036#[doc = " @param[in] token_size"]
1037pub type CassAuthenticatorSuccessCallback = ::std::option::Option<
1038    unsafe extern "C" fn(
1039        auth: *mut CassAuthenticator,
1040        data: *mut ::std::os::raw::c_void,
1041        token: *const ::std::os::raw::c_char,
1042        token_size: usize,
1043    ),
1044>;
1045#[doc = " A callback used to cleanup resources that were acquired during"]
1046#[doc = " the process of the authentication exchange. This is called after"]
1047#[doc = " the termination of the exchange regardless of the outcome."]
1048#[doc = ""]
1049#[doc = " @param[in] auth"]
1050#[doc = " @param[in] data"]
1051pub type CassAuthenticatorCleanupCallback = ::std::option::Option<
1052    unsafe extern "C" fn(auth: *mut CassAuthenticator, data: *mut ::std::os::raw::c_void),
1053>;
1054#[doc = " A callback used to cleanup resources."]
1055#[doc = ""]
1056#[doc = " @param[in] data"]
1057pub type CassAuthenticatorDataCleanupCallback =
1058    ::std::option::Option<unsafe extern "C" fn(data: *mut ::std::os::raw::c_void)>;
1059#[doc = " Authenticator callbacks"]
1060#[repr(C)]
1061#[derive(Debug, Copy, Clone)]
1062pub struct CassAuthenticatorCallbacks_ {
1063    pub initial_callback: CassAuthenticatorInitialCallback,
1064    pub challenge_callback: CassAuthenticatorChallengeCallback,
1065    pub success_callback: CassAuthenticatorSuccessCallback,
1066    pub cleanup_callback: CassAuthenticatorCleanupCallback,
1067}
1068#[doc = " Authenticator callbacks"]
1069pub type CassAuthenticatorCallbacks = CassAuthenticatorCallbacks_;
1070#[repr(u32)]
1071#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1072pub enum CassHostListenerEvent_ {
1073    CASS_HOST_LISTENER_EVENT_UP = 0,
1074    CASS_HOST_LISTENER_EVENT_DOWN = 1,
1075    CASS_HOST_LISTENER_EVENT_ADD = 2,
1076    CASS_HOST_LISTENER_EVENT_REMOVE = 3,
1077}
1078pub use self::CassHostListenerEvent_ as CassHostListenerEvent;
1079#[doc = " A callback used to indicate the host state for a node in the cluster."]
1080#[doc = ""]
1081#[doc = " @param[in] event"]
1082#[doc = " @param[in] address"]
1083#[doc = " @param[in] data"]
1084#[doc = " @see cass_cluster_set_host_listener_callback()"]
1085pub type CassHostListenerCallback = ::std::option::Option<
1086    unsafe extern "C" fn(
1087        event: CassHostListenerEvent,
1088        address: CassInet,
1089        data: *mut ::std::os::raw::c_void,
1090    ),
1091>;
1092#[repr(C)]
1093#[derive(Debug, Copy, Clone)]
1094pub struct CassExecProfile_ {
1095    _unused: [u8; 0],
1096}
1097#[doc = " An execution profile object provides a mechanism to group together a set of"]
1098#[doc = " configuration options and reuse them across different statement executions."]
1099#[doc = " This feature is useful when dealing with different query workloads."]
1100#[doc = ""]
1101#[doc = " @struct CassExecProfile"]
1102pub type CassExecProfile = CassExecProfile_;
1103extern "C" {
1104    #[doc = " Creates a new execution profile."]
1105    #[doc = ""]
1106    #[doc = " @public @memberof CassExecProfile"]
1107    #[doc = ""]
1108    #[doc = " @return Returns a execution profile that must be freed."]
1109    #[doc = ""]
1110    #[doc = " @see cass_execution_profile_free()"]
1111    pub fn cass_execution_profile_new() -> *mut CassExecProfile;
1112}
1113extern "C" {
1114    #[doc = " Frees a execution profile instance."]
1115    #[doc = ""]
1116    #[doc = " @public @memberof CassExecProfile"]
1117    #[doc = ""]
1118    #[doc = " @param[in] profile"]
1119    pub fn cass_execution_profile_free(profile: *mut CassExecProfile);
1120}
1121extern "C" {
1122    #[doc = " Sets the timeout waiting for a response from a node."]
1123    #[doc = ""]
1124    #[doc = " <b>Default:</b> Disabled (uses the cluster request timeout)"]
1125    #[doc = ""]
1126    #[doc = " @public @memberof CassExecProfile"]
1127    #[doc = ""]
1128    #[doc = " @param[in] profile"]
1129    #[doc = " @param[in] timeout_ms Request timeout in milliseconds. Use 0 for no timeout"]
1130    #[doc = " or CASS_UINT64_MAX to disable."]
1131    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1132    #[doc = ""]
1133    #[doc = " @see cass_statement_set_request_timeout()"]
1134    pub fn cass_execution_profile_set_request_timeout(
1135        profile: *mut CassExecProfile,
1136        timeout_ms: cass_uint64_t,
1137    ) -> CassError;
1138}
1139extern "C" {
1140    #[doc = " Sets the consistency level."]
1141    #[doc = ""]
1142    #[doc = " <b>Default:</b> Disabled (uses the default consistency)"]
1143    #[doc = ""]
1144    #[doc = " @public @memberof CassExecProfile"]
1145    #[doc = ""]
1146    #[doc = " @param[in] profile"]
1147    #[doc = " @param[in] consistency"]
1148    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1149    #[doc = ""]
1150    #[doc = " @see cass_statement_set_consistency()"]
1151    pub fn cass_execution_profile_set_consistency(
1152        profile: *mut CassExecProfile,
1153        consistency: CassConsistency,
1154    ) -> CassError;
1155}
1156extern "C" {
1157    #[doc = " Sets the serial consistency level."]
1158    #[doc = ""]
1159    #[doc = " <b>Default:</b> Disabled (uses the default serial consistency)"]
1160    #[doc = ""]
1161    #[doc = " @public @memberof CassExecProfile"]
1162    #[doc = ""]
1163    #[doc = " @param[in] profile"]
1164    #[doc = " @param[in] serial_consistency"]
1165    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1166    #[doc = ""]
1167    #[doc = " @see cass_statement_set_serial_consistency()"]
1168    pub fn cass_execution_profile_set_serial_consistency(
1169        profile: *mut CassExecProfile,
1170        serial_consistency: CassConsistency,
1171    ) -> CassError;
1172}
1173extern "C" {
1174    #[doc = " Configures the execution profile to use round-robin load balancing."]
1175    #[doc = ""]
1176    #[doc = " The driver discovers all nodes in a cluster and cycles through"]
1177    #[doc = " them per request. All are considered 'local'."]
1178    #[doc = ""]
1179    #[doc = " <b>Note:</b> Profile-based load balancing policy is disabled by default;"]
1180    #[doc = " cluster load balancing policy is used when profile does not contain a policy."]
1181    #[doc = ""]
1182    #[doc = " @public @memberof CassExecProfile"]
1183    #[doc = ""]
1184    #[doc = " @param[in] profile"]
1185    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1186    #[doc = ""]
1187    #[doc = " @see cass_cluster_set_load_balance_round_robin()"]
1188    pub fn cass_execution_profile_set_load_balance_round_robin(
1189        profile: *mut CassExecProfile,
1190    ) -> CassError;
1191}
1192extern "C" {
1193    #[doc = " Configures the execution profile to use DC-aware load balancing."]
1194    #[doc = " For each query, all live nodes in a primary 'local' DC are tried first,"]
1195    #[doc = " followed by any node from other DCs."]
1196    #[doc = ""]
1197    #[doc = " <b>Note:</b> Profile-based load balancing policy is disabled by default;"]
1198    #[doc = " cluster load balancing policy is used when profile does not contain a policy."]
1199    #[doc = ""]
1200    #[doc = " @deprecated The remote DC settings for DC-aware are not suitable for most"]
1201    #[doc = " scenarios that require DC failover. There is also unhandled gap between"]
1202    #[doc = " replication factor number of nodes failing and the full cluster failing. Only"]
1203    #[doc = " the remote DC settings are being deprecated."]
1204    #[doc = ""]
1205    #[doc = " @public @memberof CassExecProfile"]
1206    #[doc = ""]
1207    #[doc = " @param[in] profile"]
1208    #[doc = " @param[in] local_dc The primary data center to try first"]
1209    #[doc = " @param[in] used_hosts_per_remote_dc The number of hosts used in each remote"]
1210    #[doc = " DC if no hosts are available in the local dc (<b>deprecated</b>)"]
1211    #[doc = " @param[in] allow_remote_dcs_for_local_cl Allows remote hosts to be used if no"]
1212    #[doc = " local dc hosts are available and the consistency level is LOCAL_ONE or"]
1213    #[doc = " LOCAL_QUORUM (<b>deprecated</b>)"]
1214    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1215    #[doc = ""]
1216    #[doc = " @see cass_cluster_set_load_balance_dc_aware()"]
1217    pub fn cass_execution_profile_set_load_balance_dc_aware(
1218        profile: *mut CassExecProfile,
1219        local_dc: *const ::std::os::raw::c_char,
1220        used_hosts_per_remote_dc: ::std::os::raw::c_uint,
1221        allow_remote_dcs_for_local_cl: cass_bool_t,
1222    ) -> CassError;
1223}
1224extern "C" {
1225    #[doc = " Same as cass_execution_profile_set_load_balance_dc_aware(), but with lengths"]
1226    #[doc = " for string parameters."]
1227    #[doc = ""]
1228    #[doc = " @deprecated The remote DC settings for DC-aware are not suitable for most"]
1229    #[doc = " scenarios that require DC failover. There is also unhandled gap between"]
1230    #[doc = " replication factor number of nodes failing and the full cluster failing. Only"]
1231    #[doc = " the remote DC settings are being deprecated."]
1232    #[doc = ""]
1233    #[doc = " @public @memberof CassExecProfile"]
1234    #[doc = ""]
1235    #[doc = " @param[in] profile"]
1236    #[doc = " @param[in] local_dc"]
1237    #[doc = " @param[in] local_dc_length"]
1238    #[doc = " @param[in] used_hosts_per_remote_dc (<b>deprecated</b>)"]
1239    #[doc = " @param[in] allow_remote_dcs_for_local_cl (<b>deprecated</b>)"]
1240    #[doc = " @return same as cass_execution_profile_set_load_balance_dc_aware()"]
1241    #[doc = ""]
1242    #[doc = " @see cass_execution_profile_set_load_balance_dc_aware()"]
1243    #[doc = " @see cass_cluster_set_load_balance_dc_aware_n()"]
1244    pub fn cass_execution_profile_set_load_balance_dc_aware_n(
1245        profile: *mut CassExecProfile,
1246        local_dc: *const ::std::os::raw::c_char,
1247        local_dc_length: usize,
1248        used_hosts_per_remote_dc: ::std::os::raw::c_uint,
1249        allow_remote_dcs_for_local_cl: cass_bool_t,
1250    ) -> CassError;
1251}
1252extern "C" {
1253    #[doc = " Configures the execution profile to use token-aware request routing or not."]
1254    #[doc = ""]
1255    #[doc = " <b>Important:</b> Token-aware routing depends on keyspace metadata."]
1256    #[doc = " For this reason enabling token-aware routing will also enable retrieving"]
1257    #[doc = " and updating keyspace schema metadata."]
1258    #[doc = ""]
1259    #[doc = " <b>Default:</b> cass_true (enabled)."]
1260    #[doc = ""]
1261    #[doc = " This routing policy composes the base routing policy, routing"]
1262    #[doc = " requests first to replicas on nodes considered 'local' by"]
1263    #[doc = " the base load balancing policy."]
1264    #[doc = ""]
1265    #[doc = " <b>Note:</b> Execution profiles use the cluster-level load balancing policy"]
1266    #[doc = " unless enabled. This setting is not applicable unless a load balancing policy"]
1267    #[doc = " is enabled on the execution profile."]
1268    #[doc = ""]
1269    #[doc = " @public @memberof CassExecProfile"]
1270    #[doc = ""]
1271    #[doc = " @param[in] profile"]
1272    #[doc = " @param[in] enabled"]
1273    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1274    #[doc = ""]
1275    #[doc = " @see cass_cluster_set_token_aware_routing()"]
1276    pub fn cass_execution_profile_set_token_aware_routing(
1277        profile: *mut CassExecProfile,
1278        enabled: cass_bool_t,
1279    ) -> CassError;
1280}
1281extern "C" {
1282    #[doc = " Configures the execution profile's token-aware routing to randomly shuffle"]
1283    #[doc = " replicas. This can reduce the effectiveness of server-side caching, but it"]
1284    #[doc = " can better distribute load over replicas for a given partition key."]
1285    #[doc = ""]
1286    #[doc = " <b>Note:</b> Token-aware routing must be enabled and a load balancing policy"]
1287    #[doc = " must be enabled on the execution profile for the setting to be applicable."]
1288    #[doc = ""]
1289    #[doc = " <b>Default:</b> cass_true (enabled)."]
1290    #[doc = ""]
1291    #[doc = " @public @memberof CassExecProfile"]
1292    #[doc = ""]
1293    #[doc = " @param[in] profile"]
1294    #[doc = " @param[in] enabled"]
1295    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1296    #[doc = ""]
1297    #[doc = " @see cass_cluster_set_token_aware_routing_shuffle_replicas()"]
1298    pub fn cass_execution_profile_set_token_aware_routing_shuffle_replicas(
1299        profile: *mut CassExecProfile,
1300        enabled: cass_bool_t,
1301    ) -> CassError;
1302}
1303extern "C" {
1304    #[doc = " Configures the execution profile to use latency-aware request routing or not."]
1305    #[doc = ""]
1306    #[doc = " <b>Note:</b> Execution profiles use the cluster-level load balancing policy"]
1307    #[doc = " unless enabled. This setting is not applicable unless a load balancing policy"]
1308    #[doc = " is enabled on the execution profile."]
1309    #[doc = ""]
1310    #[doc = " <b>Default:</b> cass_false (disabled)."]
1311    #[doc = ""]
1312    #[doc = " This routing policy is a top-level routing policy. It uses the"]
1313    #[doc = " base routing policy to determine locality (dc-aware) and/or"]
1314    #[doc = " placement (token-aware) before considering the latency."]
1315    #[doc = ""]
1316    #[doc = " @public @memberof CassExecProfile"]
1317    #[doc = ""]
1318    #[doc = " @param[in] profile"]
1319    #[doc = " @param[in] enabled"]
1320    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1321    #[doc = ""]
1322    #[doc = " @see cass_cluster_set_latency_aware_routing()"]
1323    pub fn cass_execution_profile_set_latency_aware_routing(
1324        profile: *mut CassExecProfile,
1325        enabled: cass_bool_t,
1326    ) -> CassError;
1327}
1328extern "C" {
1329    #[doc = " Configures the execution profile's settings for latency-aware request"]
1330    #[doc = " routing."]
1331    #[doc = ""]
1332    #[doc = " <b>Note:</b> Execution profiles use the cluster-level load balancing policy"]
1333    #[doc = " unless enabled. This setting is not applicable unless a load balancing policy"]
1334    #[doc = " is enabled on the execution profile."]
1335    #[doc = ""]
1336    #[doc = " <b>Defaults:</b>"]
1337    #[doc = ""]
1338    #[doc = " <ul>"]
1339    #[doc = "   <li>exclusion_threshold: 2.0</li>"]
1340    #[doc = "   <li>scale_ms: 100 milliseconds</li>"]
1341    #[doc = "   <li>retry_period_ms: 10,000 milliseconds (10 seconds)</li>"]
1342    #[doc = "   <li>update_rate_ms: 100 milliseconds</li>"]
1343    #[doc = "   <li>min_measured: 50</li>"]
1344    #[doc = " </ul>"]
1345    #[doc = ""]
1346    #[doc = " @public @memberof CassExecProfile"]
1347    #[doc = ""]
1348    #[doc = " @param[in] profile"]
1349    #[doc = " @param[in] exclusion_threshold Controls how much worse the latency must be"]
1350    #[doc = " compared to the average latency of the best performing node before it"]
1351    #[doc = " penalized."]
1352    #[doc = " @param[in] scale_ms Controls the weight given to older latencies when"]
1353    #[doc = " calculating the average latency of a node. A bigger scale will give more"]
1354    #[doc = " weight to older latency measurements."]
1355    #[doc = " @param[in] retry_period_ms The amount of time a node is penalized by the"]
1356    #[doc = " policy before being given a second chance when the current average latency"]
1357    #[doc = " exceeds the calculated threshold"]
1358    #[doc = " (exclusion_threshold * best_average_latency)."]
1359    #[doc = " @param[in] update_rate_ms The rate at  which the best average latency is"]
1360    #[doc = " recomputed."]
1361    #[doc = " @param[in] min_measured The minimum number of measurements per-host required"]
1362    #[doc = " to be considered by the policy."]
1363    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1364    #[doc = ""]
1365    #[doc = " @see cass_cluster_set_latency_aware_routing_settings()"]
1366    pub fn cass_execution_profile_set_latency_aware_routing_settings(
1367        profile: *mut CassExecProfile,
1368        exclusion_threshold: cass_double_t,
1369        scale_ms: cass_uint64_t,
1370        retry_period_ms: cass_uint64_t,
1371        update_rate_ms: cass_uint64_t,
1372        min_measured: cass_uint64_t,
1373    ) -> CassError;
1374}
1375extern "C" {
1376    #[doc = " Sets/Appends whitelist hosts for the execution profile. The first call sets"]
1377    #[doc = " the whitelist hosts and any subsequent calls appends additional hosts."]
1378    #[doc = " Passing an empty string will clear and disable the whitelist. White space is"]
1379    #[doc = " striped from the hosts."]
1380    #[doc = ""]
1381    #[doc = " This policy filters requests to all other policies, only allowing requests"]
1382    #[doc = " to the hosts contained in the whitelist. Any host not in the whitelist will"]
1383    #[doc = " be ignored and a connection will not be established. This policy is useful"]
1384    #[doc = " for ensuring that the driver will only connect to a predefined set of hosts."]
1385    #[doc = ""]
1386    #[doc = " Examples: \"127.0.0.1\" \"127.0.0.1,127.0.0.2\""]
1387    #[doc = ""]
1388    #[doc = " <b>Note:</b> Execution profiles use the cluster-level load balancing policy"]
1389    #[doc = " unless enabled. This setting is not applicable unless a load balancing policy"]
1390    #[doc = " is enabled on the execution profile."]
1391    #[doc = ""]
1392    #[doc = " @public @memberof CassExecProfile"]
1393    #[doc = ""]
1394    #[doc = " @param[in] profile"]
1395    #[doc = " @param[in] hosts A comma delimited list of addresses. An empty string will"]
1396    #[doc = " clear the whitelist hosts. The string is copied into the cluster"]
1397    #[doc = " configuration; the memory pointed to by this parameter can be freed after"]
1398    #[doc = " this call."]
1399    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1400    #[doc = ""]
1401    #[doc = " @see cass_cluster_set_whitelist_filtering()"]
1402    pub fn cass_execution_profile_set_whitelist_filtering(
1403        profile: *mut CassExecProfile,
1404        hosts: *const ::std::os::raw::c_char,
1405    ) -> CassError;
1406}
1407extern "C" {
1408    #[doc = " Same as cass_execution_profile_set_whitelist_filtering(), but with lengths"]
1409    #[doc = " for string parameters."]
1410    #[doc = ""]
1411    #[doc = " @public @memberof CassExecProfile"]
1412    #[doc = ""]
1413    #[doc = " @param[in] profile"]
1414    #[doc = " @param[in] hosts"]
1415    #[doc = " @param[in] hosts_length"]
1416    #[doc = " @return same as cass_execution_profile_set_whitelist_filtering()"]
1417    #[doc = ""]
1418    #[doc = " @see cass_execution_profile_set_whitelist_filtering()"]
1419    #[doc = " @see cass_cluster_set_whitelist_filtering()"]
1420    pub fn cass_execution_profile_set_whitelist_filtering_n(
1421        profile: *mut CassExecProfile,
1422        hosts: *const ::std::os::raw::c_char,
1423        hosts_length: usize,
1424    ) -> CassError;
1425}
1426extern "C" {
1427    #[doc = " Sets/Appends blacklist hosts for the execution profile. The first call sets"]
1428    #[doc = " the blacklist hosts and any subsequent calls appends additional hosts."]
1429    #[doc = " Passing an empty string will clear and disable the blacklist. White space is"]
1430    #[doc = " striped from the hosts."]
1431    #[doc = ""]
1432    #[doc = " This policy filters requests to all other policies, only allowing requests"]
1433    #[doc = " to the hosts not contained in the blacklist. Any host in the blacklist will"]
1434    #[doc = " be ignored and a connection will not be established. This policy is useful"]
1435    #[doc = " for ensuring that the driver will not connect to a predefined set of hosts."]
1436    #[doc = ""]
1437    #[doc = " Examples: \"127.0.0.1\" \"127.0.0.1,127.0.0.2\""]
1438    #[doc = ""]
1439    #[doc = " <b>Note:</b> Execution profiles use the cluster-level load balancing policy"]
1440    #[doc = " unless enabled. This setting is not applicable unless a load balancing policy"]
1441    #[doc = " is enabled on the execution profile."]
1442    #[doc = ""]
1443    #[doc = " @public @memberof CassExecProfile"]
1444    #[doc = ""]
1445    #[doc = " @param[in] profile"]
1446    #[doc = " @param[in] hosts A comma delimited list of addresses. An empty string will"]
1447    #[doc = " clear the blacklist hosts. The string is copied into the cluster"]
1448    #[doc = " configuration; the memory pointed to by this parameter can be freed after"]
1449    #[doc = " this call."]
1450    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1451    #[doc = ""]
1452    #[doc = " @see cass_cluster_set_blacklist_filtering()"]
1453    pub fn cass_execution_profile_set_blacklist_filtering(
1454        profile: *mut CassExecProfile,
1455        hosts: *const ::std::os::raw::c_char,
1456    ) -> CassError;
1457}
1458extern "C" {
1459    #[doc = " Same as cass_execution_profile_set_blacklist_filtering(), but with lengths"]
1460    #[doc = " for string parameters."]
1461    #[doc = ""]
1462    #[doc = " @public @memberof CassExecProfile"]
1463    #[doc = ""]
1464    #[doc = " @param[in] profile"]
1465    #[doc = " @param[in] hosts"]
1466    #[doc = " @param[in] hosts_length"]
1467    #[doc = " @return same as cass_execution_profile_set_blacklist_filtering_hosts()"]
1468    #[doc = ""]
1469    #[doc = " @see cass_execution_profile_set_blacklist_filtering()"]
1470    #[doc = " @see cass_cluster_set_blacklist_filtering()"]
1471    pub fn cass_execution_profile_set_blacklist_filtering_n(
1472        profile: *mut CassExecProfile,
1473        hosts: *const ::std::os::raw::c_char,
1474        hosts_length: usize,
1475    ) -> CassError;
1476}
1477extern "C" {
1478    #[doc = " Same as cass_execution_profile_set_whitelist_filtering(), but whitelist all"]
1479    #[doc = " hosts of a dc."]
1480    #[doc = ""]
1481    #[doc = " Examples: \"dc1\", \"dc1,dc2\""]
1482    #[doc = ""]
1483    #[doc = " @public @memberof CassExecProfile"]
1484    #[doc = ""]
1485    #[doc = " @param[in] profile"]
1486    #[doc = " @param[in] dcs A comma delimited list of dcs. An empty string will clear the"]
1487    #[doc = " whitelist dcs. The string is copied into the cluster configuration; the"]
1488    #[doc = " memory pointed to by this parameter can be freed after this call."]
1489    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1490    #[doc = ""]
1491    #[doc = " @see cass_cluster_set_whitelist_dc_filtering()"]
1492    pub fn cass_execution_profile_set_whitelist_dc_filtering(
1493        profile: *mut CassExecProfile,
1494        dcs: *const ::std::os::raw::c_char,
1495    ) -> CassError;
1496}
1497extern "C" {
1498    #[doc = " Same as cass_execution_profile_set_whitelist_dc_filtering(), but with lengths"]
1499    #[doc = " for string parameters."]
1500    #[doc = ""]
1501    #[doc = " @public @memberof CassExecProfile"]
1502    #[doc = ""]
1503    #[doc = " @param[in] profile"]
1504    #[doc = " @param[in] dcs"]
1505    #[doc = " @param[in] dcs_length"]
1506    #[doc = " @return same as cass_execution_profile_set_whitelist_dc_filtering()"]
1507    #[doc = ""]
1508    #[doc = " @see cass_execution_profile_set_whitelist_dc_filtering()"]
1509    #[doc = " @see cass_cluster_set_whitelist_dc_filtering()"]
1510    pub fn cass_execution_profile_set_whitelist_dc_filtering_n(
1511        profile: *mut CassExecProfile,
1512        dcs: *const ::std::os::raw::c_char,
1513        dcs_length: usize,
1514    ) -> CassError;
1515}
1516extern "C" {
1517    #[doc = " Same as cass_execution_profile_set_blacklist_filtering(), but blacklist all"]
1518    #[doc = " hosts of a dc."]
1519    #[doc = ""]
1520    #[doc = " Examples: \"dc1\", \"dc1,dc2\""]
1521    #[doc = ""]
1522    #[doc = " @public @memberof CassExecProfile"]
1523    #[doc = ""]
1524    #[doc = " @param[in] profile"]
1525    #[doc = " @param[in] dcs A comma delimited list of dcs. An empty string will clear the"]
1526    #[doc = " blacklist dcs. The string is copied into the cluster configuration; the"]
1527    #[doc = " memory pointed to by this parameter can be freed after this call."]
1528    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1529    #[doc = ""]
1530    #[doc = " @see cass_execution_profile_set_blacklist_filtering()"]
1531    #[doc = " @see cass_cluster_set_blacklist_dc_filtering()"]
1532    pub fn cass_execution_profile_set_blacklist_dc_filtering(
1533        profile: *mut CassExecProfile,
1534        dcs: *const ::std::os::raw::c_char,
1535    ) -> CassError;
1536}
1537extern "C" {
1538    #[doc = " Same as cass_execution_profile_set_blacklist_dc_filtering(), but with lengths"]
1539    #[doc = " for string parameters."]
1540    #[doc = ""]
1541    #[doc = " @public @memberof CassExecProfile"]
1542    #[doc = ""]
1543    #[doc = " @param[in] profile"]
1544    #[doc = " @param[in] dcs"]
1545    #[doc = " @param[in] dcs_length"]
1546    #[doc = " @return same as cass_execution_profile_set_blacklist_dc_filtering()"]
1547    #[doc = ""]
1548    #[doc = " @see cass_execution_profile_set_blacklist_dc_filtering()"]
1549    #[doc = " @see cass_cluster_set_blacklist_dc_filtering()"]
1550    pub fn cass_execution_profile_set_blacklist_dc_filtering_n(
1551        profile: *mut CassExecProfile,
1552        dcs: *const ::std::os::raw::c_char,
1553        dcs_length: usize,
1554    ) -> CassError;
1555}
1556extern "C" {
1557    #[doc = " Sets the execution profile's retry policy."]
1558    #[doc = ""]
1559    #[doc = " <b>Note:</b> Profile-based retry policy is disabled by default; cluster retry"]
1560    #[doc = " policy is used when profile does not contain a policy unless the retry policy"]
1561    #[doc = " was explicitly set on the batch/statement request."]
1562    #[doc = ""]
1563    #[doc = " @public @memberof CassExecProfile"]
1564    #[doc = ""]
1565    #[doc = " @param[in] profile"]
1566    #[doc = " @param[in] retry_policy NULL will clear retry policy from execution profile"]
1567    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1568    #[doc = ""]
1569    #[doc = " @see cass_cluster_set_retry_policy()"]
1570    pub fn cass_execution_profile_set_retry_policy(
1571        profile: *mut CassExecProfile,
1572        retry_policy: *mut CassRetryPolicy,
1573    ) -> CassError;
1574}
1575extern "C" {
1576    #[doc = " Enable constant speculative executions with the supplied settings for the"]
1577    #[doc = " execution profile."]
1578    #[doc = ""]
1579    #[doc = " <b>Note:</b> Profile-based speculative execution policy is disabled by"]
1580    #[doc = " default; cluster speculative execution policy is used when profile does not"]
1581    #[doc = " contain a policy."]
1582    #[doc = ""]
1583    #[doc = " @public @memberof CassExecProfile"]
1584    #[doc = ""]
1585    #[doc = " @param[in] profile"]
1586    #[doc = " @param[in] constant_delay_ms"]
1587    #[doc = " @param[in] max_speculative_executions"]
1588    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
1589    #[doc = ""]
1590    #[doc = " @see cass_cluster_set_constant_speculative_execution_policy()"]
1591    pub fn cass_execution_profile_set_constant_speculative_execution_policy(
1592        profile: *mut CassExecProfile,
1593        constant_delay_ms: cass_int64_t,
1594        max_speculative_executions: ::std::os::raw::c_int,
1595    ) -> CassError;
1596}
1597extern "C" {
1598    #[doc = " Disable speculative executions for the execution profile."]
1599    #[doc = ""]
1600    #[doc = " <b>Note:</b> Profile-based speculative execution policy is disabled by"]
1601    #[doc = " default; cluster speculative execution policy is used when profile does not"]
1602    #[doc = " contain a policy."]
1603    #[doc = ""]
1604    #[doc = " @public @memberof CassExecProfile"]
1605    #[doc = ""]
1606    #[doc = " @param[in] profile"]
1607    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
1608    #[doc = ""]
1609    #[doc = " @see cass_cluster_set_no_speculative_execution_policy()"]
1610    pub fn cass_execution_profile_set_no_speculative_execution_policy(
1611        profile: *mut CassExecProfile,
1612    ) -> CassError;
1613}
1614extern "C" {
1615    #[doc = " Creates a new cluster."]
1616    #[doc = ""]
1617    #[doc = " @public @memberof CassCluster"]
1618    #[doc = ""]
1619    #[doc = " @return Returns a cluster that must be freed."]
1620    #[doc = ""]
1621    #[doc = " @see cass_cluster_free()"]
1622    pub fn cass_cluster_new() -> *mut CassCluster;
1623}
1624extern "C" {
1625    #[doc = " Frees a cluster instance."]
1626    #[doc = ""]
1627    #[doc = " @public @memberof CassCluster"]
1628    #[doc = ""]
1629    #[doc = " @param[in] cluster"]
1630    pub fn cass_cluster_free(cluster: *mut CassCluster);
1631}
1632extern "C" {
1633    #[doc = " Sets/Appends contact points. This *MUST* be set. The first call sets"]
1634    #[doc = " the contact points and any subsequent calls appends additional contact"]
1635    #[doc = " points. Passing an empty string will clear the contact points. White space"]
1636    #[doc = " is striped from the contact points."]
1637    #[doc = ""]
1638    #[doc = " Examples: \"127.0.0.1\" \"127.0.0.1,127.0.0.2\", \"server1.domain.com\""]
1639    #[doc = ""]
1640    #[doc = " @public @memberof CassCluster"]
1641    #[doc = ""]
1642    #[doc = " @param[in] cluster"]
1643    #[doc = " @param[in] contact_points A comma delimited list of addresses or"]
1644    #[doc = " names. An empty string will clear the contact points."]
1645    #[doc = " The string is copied into the cluster configuration; the memory pointed"]
1646    #[doc = " to by this parameter can be freed after this call."]
1647    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1648    pub fn cass_cluster_set_contact_points(
1649        cluster: *mut CassCluster,
1650        contact_points: *const ::std::os::raw::c_char,
1651    ) -> CassError;
1652}
1653extern "C" {
1654    #[doc = " Same as cass_cluster_set_contact_points(), but with lengths for string"]
1655    #[doc = " parameters."]
1656    #[doc = ""]
1657    #[doc = " @public @memberof CassCluster"]
1658    #[doc = ""]
1659    #[doc = " @param[in] cluster"]
1660    #[doc = " @param[in] contact_points"]
1661    #[doc = " @param[in] contact_points_length"]
1662    #[doc = " @return same as cass_cluster_set_contact_points()"]
1663    #[doc = ""]
1664    #[doc = " @see cass_cluster_set_contact_points()"]
1665    pub fn cass_cluster_set_contact_points_n(
1666        cluster: *mut CassCluster,
1667        contact_points: *const ::std::os::raw::c_char,
1668        contact_points_length: usize,
1669    ) -> CassError;
1670}
1671extern "C" {
1672    #[doc = " Sets the port."]
1673    #[doc = ""]
1674    #[doc = " <b>Default:</b> 9042"]
1675    #[doc = ""]
1676    #[doc = " @public @memberof CassCluster"]
1677    #[doc = ""]
1678    #[doc = " @param[in] cluster"]
1679    #[doc = " @param[in] port"]
1680    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1681    pub fn cass_cluster_set_port(
1682        cluster: *mut CassCluster,
1683        port: ::std::os::raw::c_int,
1684    ) -> CassError;
1685}
1686extern "C" {
1687    #[doc = " Sets the local address to bind when connecting to the cluster,"]
1688    #[doc = " if desired."]
1689    #[doc = ""]
1690    #[doc = " @public @memberof CassCluster"]
1691    #[doc = ""]
1692    #[doc = " @param[in] cluster"]
1693    #[doc = " @param[in] name IP address to bind, or empty string for no binding."]
1694    #[doc = " Only numeric addresses are supported; no resolution is done."]
1695    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1696    pub fn cass_cluster_set_local_address(
1697        cluster: *mut CassCluster,
1698        name: *const ::std::os::raw::c_char,
1699    ) -> CassError;
1700}
1701extern "C" {
1702    #[doc = " Same as cass_cluster_set_local_address(), but with lengths for string"]
1703    #[doc = " parameters."]
1704    #[doc = ""]
1705    #[doc = " @public @memberof CassCluster"]
1706    #[doc = ""]
1707    #[doc = " @param[in] cluster"]
1708    #[doc = " @param[in] name"]
1709    #[doc = " @param[in] name_length"]
1710    #[doc = " @return same as cass_cluster_set_local_address()"]
1711    #[doc = ""]
1712    #[doc = " @see cass_cluster_set_local_address()"]
1713    pub fn cass_cluster_set_local_address_n(
1714        cluster: *mut CassCluster,
1715        name: *const ::std::os::raw::c_char,
1716        name_length: usize,
1717    ) -> CassError;
1718}
1719extern "C" {
1720    #[doc = " Sets the SSL context and enables SSL."]
1721    #[doc = ""]
1722    #[doc = " @public @memberof CassCluster"]
1723    #[doc = ""]
1724    #[doc = " @param[in] cluster"]
1725    #[doc = " @param[in] ssl"]
1726    #[doc = ""]
1727    #[doc = " @see cass_ssl_new()"]
1728    pub fn cass_cluster_set_ssl(cluster: *mut CassCluster, ssl: *mut CassSsl);
1729}
1730extern "C" {
1731    #[doc = " Sets custom authenticator"]
1732    #[doc = ""]
1733    #[doc = " @public @memberof CassCluster"]
1734    #[doc = ""]
1735    #[doc = " @param[in] cluster"]
1736    #[doc = " @param[in] exchange_callbacks"]
1737    #[doc = " @param[in] cleanup_callback"]
1738    #[doc = " @param[in] data"]
1739    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1740    pub fn cass_cluster_set_authenticator_callbacks(
1741        cluster: *mut CassCluster,
1742        exchange_callbacks: *const CassAuthenticatorCallbacks,
1743        cleanup_callback: CassAuthenticatorDataCleanupCallback,
1744        data: *mut ::std::os::raw::c_void,
1745    ) -> CassError;
1746}
1747extern "C" {
1748    #[doc = " Sets the protocol version. The driver will automatically downgrade to the lowest"]
1749    #[doc = " supported protocol version."]
1750    #[doc = ""]
1751    #[doc = " <b>Default:</b> CASS_PROTOCOL_VERSION_V4 or CASS_PROTOCOL_VERSION_DSEV1 when"]
1752    #[doc = " using the DSE driver with DataStax Enterprise."]
1753    #[doc = ""]
1754    #[doc = " @public @memberof CassCluster"]
1755    #[doc = ""]
1756    #[doc = " @param[in] cluster"]
1757    #[doc = " @param[in] protocol_version"]
1758    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1759    #[doc = ""]
1760    #[doc = " @see cass_cluster_set_use_beta_protocol_version()"]
1761    pub fn cass_cluster_set_protocol_version(
1762        cluster: *mut CassCluster,
1763        protocol_version: ::std::os::raw::c_int,
1764    ) -> CassError;
1765}
1766extern "C" {
1767    #[doc = " Use the newest beta protocol version. This currently enables the use of"]
1768    #[doc = " protocol version v5 (CASS_PROTOCOL_VERSION_V5) or DSEv2 (CASS_PROTOCOL_VERSION_DSEV2)"]
1769    #[doc = " when using the DSE driver with DataStax Enterprise."]
1770    #[doc = ""]
1771    #[doc = " <b>Default:</b> cass_false"]
1772    #[doc = ""]
1773    #[doc = " @public @memberof CassCluster"]
1774    #[doc = ""]
1775    #[doc = " @param[in] cluster"]
1776    #[doc = " @param[in] enable if false the highest non-beta protocol version will be used"]
1777    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1778    pub fn cass_cluster_set_use_beta_protocol_version(
1779        cluster: *mut CassCluster,
1780        enable: cass_bool_t,
1781    ) -> CassError;
1782}
1783extern "C" {
1784    #[doc = " Sets default consistency level of statement."]
1785    #[doc = ""]
1786    #[doc = " <b>Default:</b> CASS_CONSISTENCY_LOCAL_ONE"]
1787    #[doc = ""]
1788    #[doc = " @public @memberof CassCluster"]
1789    #[doc = ""]
1790    #[doc = " @param[in] cluster"]
1791    #[doc = " @param[in] consistency"]
1792    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1793    pub fn cass_cluster_set_consistency(
1794        cluster: *mut CassCluster,
1795        consistency: CassConsistency,
1796    ) -> CassError;
1797}
1798extern "C" {
1799    #[doc = " Sets default serial consistency level of statement."]
1800    #[doc = ""]
1801    #[doc = " <b>Default:</b> CASS_CONSISTENCY_ANY"]
1802    #[doc = ""]
1803    #[doc = " @public @memberof CassCluster"]
1804    #[doc = ""]
1805    #[doc = " @param[in] cluster"]
1806    #[doc = " @param[in] consistency"]
1807    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1808    pub fn cass_cluster_set_serial_consistency(
1809        cluster: *mut CassCluster,
1810        consistency: CassConsistency,
1811    ) -> CassError;
1812}
1813extern "C" {
1814    #[doc = " Sets the number of IO threads. This is the number of threads"]
1815    #[doc = " that will handle query requests."]
1816    #[doc = ""]
1817    #[doc = " <b>Default:</b> 1"]
1818    #[doc = ""]
1819    #[doc = " @public @memberof CassCluster"]
1820    #[doc = ""]
1821    #[doc = " @param[in] cluster"]
1822    #[doc = " @param[in] num_threads"]
1823    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1824    pub fn cass_cluster_set_num_threads_io(
1825        cluster: *mut CassCluster,
1826        num_threads: ::std::os::raw::c_uint,
1827    ) -> CassError;
1828}
1829extern "C" {
1830    #[doc = " Sets the size of the fixed size queue that stores"]
1831    #[doc = " pending requests."]
1832    #[doc = ""]
1833    #[doc = " <b>Default:</b> 8192"]
1834    #[doc = ""]
1835    #[doc = " @public @memberof CassCluster"]
1836    #[doc = ""]
1837    #[doc = " @param[in] cluster"]
1838    #[doc = " @param[in] queue_size"]
1839    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1840    pub fn cass_cluster_set_queue_size_io(
1841        cluster: *mut CassCluster,
1842        queue_size: ::std::os::raw::c_uint,
1843    ) -> CassError;
1844}
1845extern "C" {
1846    pub fn cass_cluster_set_queue_size_event(
1847        cluster: *mut CassCluster,
1848        queue_size: ::std::os::raw::c_uint,
1849    ) -> CassError;
1850}
1851extern "C" {
1852    #[doc = " Sets the number of connections made to each server in each"]
1853    #[doc = " IO thread."]
1854    #[doc = ""]
1855    #[doc = " <b>Default:</b> 1"]
1856    #[doc = ""]
1857    #[doc = " @public @memberof CassCluster"]
1858    #[doc = ""]
1859    #[doc = " @param[in] cluster"]
1860    #[doc = " @param[in] num_connections"]
1861    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1862    pub fn cass_cluster_set_core_connections_per_host(
1863        cluster: *mut CassCluster,
1864        num_connections: ::std::os::raw::c_uint,
1865    ) -> CassError;
1866}
1867extern "C" {
1868    pub fn cass_cluster_set_max_connections_per_host(
1869        cluster: *mut CassCluster,
1870        num_connections: ::std::os::raw::c_uint,
1871    ) -> CassError;
1872}
1873extern "C" {
1874    pub fn cass_cluster_set_reconnect_wait_time(
1875        cluster: *mut CassCluster,
1876        wait_time: ::std::os::raw::c_uint,
1877    );
1878}
1879extern "C" {
1880    #[doc = " Configures the cluster to use a reconnection policy that waits a constant"]
1881    #[doc = " time between each reconnection attempt."]
1882    #[doc = ""]
1883    #[doc = " @public @memberof CassCluster"]
1884    #[doc = ""]
1885    #[doc = " @param[in] cluster"]
1886    #[doc = " @param[in] delay_ms Time in milliseconds to delay attempting a reconnection;"]
1887    #[doc = " 0 to perform a reconnection immediately."]
1888    pub fn cass_cluster_set_constant_reconnect(cluster: *mut CassCluster, delay_ms: cass_uint64_t);
1889}
1890extern "C" {
1891    #[doc = " Configures the cluster to use a reconnection policy that waits exponentially"]
1892    #[doc = " longer between each reconnection attempt; however will maintain a constant"]
1893    #[doc = " delay once the maximum delay is reached."]
1894    #[doc = ""]
1895    #[doc = " <b>Default:</b>"]
1896    #[doc = " <ul>"]
1897    #[doc = "   <li>2000 milliseconds base delay</li>"]
1898    #[doc = "   <li>60000 milliseconds max delay</li>"]
1899    #[doc = " </ul>"]
1900    #[doc = ""]
1901    #[doc = " <p>"]
1902    #[doc = "   <b>Note:</b> A random amount of jitter (+/- 15%) will be added to the pure"]
1903    #[doc = "   exponential delay value. This helps to prevent situations where multiple"]
1904    #[doc = "   connections are in the reconnection process at exactly the same time. The"]
1905    #[doc = "   jitter will never cause the delay to be less than the base delay, or more"]
1906    #[doc = "   than the max delay."]
1907    #[doc = " </p>"]
1908    #[doc = ""]
1909    #[doc = " @public @memberof CassCluster"]
1910    #[doc = ""]
1911    #[doc = " @param[in] cluster"]
1912    #[doc = " @param[in] base_delay_ms The base delay (in milliseconds) to use for"]
1913    #[doc = " scheduling reconnection attempts."]
1914    #[doc = " @param[in] max_delay_ms The maximum delay to wait between two reconnection"]
1915    #[doc = " attempts."]
1916    #[doc = " @return CASS_OK if successful, otherwise error occurred."]
1917    pub fn cass_cluster_set_exponential_reconnect(
1918        cluster: *mut CassCluster,
1919        base_delay_ms: cass_uint64_t,
1920        max_delay_ms: cass_uint64_t,
1921    ) -> CassError;
1922}
1923extern "C" {
1924    #[doc = " Sets the amount of time, in microseconds, to wait for new requests to"]
1925    #[doc = " coalesce into a single system call. This should be set to a value around"]
1926    #[doc = " the latency SLA of your application's requests while also considering the"]
1927    #[doc = " request's roundtrip time. Larger values should be used for throughput"]
1928    #[doc = " bound workloads and lower values should be used for latency bound"]
1929    #[doc = " workloads."]
1930    #[doc = ""]
1931    #[doc = " <b>Default:</b> 200 us"]
1932    #[doc = ""]
1933    #[doc = " @public @memberof CassCluster"]
1934    #[doc = ""]
1935    #[doc = " @param[in] cluster"]
1936    #[doc = " @param[in] delay_us"]
1937    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1938    pub fn cass_cluster_set_coalesce_delay(
1939        cluster: *mut CassCluster,
1940        delay_us: cass_int64_t,
1941    ) -> CassError;
1942}
1943extern "C" {
1944    #[doc = " Sets the ratio of time spent processing new requests versus handling the I/O"]
1945    #[doc = " and processing of outstanding requests. The range of this setting is 1 to 100,"]
1946    #[doc = " where larger values allocate more time to processing new requests and smaller"]
1947    #[doc = " values allocate more time to processing outstanding requests."]
1948    #[doc = ""]
1949    #[doc = " <b>Default:</b> 50"]
1950    #[doc = ""]
1951    #[doc = " @public @memberof CassCluster"]
1952    #[doc = ""]
1953    #[doc = " @param[in] cluster"]
1954    #[doc = " @param[in] ratio"]
1955    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
1956    pub fn cass_cluster_set_new_request_ratio(
1957        cluster: *mut CassCluster,
1958        ratio: cass_int32_t,
1959    ) -> CassError;
1960}
1961extern "C" {
1962    pub fn cass_cluster_set_max_concurrent_creation(
1963        cluster: *mut CassCluster,
1964        num_connections: ::std::os::raw::c_uint,
1965    ) -> CassError;
1966}
1967extern "C" {
1968    pub fn cass_cluster_set_max_concurrent_requests_threshold(
1969        cluster: *mut CassCluster,
1970        num_requests: ::std::os::raw::c_uint,
1971    ) -> CassError;
1972}
1973extern "C" {
1974    pub fn cass_cluster_set_max_requests_per_flush(
1975        cluster: *mut CassCluster,
1976        num_requests: ::std::os::raw::c_uint,
1977    ) -> CassError;
1978}
1979extern "C" {
1980    pub fn cass_cluster_set_write_bytes_high_water_mark(
1981        cluster: *mut CassCluster,
1982        num_bytes: ::std::os::raw::c_uint,
1983    ) -> CassError;
1984}
1985extern "C" {
1986    pub fn cass_cluster_set_write_bytes_low_water_mark(
1987        cluster: *mut CassCluster,
1988        num_bytes: ::std::os::raw::c_uint,
1989    ) -> CassError;
1990}
1991extern "C" {
1992    pub fn cass_cluster_set_pending_requests_high_water_mark(
1993        cluster: *mut CassCluster,
1994        num_requests: ::std::os::raw::c_uint,
1995    ) -> CassError;
1996}
1997extern "C" {
1998    pub fn cass_cluster_set_pending_requests_low_water_mark(
1999        cluster: *mut CassCluster,
2000        num_requests: ::std::os::raw::c_uint,
2001    ) -> CassError;
2002}
2003extern "C" {
2004    #[doc = " Sets the timeout for connecting to a node."]
2005    #[doc = ""]
2006    #[doc = " <b>Default:</b> 5000 milliseconds"]
2007    #[doc = ""]
2008    #[doc = " @public @memberof CassCluster"]
2009    #[doc = ""]
2010    #[doc = " @param[in] cluster"]
2011    #[doc = " @param[in] timeout_ms Connect timeout in milliseconds"]
2012    pub fn cass_cluster_set_connect_timeout(
2013        cluster: *mut CassCluster,
2014        timeout_ms: ::std::os::raw::c_uint,
2015    );
2016}
2017extern "C" {
2018    #[doc = " Sets the timeout for waiting for a response from a node."]
2019    #[doc = ""]
2020    #[doc = " <b>Default:</b> 12000 milliseconds"]
2021    #[doc = ""]
2022    #[doc = " @public @memberof CassCluster"]
2023    #[doc = ""]
2024    #[doc = " @param[in] cluster"]
2025    #[doc = " @param[in] timeout_ms Request timeout in milliseconds. Use 0 for no timeout."]
2026    pub fn cass_cluster_set_request_timeout(
2027        cluster: *mut CassCluster,
2028        timeout_ms: ::std::os::raw::c_uint,
2029    );
2030}
2031extern "C" {
2032    #[doc = " Sets the timeout for waiting for DNS name resolution."]
2033    #[doc = ""]
2034    #[doc = " <b>Default:</b> 2000 milliseconds"]
2035    #[doc = ""]
2036    #[doc = " @public @memberof CassCluster"]
2037    #[doc = ""]
2038    #[doc = " @param[in] cluster"]
2039    #[doc = " @param[in] timeout_ms Request timeout in milliseconds"]
2040    pub fn cass_cluster_set_resolve_timeout(
2041        cluster: *mut CassCluster,
2042        timeout_ms: ::std::os::raw::c_uint,
2043    );
2044}
2045extern "C" {
2046    #[doc = " Sets the maximum time to wait for schema agreement after a schema change"]
2047    #[doc = " is made (e.g. creating, altering, dropping a table/keyspace/view/index etc)."]
2048    #[doc = ""]
2049    #[doc = " <b>Default:</b> 10000 milliseconds"]
2050    #[doc = ""]
2051    #[doc = " @public @memberof CassCluster"]
2052    #[doc = ""]
2053    #[doc = " @param[in] cluster"]
2054    #[doc = " @param[in] wait_time_ms Wait time in milliseconds"]
2055    pub fn cass_cluster_set_max_schema_wait_time(
2056        cluster: *mut CassCluster,
2057        wait_time_ms: ::std::os::raw::c_uint,
2058    );
2059}
2060extern "C" {
2061    #[doc = " Sets the maximum time to wait for tracing data to become available."]
2062    #[doc = ""]
2063    #[doc = " <b>Default:</b> 15 milliseconds"]
2064    #[doc = ""]
2065    #[doc = " @param[in] cluster"]
2066    #[doc = " @param[in] max_wait_time_ms"]
2067    pub fn cass_cluster_set_tracing_max_wait_time(
2068        cluster: *mut CassCluster,
2069        max_wait_time_ms: ::std::os::raw::c_uint,
2070    );
2071}
2072extern "C" {
2073    #[doc = " Sets the amount of time to wait between attempts to check to see if tracing is"]
2074    #[doc = " available."]
2075    #[doc = ""]
2076    #[doc = " <b>Default:</b> 3 milliseconds"]
2077    #[doc = ""]
2078    #[doc = " @param[in] cluster"]
2079    #[doc = " @param[in] retry_wait_time_ms"]
2080    pub fn cass_cluster_set_tracing_retry_wait_time(
2081        cluster: *mut CassCluster,
2082        retry_wait_time_ms: ::std::os::raw::c_uint,
2083    );
2084}
2085extern "C" {
2086    #[doc = " Sets the consistency level to use for checking to see if tracing data is"]
2087    #[doc = " available."]
2088    #[doc = ""]
2089    #[doc = " <b>Default:</b> CASS_CONSISTENCY_ONE"]
2090    #[doc = ""]
2091    #[doc = " @param[in] cluster"]
2092    #[doc = " @param[in] consistency"]
2093    pub fn cass_cluster_set_tracing_consistency(
2094        cluster: *mut CassCluster,
2095        consistency: CassConsistency,
2096    );
2097}
2098extern "C" {
2099    #[doc = " Sets credentials for plain text authentication."]
2100    #[doc = ""]
2101    #[doc = " @public @memberof CassCluster"]
2102    #[doc = ""]
2103    #[doc = " @param[in] cluster"]
2104    #[doc = " @param[in] username"]
2105    #[doc = " @param[in] password"]
2106    pub fn cass_cluster_set_credentials(
2107        cluster: *mut CassCluster,
2108        username: *const ::std::os::raw::c_char,
2109        password: *const ::std::os::raw::c_char,
2110    );
2111}
2112extern "C" {
2113    #[doc = " Same as cass_cluster_set_credentials(), but with lengths for string"]
2114    #[doc = " parameters."]
2115    #[doc = ""]
2116    #[doc = " @public @memberof CassCluster"]
2117    #[doc = ""]
2118    #[doc = " @param[in] cluster"]
2119    #[doc = " @param[in] username"]
2120    #[doc = " @param[in] username_length"]
2121    #[doc = " @param[in] password"]
2122    #[doc = " @param[in] password_length"]
2123    #[doc = " @return same as cass_cluster_set_credentials()"]
2124    #[doc = ""]
2125    #[doc = " @see cass_cluster_set_credentials();"]
2126    pub fn cass_cluster_set_credentials_n(
2127        cluster: *mut CassCluster,
2128        username: *const ::std::os::raw::c_char,
2129        username_length: usize,
2130        password: *const ::std::os::raw::c_char,
2131        password_length: usize,
2132    );
2133}
2134extern "C" {
2135    #[doc = " Configures the cluster to use round-robin load balancing."]
2136    #[doc = ""]
2137    #[doc = " The driver discovers all nodes in a cluster and cycles through"]
2138    #[doc = " them per request. All are considered 'local'."]
2139    #[doc = ""]
2140    #[doc = " @public @memberof CassCluster"]
2141    #[doc = ""]
2142    #[doc = " @param[in] cluster"]
2143    pub fn cass_cluster_set_load_balance_round_robin(cluster: *mut CassCluster);
2144}
2145extern "C" {
2146    #[doc = " Configures the cluster to use DC-aware load balancing."]
2147    #[doc = " For each query, all live nodes in a primary 'local' DC are tried first,"]
2148    #[doc = " followed by any node from other DCs."]
2149    #[doc = ""]
2150    #[doc = " <b>Note:</b> This is the default, and does not need to be called unless"]
2151    #[doc = " switching an existing from another policy or changing settings."]
2152    #[doc = " Without further configuration, a default local_dc is chosen from the"]
2153    #[doc = " first connected contact point, and no remote hosts are considered in"]
2154    #[doc = " query plans. If relying on this mechanism, be sure to use only contact"]
2155    #[doc = " points from the local DC."]
2156    #[doc = ""]
2157    #[doc = " @deprecated The remote DC settings for DC-aware are not suitable for most"]
2158    #[doc = " scenarios that require DC failover. There is also unhandled gap between"]
2159    #[doc = " replication factor number of nodes failing and the full cluster failing. Only"]
2160    #[doc = " the remote DC settings are being deprecated."]
2161    #[doc = ""]
2162    #[doc = " @public @memberof CassCluster"]
2163    #[doc = ""]
2164    #[doc = " @param[in] cluster"]
2165    #[doc = " @param[in] local_dc The primary data center to try first"]
2166    #[doc = " @param[in] used_hosts_per_remote_dc The number of hosts used in each remote"]
2167    #[doc = " DC if no hosts are available in the local dc (<b>deprecated</b>)"]
2168    #[doc = " @param[in] allow_remote_dcs_for_local_cl Allows remote hosts to be used if no"]
2169    #[doc = " local dc hosts are available and the consistency level is LOCAL_ONE or"]
2170    #[doc = " LOCAL_QUORUM (<b>deprecated</b>)"]
2171    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
2172    pub fn cass_cluster_set_load_balance_dc_aware(
2173        cluster: *mut CassCluster,
2174        local_dc: *const ::std::os::raw::c_char,
2175        used_hosts_per_remote_dc: ::std::os::raw::c_uint,
2176        allow_remote_dcs_for_local_cl: cass_bool_t,
2177    ) -> CassError;
2178}
2179extern "C" {
2180    #[doc = " Same as cass_cluster_set_load_balance_dc_aware(), but with lengths for string"]
2181    #[doc = " parameters."]
2182    #[doc = ""]
2183    #[doc = " @deprecated The remote DC settings for DC-aware are not suitable for most"]
2184    #[doc = " scenarios that require DC failover. There is also unhandled gap between"]
2185    #[doc = " replication factor number of nodes failing and the full cluster failing. Only"]
2186    #[doc = " the remote DC settings are being deprecated."]
2187    #[doc = ""]
2188    #[doc = " @public @memberof CassCluster"]
2189    #[doc = ""]
2190    #[doc = " @param[in] cluster"]
2191    #[doc = " @param[in] local_dc"]
2192    #[doc = " @param[in] local_dc_length"]
2193    #[doc = " @param[in] used_hosts_per_remote_dc (<b>deprecated</b>)"]
2194    #[doc = " @param[in] allow_remote_dcs_for_local_cl (<b>deprecated</b>)"]
2195    #[doc = " @return same as cass_cluster_set_load_balance_dc_aware()"]
2196    #[doc = ""]
2197    #[doc = " @see cass_cluster_set_load_balance_dc_aware()"]
2198    pub fn cass_cluster_set_load_balance_dc_aware_n(
2199        cluster: *mut CassCluster,
2200        local_dc: *const ::std::os::raw::c_char,
2201        local_dc_length: usize,
2202        used_hosts_per_remote_dc: ::std::os::raw::c_uint,
2203        allow_remote_dcs_for_local_cl: cass_bool_t,
2204    ) -> CassError;
2205}
2206extern "C" {
2207    #[doc = " Configures the cluster to use token-aware request routing or not."]
2208    #[doc = ""]
2209    #[doc = " <b>Important:</b> Token-aware routing depends on keyspace metadata."]
2210    #[doc = " For this reason enabling token-aware routing will also enable retrieving"]
2211    #[doc = " and updating keyspace schema metadata."]
2212    #[doc = ""]
2213    #[doc = " <b>Default:</b> cass_true (enabled)."]
2214    #[doc = ""]
2215    #[doc = " This routing policy composes the base routing policy, routing"]
2216    #[doc = " requests first to replicas on nodes considered 'local' by"]
2217    #[doc = " the base load balancing policy."]
2218    #[doc = ""]
2219    #[doc = " @public @memberof CassCluster"]
2220    #[doc = ""]
2221    #[doc = " @param[in] cluster"]
2222    #[doc = " @param[in] enabled"]
2223    pub fn cass_cluster_set_token_aware_routing(cluster: *mut CassCluster, enabled: cass_bool_t);
2224}
2225extern "C" {
2226    #[doc = " Configures token-aware routing to randomly shuffle replicas. This can reduce"]
2227    #[doc = " the effectiveness of server-side caching, but it can better distribute load over"]
2228    #[doc = " replicas for a given partition key."]
2229    #[doc = ""]
2230    #[doc = " <b>Note:</b> Token-aware routing must be enabled for the setting to"]
2231    #[doc = " be applicable."]
2232    #[doc = ""]
2233    #[doc = " <b>Default:</b> cass_true (enabled)."]
2234    #[doc = ""]
2235    #[doc = " @public @memberof CassCluster"]
2236    #[doc = ""]
2237    #[doc = " @param[in] cluster"]
2238    #[doc = " @param[in] enabled"]
2239    pub fn cass_cluster_set_token_aware_routing_shuffle_replicas(
2240        cluster: *mut CassCluster,
2241        enabled: cass_bool_t,
2242    );
2243}
2244extern "C" {
2245    #[doc = " Configures the cluster to use latency-aware request routing or not."]
2246    #[doc = ""]
2247    #[doc = " <b>Default:</b> cass_false (disabled)."]
2248    #[doc = ""]
2249    #[doc = " This routing policy is a top-level routing policy. It uses the"]
2250    #[doc = " base routing policy to determine locality (dc-aware) and/or"]
2251    #[doc = " placement (token-aware) before considering the latency."]
2252    #[doc = ""]
2253    #[doc = " @public @memberof CassCluster"]
2254    #[doc = ""]
2255    #[doc = " @param[in] cluster"]
2256    #[doc = " @param[in] enabled"]
2257    pub fn cass_cluster_set_latency_aware_routing(cluster: *mut CassCluster, enabled: cass_bool_t);
2258}
2259extern "C" {
2260    #[doc = " Configures the settings for latency-aware request routing."]
2261    #[doc = ""]
2262    #[doc = " <b>Defaults:</b>"]
2263    #[doc = ""]
2264    #[doc = " <ul>"]
2265    #[doc = "   <li>exclusion_threshold: 2.0</li>"]
2266    #[doc = "   <li>scale_ms: 100 milliseconds</li>"]
2267    #[doc = "   <li>retry_period_ms: 10,000 milliseconds (10 seconds)</li>"]
2268    #[doc = "   <li>update_rate_ms: 100 milliseconds</li>"]
2269    #[doc = "   <li>min_measured: 50</li>"]
2270    #[doc = " </ul>"]
2271    #[doc = ""]
2272    #[doc = " @public @memberof CassCluster"]
2273    #[doc = ""]
2274    #[doc = " @param[in] cluster"]
2275    #[doc = " @param[in] exclusion_threshold Controls how much worse the latency must be compared to the"]
2276    #[doc = " average latency of the best performing node before it penalized."]
2277    #[doc = " @param[in] scale_ms Controls the weight given to older latencies when calculating the average"]
2278    #[doc = " latency of a node. A bigger scale will give more weight to older latency measurements."]
2279    #[doc = " @param[in] retry_period_ms The amount of time a node is penalized by the policy before"]
2280    #[doc = " being given a second chance when the current average latency exceeds the calculated"]
2281    #[doc = " threshold (exclusion_threshold * best_average_latency)."]
2282    #[doc = " @param[in] update_rate_ms The rate at  which the best average latency is recomputed."]
2283    #[doc = " @param[in] min_measured The minimum number of measurements per-host required to"]
2284    #[doc = " be considered by the policy."]
2285    pub fn cass_cluster_set_latency_aware_routing_settings(
2286        cluster: *mut CassCluster,
2287        exclusion_threshold: cass_double_t,
2288        scale_ms: cass_uint64_t,
2289        retry_period_ms: cass_uint64_t,
2290        update_rate_ms: cass_uint64_t,
2291        min_measured: cass_uint64_t,
2292    );
2293}
2294extern "C" {
2295    #[doc = " Sets/Appends whitelist hosts. The first call sets the whitelist hosts and"]
2296    #[doc = " any subsequent calls appends additional hosts. Passing an empty string will"]
2297    #[doc = " clear and disable the whitelist. White space is striped from the hosts."]
2298    #[doc = ""]
2299    #[doc = " This policy filters requests to all other policies, only allowing requests"]
2300    #[doc = " to the hosts contained in the whitelist. Any host not in the whitelist will"]
2301    #[doc = " be ignored and a connection will not be established. This policy is useful"]
2302    #[doc = " for ensuring that the driver will only connect to a predefined set of hosts."]
2303    #[doc = ""]
2304    #[doc = " Examples: \"127.0.0.1\" \"127.0.0.1,127.0.0.2\""]
2305    #[doc = ""]
2306    #[doc = " @public @memberof CassCluster"]
2307    #[doc = ""]
2308    #[doc = " @param[in] cluster"]
2309    #[doc = " @param[in] hosts A comma delimited list of addresses. An empty string will"]
2310    #[doc = " clear the whitelist hosts. The string is copied into the cluster"]
2311    #[doc = " configuration; the memory pointed to by this parameter can be freed after"]
2312    #[doc = " this call."]
2313    pub fn cass_cluster_set_whitelist_filtering(
2314        cluster: *mut CassCluster,
2315        hosts: *const ::std::os::raw::c_char,
2316    );
2317}
2318extern "C" {
2319    #[doc = " Same as cass_cluster_set_whitelist_filtering(), but with lengths for"]
2320    #[doc = " string parameters."]
2321    #[doc = ""]
2322    #[doc = " @public @memberof CassCluster"]
2323    #[doc = ""]
2324    #[doc = " @param[in] cluster"]
2325    #[doc = " @param[in] hosts"]
2326    #[doc = " @param[in] hosts_length"]
2327    #[doc = " @return same as cass_cluster_set_whitelist_filtering()"]
2328    #[doc = ""]
2329    #[doc = " @see cass_cluster_set_whitelist_filtering()"]
2330    pub fn cass_cluster_set_whitelist_filtering_n(
2331        cluster: *mut CassCluster,
2332        hosts: *const ::std::os::raw::c_char,
2333        hosts_length: usize,
2334    );
2335}
2336extern "C" {
2337    #[doc = " Sets/Appends blacklist hosts. The first call sets the blacklist hosts and"]
2338    #[doc = " any subsequent calls appends additional hosts. Passing an empty string will"]
2339    #[doc = " clear and disable the blacklist. White space is striped from the hosts."]
2340    #[doc = ""]
2341    #[doc = " This policy filters requests to all other policies, only allowing requests"]
2342    #[doc = " to the hosts not contained in the blacklist. Any host in the blacklist will"]
2343    #[doc = " be ignored and a connection will not be established. This policy is useful"]
2344    #[doc = " for ensuring that the driver will not connect to a predefined set of hosts."]
2345    #[doc = ""]
2346    #[doc = " Examples: \"127.0.0.1\" \"127.0.0.1,127.0.0.2\""]
2347    #[doc = ""]
2348    #[doc = " @public @memberof CassCluster"]
2349    #[doc = ""]
2350    #[doc = " @param[in] cluster"]
2351    #[doc = " @param[in] hosts A comma delimited list of addresses. An empty string will"]
2352    #[doc = " clear the blacklist hosts. The string is copied into the cluster"]
2353    #[doc = " configuration; the memory pointed to by this parameter can be freed after"]
2354    #[doc = " this call."]
2355    pub fn cass_cluster_set_blacklist_filtering(
2356        cluster: *mut CassCluster,
2357        hosts: *const ::std::os::raw::c_char,
2358    );
2359}
2360extern "C" {
2361    #[doc = " Same as cass_cluster_set_blacklist_filtering_hosts(), but with lengths for"]
2362    #[doc = " string parameters."]
2363    #[doc = ""]
2364    #[doc = " @public @memberof CassCluster"]
2365    #[doc = ""]
2366    #[doc = " @param[in] cluster"]
2367    #[doc = " @param[in] hosts"]
2368    #[doc = " @param[in] hosts_length"]
2369    #[doc = " @return same as cass_cluster_set_blacklist_filtering()"]
2370    #[doc = ""]
2371    #[doc = " @see cass_cluster_set_blacklist_filtering()"]
2372    pub fn cass_cluster_set_blacklist_filtering_n(
2373        cluster: *mut CassCluster,
2374        hosts: *const ::std::os::raw::c_char,
2375        hosts_length: usize,
2376    );
2377}
2378extern "C" {
2379    #[doc = " Same as cass_cluster_set_whitelist_filtering(), but whitelist all hosts of a dc"]
2380    #[doc = ""]
2381    #[doc = " Examples: \"dc1\", \"dc1,dc2\""]
2382    #[doc = ""]
2383    #[doc = " @public @memberof CassCluster"]
2384    #[doc = ""]
2385    #[doc = " @param[in] cluster"]
2386    #[doc = " @param[in] dcs A comma delimited list of dcs. An empty string will clear the"]
2387    #[doc = " whitelist dcs. The string is copied into the cluster configuration; the"]
2388    #[doc = " memory pointed to by this parameter can be freed after this call."]
2389    pub fn cass_cluster_set_whitelist_dc_filtering(
2390        cluster: *mut CassCluster,
2391        dcs: *const ::std::os::raw::c_char,
2392    );
2393}
2394extern "C" {
2395    #[doc = " Same as cass_cluster_set_whitelist_dc_filtering(), but with lengths for"]
2396    #[doc = " string parameters."]
2397    #[doc = ""]
2398    #[doc = " @public @memberof CassCluster"]
2399    #[doc = ""]
2400    #[doc = " @param[in] cluster"]
2401    #[doc = " @param[in] dcs"]
2402    #[doc = " @param[in] dcs_length"]
2403    #[doc = " @return same as cass_cluster_set_whitelist_dc_filtering()"]
2404    #[doc = ""]
2405    #[doc = " @see cass_cluster_set_whitelist_dc_filtering()"]
2406    pub fn cass_cluster_set_whitelist_dc_filtering_n(
2407        cluster: *mut CassCluster,
2408        dcs: *const ::std::os::raw::c_char,
2409        dcs_length: usize,
2410    );
2411}
2412extern "C" {
2413    #[doc = " Same as cass_cluster_set_blacklist_filtering(), but blacklist all hosts of a dc"]
2414    #[doc = ""]
2415    #[doc = " Examples: \"dc1\", \"dc1,dc2\""]
2416    #[doc = ""]
2417    #[doc = " @public @memberof CassCluster"]
2418    #[doc = ""]
2419    #[doc = " @param[in] cluster"]
2420    #[doc = " @param[in] dcs A comma delimited list of dcs. An empty string will clear the"]
2421    #[doc = " blacklist dcs. The string is copied into the cluster configuration; the"]
2422    #[doc = " memory pointed to by this parameter can be freed after this call."]
2423    pub fn cass_cluster_set_blacklist_dc_filtering(
2424        cluster: *mut CassCluster,
2425        dcs: *const ::std::os::raw::c_char,
2426    );
2427}
2428extern "C" {
2429    #[doc = " Same as cass_cluster_set_blacklist_dc_filtering(), but with lengths for"]
2430    #[doc = " string parameters."]
2431    #[doc = ""]
2432    #[doc = " @public @memberof CassCluster"]
2433    #[doc = ""]
2434    #[doc = " @param[in] cluster"]
2435    #[doc = " @param[in] dcs"]
2436    #[doc = " @param[in] dcs_length"]
2437    #[doc = " @return same as cass_cluster_set_blacklist_dc_filtering()"]
2438    #[doc = ""]
2439    #[doc = " @see cass_cluster_set_blacklist_dc_filtering()"]
2440    pub fn cass_cluster_set_blacklist_dc_filtering_n(
2441        cluster: *mut CassCluster,
2442        dcs: *const ::std::os::raw::c_char,
2443        dcs_length: usize,
2444    );
2445}
2446extern "C" {
2447    #[doc = " Enable/Disable Nagle's algorithm on connections."]
2448    #[doc = ""]
2449    #[doc = " <b>Default:</b> cass_true (disables Nagle's algorithm)."]
2450    #[doc = ""]
2451    #[doc = " @public @memberof CassCluster"]
2452    #[doc = ""]
2453    #[doc = " @param[in] cluster"]
2454    #[doc = " @param[in] enabled"]
2455    pub fn cass_cluster_set_tcp_nodelay(cluster: *mut CassCluster, enabled: cass_bool_t);
2456}
2457extern "C" {
2458    #[doc = " Enable/Disable TCP keep-alive"]
2459    #[doc = ""]
2460    #[doc = " <b>Default:</b> cass_false (disabled)."]
2461    #[doc = ""]
2462    #[doc = " @public @memberof CassCluster"]
2463    #[doc = ""]
2464    #[doc = " @param[in] cluster"]
2465    #[doc = " @param[in] enabled"]
2466    #[doc = " @param[in] delay_secs The initial delay in seconds, ignored when"]
2467    #[doc = " `enabled` is false."]
2468    pub fn cass_cluster_set_tcp_keepalive(
2469        cluster: *mut CassCluster,
2470        enabled: cass_bool_t,
2471        delay_secs: ::std::os::raw::c_uint,
2472    );
2473}
2474extern "C" {
2475    #[doc = " Sets the timestamp generator used to assign timestamps to all requests"]
2476    #[doc = " unless overridden by setting the timestamp on a statement or a batch."]
2477    #[doc = ""]
2478    #[doc = " <b>Default:</b> Monotonically increasing, client-side timestamp generator."]
2479    #[doc = ""]
2480    #[doc = " @cassandra{2.1+}"]
2481    #[doc = ""]
2482    #[doc = " @public @memberof CassCluster"]
2483    #[doc = ""]
2484    #[doc = " @param[in] cluster"]
2485    #[doc = " @param[in] timestamp_gen"]
2486    #[doc = ""]
2487    #[doc = " @see cass_statement_set_timestamp()"]
2488    #[doc = " @see cass_batch_set_timestamp()"]
2489    pub fn cass_cluster_set_timestamp_gen(
2490        cluster: *mut CassCluster,
2491        timestamp_gen: *mut CassTimestampGen,
2492    );
2493}
2494extern "C" {
2495    #[doc = " Sets the amount of time between heartbeat messages and controls the amount"]
2496    #[doc = " of time the connection must be idle before sending heartbeat messages. This"]
2497    #[doc = " is useful for preventing intermediate network devices from dropping"]
2498    #[doc = " connections."]
2499    #[doc = ""]
2500    #[doc = " <b>Default:</b> 30 seconds"]
2501    #[doc = ""]
2502    #[doc = " @public @memberof CassCluster"]
2503    #[doc = ""]
2504    #[doc = " @param[in] cluster"]
2505    #[doc = " @param[in] interval_secs Use 0 to disable heartbeat messages"]
2506    pub fn cass_cluster_set_connection_heartbeat_interval(
2507        cluster: *mut CassCluster,
2508        interval_secs: ::std::os::raw::c_uint,
2509    );
2510}
2511extern "C" {
2512    #[doc = " Sets the amount of time a connection is allowed to be without a successful"]
2513    #[doc = " heartbeat response before being terminated and scheduled for reconnection."]
2514    #[doc = ""]
2515    #[doc = " <b>Default:</b> 60 seconds"]
2516    #[doc = ""]
2517    #[doc = " @public @memberof CassCluster"]
2518    #[doc = ""]
2519    #[doc = " @param[in] cluster"]
2520    #[doc = " @param[in] timeout_secs"]
2521    pub fn cass_cluster_set_connection_idle_timeout(
2522        cluster: *mut CassCluster,
2523        timeout_secs: ::std::os::raw::c_uint,
2524    );
2525}
2526extern "C" {
2527    #[doc = " Sets the retry policy used for all requests unless overridden by setting"]
2528    #[doc = " a retry policy on a statement or a batch."]
2529    #[doc = ""]
2530    #[doc = " <b>Default:</b> The same policy as would be created by the function:"]
2531    #[doc = " cass_retry_policy_default_new(). This policy will retry on a read timeout"]
2532    #[doc = " if there was enough replicas, but no data present, on a write timeout if a"]
2533    #[doc = " logged batch request failed to write the batch log, and on a unavailable"]
2534    #[doc = " error it retries using a new host. In all other cases the default policy"]
2535    #[doc = " will return an error."]
2536    #[doc = ""]
2537    #[doc = " @public @memberof CassCluster"]
2538    #[doc = ""]
2539    #[doc = " @param[in] cluster"]
2540    #[doc = " @param[in] retry_policy"]
2541    #[doc = ""]
2542    #[doc = " @see cass_retry_policy_default_new()"]
2543    #[doc = " @see cass_statement_set_retry_policy()"]
2544    #[doc = " @see cass_batch_set_retry_policy()"]
2545    pub fn cass_cluster_set_retry_policy(
2546        cluster: *mut CassCluster,
2547        retry_policy: *mut CassRetryPolicy,
2548    );
2549}
2550extern "C" {
2551    #[doc = " Enable/Disable retrieving and updating schema metadata. If disabled"]
2552    #[doc = " this is allows the driver to skip over retrieving and updating schema"]
2553    #[doc = " metadata and cass_session_get_schema_meta() will always return an empty object."]
2554    #[doc = " This can be useful for reducing the startup overhead of short-lived sessions."]
2555    #[doc = ""]
2556    #[doc = " <b>Default:</b> cass_true (enabled)."]
2557    #[doc = ""]
2558    #[doc = " @public @memberof CassCluster"]
2559    #[doc = ""]
2560    #[doc = " @param[in] cluster"]
2561    #[doc = " @param[in] enabled"]
2562    #[doc = ""]
2563    #[doc = " @see cass_session_get_schema_meta()"]
2564    pub fn cass_cluster_set_use_schema(cluster: *mut CassCluster, enabled: cass_bool_t);
2565}
2566extern "C" {
2567    #[doc = " Enable/Disable retrieving hostnames for IP addresses using reverse IP lookup."]
2568    #[doc = ""]
2569    #[doc = " This is useful for authentication (Kerberos) or encryption (SSL) services"]
2570    #[doc = " that require a valid hostname for verification."]
2571    #[doc = ""]
2572    #[doc = " <b>Default:</b> cass_false (disabled)."]
2573    #[doc = ""]
2574    #[doc = " @public @memberof CassCluster"]
2575    #[doc = ""]
2576    #[doc = " @param[in] cluster"]
2577    #[doc = " @param[in] enabled"]
2578    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
2579    #[doc = ""]
2580    #[doc = " @see cass_cluster_set_resolve_timeout()"]
2581    pub fn cass_cluster_set_use_hostname_resolution(
2582        cluster: *mut CassCluster,
2583        enabled: cass_bool_t,
2584    ) -> CassError;
2585}
2586extern "C" {
2587    #[doc = " Enable/Disable the randomization of the contact points list."]
2588    #[doc = ""]
2589    #[doc = " <b>Default:</b> cass_true (enabled)."]
2590    #[doc = ""]
2591    #[doc = " <b>Important:</b> This setting should only be disabled for debugging or"]
2592    #[doc = " tests."]
2593    #[doc = ""]
2594    #[doc = " @public @memberof CassCluster"]
2595    #[doc = ""]
2596    #[doc = " @param[in] cluster"]
2597    #[doc = " @param[in] enabled"]
2598    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
2599    pub fn cass_cluster_set_use_randomized_contact_points(
2600        cluster: *mut CassCluster,
2601        enabled: cass_bool_t,
2602    ) -> CassError;
2603}
2604extern "C" {
2605    #[doc = " Enable constant speculative executions with the supplied settings."]
2606    #[doc = ""]
2607    #[doc = " @public @memberof CassCluster"]
2608    #[doc = ""]
2609    #[doc = " @param[in] cluster"]
2610    #[doc = " @param[in] constant_delay_ms"]
2611    #[doc = " @param[in] max_speculative_executions"]
2612    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
2613    pub fn cass_cluster_set_constant_speculative_execution_policy(
2614        cluster: *mut CassCluster,
2615        constant_delay_ms: cass_int64_t,
2616        max_speculative_executions: ::std::os::raw::c_int,
2617    ) -> CassError;
2618}
2619extern "C" {
2620    #[doc = " Disable speculative executions"]
2621    #[doc = ""]
2622    #[doc = " <b>Default:</b> This is the default speculative execution policy."]
2623    #[doc = ""]
2624    #[doc = " @public @memberof CassCluster"]
2625    #[doc = ""]
2626    #[doc = " @param[in] cluster"]
2627    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
2628    pub fn cass_cluster_set_no_speculative_execution_policy(cluster: *mut CassCluster)
2629        -> CassError;
2630}
2631extern "C" {
2632    #[doc = " Sets the maximum number of \"pending write\" objects that will be"]
2633    #[doc = " saved for re-use for marshalling new requests. These objects may"]
2634    #[doc = " hold on to a significant amount of memory and reducing the"]
2635    #[doc = " number of these objects may reduce memory usage of the application."]
2636    #[doc = ""]
2637    #[doc = " The cost of reducing the value of this setting is potentially slower"]
2638    #[doc = " marshalling of requests prior to sending."]
2639    #[doc = ""]
2640    #[doc = " <b>Default:</b> Max unsigned integer value"]
2641    #[doc = ""]
2642    #[doc = " @public @memberof CassCluster"]
2643    #[doc = ""]
2644    #[doc = " @param[in] cluster"]
2645    #[doc = " @param[in] num_objects"]
2646    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
2647    pub fn cass_cluster_set_max_reusable_write_objects(
2648        cluster: *mut CassCluster,
2649        num_objects: ::std::os::raw::c_uint,
2650    ) -> CassError;
2651}
2652extern "C" {
2653    #[doc = " Associates a named execution profile which can be utilized during execution."]
2654    #[doc = ""]
2655    #[doc = " <b>Note:</b> Once the execution profile is added to a cluster, it is"]
2656    #[doc = " immutable and any changes made to the execution profile must be re-assigned"]
2657    #[doc = " to the cluster before a session connection is established in order for those"]
2658    #[doc = " settings to be utilized during query execution."]
2659    #[doc = ""]
2660    #[doc = " @public @memberof CassCluster"]
2661    #[doc = ""]
2662    #[doc = " @param[in] cluster"]
2663    #[doc = " @param[in] name"]
2664    #[doc = " @param[in] profile"]
2665    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
2666    #[doc = ""]
2667    #[doc = " @see cass_batch_set_execution_profile()"]
2668    #[doc = " @see cass_statement_set_execution_profile()"]
2669    pub fn cass_cluster_set_execution_profile(
2670        cluster: *mut CassCluster,
2671        name: *const ::std::os::raw::c_char,
2672        profile: *mut CassExecProfile,
2673    ) -> CassError;
2674}
2675extern "C" {
2676    #[doc = " Same as cass_cluster_add_execution_profile(), but with lengths for string"]
2677    #[doc = " parameters."]
2678    #[doc = ""]
2679    #[doc = " @public @memberof CassCluster"]
2680    #[doc = ""]
2681    #[doc = " @param[in] cluster"]
2682    #[doc = " @param[in] name"]
2683    #[doc = " @param[in] name_length"]
2684    #[doc = " @param[in] profile"]
2685    #[doc = " @return same as cass_cluster_set_execution_profile()"]
2686    #[doc = ""]
2687    #[doc = " @see cass_batch_set_execution_profile()"]
2688    #[doc = " @see cass_statement_set_execution_profile()"]
2689    pub fn cass_cluster_set_execution_profile_n(
2690        cluster: *mut CassCluster,
2691        name: *const ::std::os::raw::c_char,
2692        name_length: usize,
2693        profile: *mut CassExecProfile,
2694    ) -> CassError;
2695}
2696extern "C" {
2697    #[doc = " Prepare statements on all available hosts."]
2698    #[doc = ""]
2699    #[doc = " <b>Default:</b> cass_true"]
2700    #[doc = ""]
2701    #[doc = " @public @memberof CassCluster"]
2702    #[doc = ""]
2703    #[doc = " @param cluster"]
2704    #[doc = " @param enabled"]
2705    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
2706    pub fn cass_cluster_set_prepare_on_all_hosts(
2707        cluster: *mut CassCluster,
2708        enabled: cass_bool_t,
2709    ) -> CassError;
2710}
2711extern "C" {
2712    #[doc = " Enable pre-preparing cached prepared statements when existing hosts become"]
2713    #[doc = " available again or when new hosts are added to the cluster."]
2714    #[doc = ""]
2715    #[doc = " This can help mitigate request latency when executing prepared statements"]
2716    #[doc = " by avoiding an extra round trip in cases where the statement is"]
2717    #[doc = " unprepared on a freshly started server. The main tradeoff is extra background"]
2718    #[doc = " network traffic is required to prepare the statements on hosts as they become"]
2719    #[doc = " available."]
2720    #[doc = ""]
2721    #[doc = " <b>Default:</b> cass_true"]
2722    #[doc = ""]
2723    #[doc = " @param cluster"]
2724    #[doc = " @param enabled"]
2725    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
2726    pub fn cass_cluster_set_prepare_on_up_or_add_host(
2727        cluster: *mut CassCluster,
2728        enabled: cass_bool_t,
2729    ) -> CassError;
2730}
2731extern "C" {
2732    #[doc = " Enable the <b>NO_COMPACT</b> startup option."]
2733    #[doc = ""]
2734    #[doc = " This can help facilitate uninterrupted cluster upgrades where tables using"]
2735    #[doc = " <b>COMPACT_STORAGE</b> will operate in \"compatibility mode\" for"]
2736    #[doc = " <b>BATCH</b>, <b>DELETE</b>, <b>SELECT</b>, and <b>UPDATE</b> CQL operations."]
2737    #[doc = ""]
2738    #[doc = " <b>Default:</b> cass_false"]
2739    #[doc = ""]
2740    #[doc = " @cassandra{3.0.16+}"]
2741    #[doc = " @cassandra{3.11.2+}"]
2742    #[doc = " @cassandra{4.0+}"]
2743    #[doc = ""]
2744    #[doc = " @public @memberof CassCluster"]
2745    #[doc = ""]
2746    #[doc = " @param[in] cluster"]
2747    #[doc = " @param[in] enabled"]
2748    pub fn cass_cluster_set_no_compact(
2749        cluster: *mut CassCluster,
2750        enabled: cass_bool_t,
2751    ) -> CassError;
2752}
2753extern "C" {
2754    #[doc = " Sets a callback for handling host state changes in the cluster."]
2755    #[doc = ""]
2756    #[doc = " <b>Note:</b> The callback is invoked only when state changes in the cluster"]
2757    #[doc = " are applicable to the configured load balancing policy(s)."]
2758    #[doc = ""]
2759    #[doc = " @public @memberof CassCluster"]
2760    #[doc = ""]
2761    #[doc = " @param[in] cluster"]
2762    #[doc = " @param[in] callback"]
2763    #[doc = " @param[in] data"]
2764    #[doc = " @return CASS_OK if successful, otherwise and error occurred"]
2765    pub fn cass_cluster_set_host_listener_callback(
2766        cluster: *mut CassCluster,
2767        callback: CassHostListenerCallback,
2768        data: *mut ::std::os::raw::c_void,
2769    ) -> CassError;
2770}
2771extern "C" {
2772    #[doc = " Sets the secure connection bundle path for processing DBaaS credentials."]
2773    #[doc = ""]
2774    #[doc = " This will pre-configure a cluster using the credentials format provided by"]
2775    #[doc = " the DBaaS cloud provider."]
2776    #[doc = ""]
2777    #[doc = " @param[in] cluster"]
2778    #[doc = " @param[in] path Absolute path to DBaaS credentials file."]
2779    #[doc = " @return CASS_OK if successful, otherwise error occured."]
2780    pub fn cass_cluster_set_cloud_secure_connection_bundle(
2781        cluster: *mut CassCluster,
2782        path: *const ::std::os::raw::c_char,
2783    ) -> CassError;
2784}
2785extern "C" {
2786    #[doc = " Same as cass_cluster_set_cloud_secure_connection_bundle(), but with lengths"]
2787    #[doc = " for string parameters."]
2788    #[doc = ""]
2789    #[doc = " @see cass_cluster_set_cloud_secure_connection_bundle()"]
2790    #[doc = ""]
2791    #[doc = " @param[in] cluster"]
2792    #[doc = " @param[in] path Absolute path to DBaaS credentials file."]
2793    #[doc = " @param[in] path_length Length of path variable."]
2794    #[doc = " @return CASS_OK if successful, otherwise error occured."]
2795    pub fn cass_cluster_set_cloud_secure_connection_bundle_n(
2796        cluster: *mut CassCluster,
2797        path: *const ::std::os::raw::c_char,
2798        path_length: usize,
2799    ) -> CassError;
2800}
2801extern "C" {
2802    #[doc = " Same as cass_cluster_set_cloud_secure_connection_bundle(), but it does not"]
2803    #[doc = " initialize the underlying SSL library implementation. The SSL library still"]
2804    #[doc = " needs to be initialized, but it's up to the client application to handle"]
2805    #[doc = " initialization. This is similar to the function cass_ssl_new_no_lib_init(),"]
2806    #[doc = " and its documentation should be used as a reference to properly initialize"]
2807    #[doc = " the underlying SSL library."]
2808    #[doc = ""]
2809    #[doc = " @see cass_ssl_new_no_lib_init()"]
2810    #[doc = " @see cass_cluster_set_cloud_secure_connection_bundle()"]
2811    #[doc = ""]
2812    #[doc = " @param[in] cluster"]
2813    #[doc = " @param[in] path Absolute path to DBaaS credentials file."]
2814    #[doc = " @return CASS_OK if successful, otherwise error occured."]
2815    pub fn cass_cluster_set_cloud_secure_connection_bundle_no_ssl_lib_init(
2816        cluster: *mut CassCluster,
2817        path: *const ::std::os::raw::c_char,
2818    ) -> CassError;
2819}
2820extern "C" {
2821    #[doc = " Same as cass_cluster_set_cloud_secure_connection_bundle_no_ssl_lib_init(),"]
2822    #[doc = " but with lengths for string parameters."]
2823    #[doc = ""]
2824    #[doc = " @see cass_cluster_set_cloud_secure_connection_bundle_no_ssl_lib_init()"]
2825    #[doc = ""]
2826    #[doc = " @param[in] cluster"]
2827    #[doc = " @param[in] path Absolute path to DBaaS credentials file."]
2828    #[doc = " @param[in] path_length Length of path variable."]
2829    #[doc = " @return CASS_OK if successful, otherwise error occured."]
2830    pub fn cass_cluster_set_cloud_secure_connection_bundle_no_ssl_lib_init_n(
2831        cluster: *mut CassCluster,
2832        path: *const ::std::os::raw::c_char,
2833        path_length: usize,
2834    ) -> CassError;
2835}
2836extern "C" {
2837    #[doc = " Set the application name."]
2838    #[doc = ""]
2839    #[doc = " This is optional; however it provides the server with the application name"]
2840    #[doc = " that can aid in debugging issues with larger clusters where there are a lot"]
2841    #[doc = " of client (or application) connections."]
2842    #[doc = ""]
2843    #[doc = " @public @memberof CassCluster"]
2844    #[doc = ""]
2845    #[doc = " @param[in] cluster"]
2846    #[doc = " @param[in] application_name"]
2847    pub fn cass_cluster_set_application_name(
2848        cluster: *mut CassCluster,
2849        application_name: *const ::std::os::raw::c_char,
2850    );
2851}
2852extern "C" {
2853    #[doc = " Same as cass_cluster_set_application_name(), but with lengths for string"]
2854    #[doc = " parameters."]
2855    #[doc = ""]
2856    #[doc = " @public @memberof CassCluster"]
2857    #[doc = ""]
2858    #[doc = " @param[in] cluster"]
2859    #[doc = " @param[in] application_name"]
2860    #[doc = " @param[in] application_name_length"]
2861    pub fn cass_cluster_set_application_name_n(
2862        cluster: *mut CassCluster,
2863        application_name: *const ::std::os::raw::c_char,
2864        application_name_length: usize,
2865    );
2866}
2867extern "C" {
2868    #[doc = " Set the application version."]
2869    #[doc = ""]
2870    #[doc = " This is optional; however it provides the server with the application"]
2871    #[doc = " version that can aid in debugging issues with large clusters where there are"]
2872    #[doc = " a lot of client (or application) connections that may have different"]
2873    #[doc = " versions in use."]
2874    #[doc = ""]
2875    #[doc = " @public @memberof CassCluster"]
2876    #[doc = ""]
2877    #[doc = " @param[in] cluster"]
2878    #[doc = " @param[in] application_version"]
2879    pub fn cass_cluster_set_application_version(
2880        cluster: *mut CassCluster,
2881        application_version: *const ::std::os::raw::c_char,
2882    );
2883}
2884extern "C" {
2885    #[doc = " Same as cass_cluster_set_application_version(), but with lengths for string"]
2886    #[doc = " parameters."]
2887    #[doc = ""]
2888    #[doc = " @public @memberof CassCluster"]
2889    #[doc = ""]
2890    #[doc = " @param[in] cluster"]
2891    #[doc = " @param[in] application_version"]
2892    #[doc = " @param[in] application_version_length"]
2893    pub fn cass_cluster_set_application_version_n(
2894        cluster: *mut CassCluster,
2895        application_version: *const ::std::os::raw::c_char,
2896        application_version_length: usize,
2897    );
2898}
2899extern "C" {
2900    #[doc = " Set the client id."]
2901    #[doc = ""]
2902    #[doc = " This is optional; however it provides the server with the client ID that can"]
2903    #[doc = " aid in debugging issues with large clusters where there are a lot of client"]
2904    #[doc = " connections."]
2905    #[doc = ""]
2906    #[doc = " Default: UUID v4 generated (@see cass_session_get_client_id())"]
2907    #[doc = ""]
2908    #[doc = " @public @memberof CassCluster"]
2909    #[doc = ""]
2910    #[doc = " @param[in] cluster"]
2911    #[doc = " @param[in] client_id"]
2912    pub fn cass_cluster_set_client_id(cluster: *mut CassCluster, client_id: CassUuid);
2913}
2914extern "C" {
2915    #[doc = " Sets the amount of time between monitor reporting event messages."]
2916    #[doc = ""]
2917    #[doc = " <b>Default:</b> 300 seconds."]
2918    #[doc = ""]
2919    #[doc = " @public @memberof CassCluster"]
2920    #[doc = ""]
2921    #[doc = " @param[in] cluster"]
2922    #[doc = " @param[in] interval_secs Use 0 to disable monitor reporting event messages."]
2923    pub fn cass_cluster_set_monitor_reporting_interval(
2924        cluster: *mut CassCluster,
2925        interval_secs: ::std::os::raw::c_uint,
2926    );
2927}
2928extern "C" {
2929    #[doc = " Creates a new session."]
2930    #[doc = ""]
2931    #[doc = " @public @memberof CassSession"]
2932    #[doc = ""]
2933    #[doc = " @return Returns a session that must be freed."]
2934    #[doc = ""]
2935    #[doc = " @see cass_session_free()"]
2936    pub fn cass_session_new() -> *mut CassSession;
2937}
2938extern "C" {
2939    #[doc = " Frees a session instance. If the session is still connected it will be synchronously"]
2940    #[doc = " closed before being deallocated."]
2941    #[doc = ""]
2942    #[doc = " Important: Do not free a session in a future callback. Freeing a session in a future"]
2943    #[doc = " callback will cause a deadlock."]
2944    #[doc = ""]
2945    #[doc = " @public @memberof CassSession"]
2946    #[doc = ""]
2947    #[doc = " @param[in] session"]
2948    pub fn cass_session_free(session: *mut CassSession);
2949}
2950extern "C" {
2951    #[doc = " Connects a session."]
2952    #[doc = ""]
2953    #[doc = " @public @memberof CassSession"]
2954    #[doc = ""]
2955    #[doc = " @param[in] session"]
2956    #[doc = " @param[in] cluster The cluster configuration is copied into the session and"]
2957    #[doc = " is immutable after connection."]
2958    #[doc = " @return A future that must be freed."]
2959    #[doc = ""]
2960    #[doc = " @see cass_session_close()"]
2961    pub fn cass_session_connect(
2962        session: *mut CassSession,
2963        cluster: *const CassCluster,
2964    ) -> *mut CassFuture;
2965}
2966extern "C" {
2967    #[doc = " Connects a session and sets the keyspace."]
2968    #[doc = ""]
2969    #[doc = " @public @memberof CassSession"]
2970    #[doc = ""]
2971    #[doc = " @param[in] session"]
2972    #[doc = " @param[in] cluster The cluster configuration is copied into the session and"]
2973    #[doc = " is immutable after connection."]
2974    #[doc = " @param[in] keyspace"]
2975    #[doc = " @return A future that must be freed."]
2976    #[doc = ""]
2977    #[doc = " @see cass_session_close()"]
2978    pub fn cass_session_connect_keyspace(
2979        session: *mut CassSession,
2980        cluster: *const CassCluster,
2981        keyspace: *const ::std::os::raw::c_char,
2982    ) -> *mut CassFuture;
2983}
2984extern "C" {
2985    #[doc = " Same as cass_session_connect_keyspace(), but with lengths for string"]
2986    #[doc = " parameters."]
2987    #[doc = ""]
2988    #[doc = " @public @memberof CassSession"]
2989    #[doc = ""]
2990    #[doc = " @param[in] session"]
2991    #[doc = " @param[in] cluster"]
2992    #[doc = " @param[in] keyspace"]
2993    #[doc = " @param[in] keyspace_length"]
2994    #[doc = " @return same as cass_session_connect_keyspace()"]
2995    #[doc = ""]
2996    #[doc = " @see cass_session_connect_keyspace()"]
2997    pub fn cass_session_connect_keyspace_n(
2998        session: *mut CassSession,
2999        cluster: *const CassCluster,
3000        keyspace: *const ::std::os::raw::c_char,
3001        keyspace_length: usize,
3002    ) -> *mut CassFuture;
3003}
3004extern "C" {
3005    #[doc = " Closes the session instance, outputs a close future which can"]
3006    #[doc = " be used to determine when the session has been terminated. This allows"]
3007    #[doc = " in-flight requests to finish."]
3008    #[doc = ""]
3009    #[doc = " @public @memberof CassSession"]
3010    #[doc = ""]
3011    #[doc = " @param[in] session"]
3012    #[doc = " @return A future that must be freed."]
3013    pub fn cass_session_close(session: *mut CassSession) -> *mut CassFuture;
3014}
3015extern "C" {
3016    #[doc = " Create a prepared statement."]
3017    #[doc = ""]
3018    #[doc = " @public @memberof CassSession"]
3019    #[doc = ""]
3020    #[doc = " @param[in] session"]
3021    #[doc = " @param[in] query The query is copied into the statement object; the"]
3022    #[doc = " memory pointed to by this parameter can be freed after this call."]
3023    #[doc = " @return A future that must be freed."]
3024    #[doc = ""]
3025    #[doc = " @see cass_future_get_prepared()"]
3026    pub fn cass_session_prepare(
3027        session: *mut CassSession,
3028        query: *const ::std::os::raw::c_char,
3029    ) -> *mut CassFuture;
3030}
3031extern "C" {
3032    #[doc = " Same as cass_session_prepare(), but with lengths for string"]
3033    #[doc = " parameters."]
3034    #[doc = ""]
3035    #[doc = " @public @memberof CassSession"]
3036    #[doc = ""]
3037    #[doc = " @param[in] session"]
3038    #[doc = " @param[in] query"]
3039    #[doc = " @param[in] query_length"]
3040    #[doc = " @return same as cass_session_prepare()"]
3041    #[doc = ""]
3042    #[doc = " @see cass_session_prepare()"]
3043    pub fn cass_session_prepare_n(
3044        session: *mut CassSession,
3045        query: *const ::std::os::raw::c_char,
3046        query_length: usize,
3047    ) -> *mut CassFuture;
3048}
3049extern "C" {
3050    #[doc = " Create a prepared statement from an existing statement."]
3051    #[doc = ""]
3052    #[doc = " <b>Note:</b> Bound statements will inherit the keyspace, consistency,"]
3053    #[doc = " serial consistency, request timeout and retry policy of the existing"]
3054    #[doc = " statement."]
3055    #[doc = ""]
3056    #[doc = " @public @memberof CassSession"]
3057    #[doc = ""]
3058    #[doc = " @param[in] session"]
3059    #[doc = " @param[in] statement"]
3060    #[doc = " @return A future that must be freed."]
3061    #[doc = ""]
3062    #[doc = " @see cass_future_get_prepared()"]
3063    pub fn cass_session_prepare_from_existing(
3064        session: *mut CassSession,
3065        statement: *mut CassStatement,
3066    ) -> *mut CassFuture;
3067}
3068extern "C" {
3069    #[doc = " Execute a query or bound statement."]
3070    #[doc = ""]
3071    #[doc = " @public @memberof CassSession"]
3072    #[doc = ""]
3073    #[doc = " @param[in] session"]
3074    #[doc = " @param[in] statement"]
3075    #[doc = " @return A future that must be freed."]
3076    #[doc = ""]
3077    #[doc = " @see cass_future_get_result()"]
3078    pub fn cass_session_execute(
3079        session: *mut CassSession,
3080        statement: *const CassStatement,
3081    ) -> *mut CassFuture;
3082}
3083extern "C" {
3084    #[doc = " Execute a batch statement."]
3085    #[doc = ""]
3086    #[doc = " @cassandra{2.0+}"]
3087    #[doc = ""]
3088    #[doc = " @public @memberof CassSession"]
3089    #[doc = ""]
3090    #[doc = " @param[in] session"]
3091    #[doc = " @param[in] batch"]
3092    #[doc = " @return A future that must be freed."]
3093    #[doc = ""]
3094    #[doc = " @see cass_future_get_result()"]
3095    pub fn cass_session_execute_batch(
3096        session: *mut CassSession,
3097        batch: *const CassBatch,
3098    ) -> *mut CassFuture;
3099}
3100extern "C" {
3101    #[doc = " Gets a snapshot of this session's schema metadata. The returned"]
3102    #[doc = " snapshot of the schema metadata is not updated. This function"]
3103    #[doc = " must be called again to retrieve any schema changes since the"]
3104    #[doc = " previous call."]
3105    #[doc = ""]
3106    #[doc = " @public @memberof CassSession"]
3107    #[doc = ""]
3108    #[doc = " @param[in] session"]
3109    #[doc = " @return A schema instance that must be freed."]
3110    #[doc = ""]
3111    #[doc = " @see cass_schema_meta_free()"]
3112    pub fn cass_session_get_schema_meta(session: *const CassSession) -> *const CassSchemaMeta;
3113}
3114extern "C" {
3115    #[doc = " Gets a copy of this session's performance/diagnostic metrics."]
3116    #[doc = ""]
3117    #[doc = " @public @memberof CassSession"]
3118    #[doc = ""]
3119    #[doc = " @param[in] session"]
3120    #[doc = " @param[out] output"]
3121    pub fn cass_session_get_metrics(session: *const CassSession, output: *mut CassMetrics);
3122}
3123extern "C" {
3124    #[doc = " Gets a copy of this session's speculative execution metrics."]
3125    #[doc = ""]
3126    #[doc = " @public @memberof CassSession"]
3127    #[doc = ""]
3128    #[doc = " @param[in] session"]
3129    #[doc = " @param[out] output"]
3130    pub fn cass_session_get_speculative_execution_metrics(
3131        session: *const CassSession,
3132        output: *mut CassSpeculativeExecutionMetrics,
3133    );
3134}
3135extern "C" {
3136    #[doc = " Get the client id."]
3137    #[doc = ""]
3138    #[doc = " @public @memberof CassSession"]
3139    #[doc = ""]
3140    #[doc = " @param[in] session"]
3141    #[doc = " @return Client id."]
3142    pub fn cass_session_get_client_id(session: *mut CassSession) -> CassUuid;
3143}
3144extern "C" {
3145    #[doc = " Frees a schema metadata instance."]
3146    #[doc = ""]
3147    #[doc = " @public @memberof CassSchemaMeta"]
3148    #[doc = ""]
3149    #[doc = " @param[in] schema_meta"]
3150    pub fn cass_schema_meta_free(schema_meta: *const CassSchemaMeta);
3151}
3152extern "C" {
3153    #[doc = " Gets the version of the schema metadata snapshot."]
3154    #[doc = ""]
3155    #[doc = " @public @memberof CassSchemaMeta"]
3156    #[doc = ""]
3157    #[doc = " @param[in] schema_meta"]
3158    #[doc = ""]
3159    #[doc = " @return The snapshot version."]
3160    pub fn cass_schema_meta_snapshot_version(schema_meta: *const CassSchemaMeta) -> cass_uint32_t;
3161}
3162extern "C" {
3163    #[doc = " Gets the version of the connected Cassandra cluster."]
3164    #[doc = ""]
3165    #[doc = " @public @memberof CassSchemaMeta"]
3166    #[doc = ""]
3167    #[doc = " @param[in] schema_meta"]
3168    #[doc = ""]
3169    #[doc = " @return Cassandra's version"]
3170    pub fn cass_schema_meta_version(schema_meta: *const CassSchemaMeta) -> CassVersion;
3171}
3172extern "C" {
3173    #[doc = " Gets the keyspace metadata for the provided keyspace name."]
3174    #[doc = ""]
3175    #[doc = " @public @memberof CassSchemaMeta"]
3176    #[doc = ""]
3177    #[doc = " @param[in] schema_meta"]
3178    #[doc = " @param[in] keyspace"]
3179    #[doc = ""]
3180    #[doc = " @return The metadata for a keyspace. NULL if keyspace does not exist."]
3181    pub fn cass_schema_meta_keyspace_by_name(
3182        schema_meta: *const CassSchemaMeta,
3183        keyspace: *const ::std::os::raw::c_char,
3184    ) -> *const CassKeyspaceMeta;
3185}
3186extern "C" {
3187    #[doc = " Same as cass_schema_meta_keyspace_by_name(), but with lengths for string"]
3188    #[doc = " parameters."]
3189    #[doc = ""]
3190    #[doc = " @public @memberof CassSchemaMeta"]
3191    #[doc = ""]
3192    #[doc = " @param[in] schema_meta"]
3193    #[doc = " @param[in] keyspace"]
3194    #[doc = " @param[in] keyspace_length"]
3195    #[doc = " @return same as cass_schema_meta_keyspace_by_name()"]
3196    #[doc = ""]
3197    #[doc = " @see cass_schema_meta_keyspace_by_name()"]
3198    pub fn cass_schema_meta_keyspace_by_name_n(
3199        schema_meta: *const CassSchemaMeta,
3200        keyspace: *const ::std::os::raw::c_char,
3201        keyspace_length: usize,
3202    ) -> *const CassKeyspaceMeta;
3203}
3204extern "C" {
3205    #[doc = " Gets the name of the keyspace."]
3206    #[doc = ""]
3207    #[doc = " @public @memberof CassKeyspaceMeta"]
3208    #[doc = ""]
3209    #[doc = " @param[in] keyspace_meta"]
3210    #[doc = " @param[out] name"]
3211    #[doc = " @param[out] name_length"]
3212    pub fn cass_keyspace_meta_name(
3213        keyspace_meta: *const CassKeyspaceMeta,
3214        name: *mut *const ::std::os::raw::c_char,
3215        name_length: *mut usize,
3216    );
3217}
3218extern "C" {
3219    #[doc = " Determine if the keyspace is a virtual keyspace."]
3220    #[doc = ""]
3221    #[doc = " @public @memberof CassKeyspaceMeta"]
3222    #[doc = ""]
3223    #[doc = " @param[in] keyspace_meta"]
3224    #[doc = " @return cass_true is the keyspace is virtual, otherwise cass_false"]
3225    pub fn cass_keyspace_meta_is_virtual(keyspace_meta: *const CassKeyspaceMeta) -> cass_bool_t;
3226}
3227extern "C" {
3228    #[doc = " Gets the table metadata for the provided table name."]
3229    #[doc = ""]
3230    #[doc = " @public @memberof CassKeyspaceMeta"]
3231    #[doc = ""]
3232    #[doc = " @param[in] keyspace_meta"]
3233    #[doc = " @param[in] table"]
3234    #[doc = ""]
3235    #[doc = " @return The metadata for a table. NULL if table does not exist."]
3236    pub fn cass_keyspace_meta_table_by_name(
3237        keyspace_meta: *const CassKeyspaceMeta,
3238        table: *const ::std::os::raw::c_char,
3239    ) -> *const CassTableMeta;
3240}
3241extern "C" {
3242    #[doc = " Same as cass_keyspace_meta_table_by_name(), but with lengths for string"]
3243    #[doc = " parameters."]
3244    #[doc = ""]
3245    #[doc = " @public @memberof CassKeyspaceMeta"]
3246    #[doc = ""]
3247    #[doc = " @param[in] keyspace_meta"]
3248    #[doc = " @param[in] table"]
3249    #[doc = " @param[in] table_length"]
3250    #[doc = " @return same as cass_keyspace_meta_table_by_name()"]
3251    #[doc = ""]
3252    #[doc = " @see cass_keyspace_meta_table_by_name()"]
3253    pub fn cass_keyspace_meta_table_by_name_n(
3254        keyspace_meta: *const CassKeyspaceMeta,
3255        table: *const ::std::os::raw::c_char,
3256        table_length: usize,
3257    ) -> *const CassTableMeta;
3258}
3259extern "C" {
3260    #[doc = " Gets the materialized view metadata for the provided view name."]
3261    #[doc = ""]
3262    #[doc = " @cassandra{3.0+}"]
3263    #[doc = ""]
3264    #[doc = " @public @memberof CassKeyspaceMeta"]
3265    #[doc = ""]
3266    #[doc = " @param[in] keyspace_meta"]
3267    #[doc = " @param[in] view"]
3268    #[doc = ""]
3269    #[doc = " @return The metadata for a view. NULL if view does not exist."]
3270    pub fn cass_keyspace_meta_materialized_view_by_name(
3271        keyspace_meta: *const CassKeyspaceMeta,
3272        view: *const ::std::os::raw::c_char,
3273    ) -> *const CassMaterializedViewMeta;
3274}
3275extern "C" {
3276    #[doc = " Same as cass_keyspace_meta_materialized_view_by_name(), but with lengths for string"]
3277    #[doc = " parameters."]
3278    #[doc = ""]
3279    #[doc = " @cassandra{3.0+}"]
3280    #[doc = ""]
3281    #[doc = " @public @memberof CassKeyspaceMeta"]
3282    #[doc = ""]
3283    #[doc = " @param[in] keyspace_meta"]
3284    #[doc = " @param[in] view"]
3285    #[doc = " @param[in] view_length"]
3286    #[doc = " @return same as cass_keyspace_meta_materialized_view_by_name()"]
3287    #[doc = ""]
3288    #[doc = " @see cass_keyspace_meta_materialized_view_by_name()"]
3289    pub fn cass_keyspace_meta_materialized_view_by_name_n(
3290        keyspace_meta: *const CassKeyspaceMeta,
3291        view: *const ::std::os::raw::c_char,
3292        view_length: usize,
3293    ) -> *const CassMaterializedViewMeta;
3294}
3295extern "C" {
3296    #[doc = " Gets the data type for the provided type name."]
3297    #[doc = ""]
3298    #[doc = " @cassandra{2.1+}"]
3299    #[doc = ""]
3300    #[doc = " @public @memberof CassKeyspaceMeta"]
3301    #[doc = ""]
3302    #[doc = " @param[in] keyspace_meta"]
3303    #[doc = " @param[in] type"]
3304    #[doc = ""]
3305    #[doc = " @return The data type for a user defined type. NULL if type does not exist."]
3306    pub fn cass_keyspace_meta_user_type_by_name(
3307        keyspace_meta: *const CassKeyspaceMeta,
3308        type_: *const ::std::os::raw::c_char,
3309    ) -> *const CassDataType;
3310}
3311extern "C" {
3312    #[doc = " Same as cass_keyspace_meta_type_by_name(), but with lengths for string"]
3313    #[doc = " parameters."]
3314    #[doc = ""]
3315    #[doc = " @cassandra{2.1+}"]
3316    #[doc = ""]
3317    #[doc = " @public @memberof CassKeyspaceMeta"]
3318    #[doc = ""]
3319    #[doc = " @param[in] keyspace_meta"]
3320    #[doc = " @param[in] type"]
3321    #[doc = " @param[in] type_length"]
3322    #[doc = " @return same as cass_keyspace_meta_type_by_name()"]
3323    #[doc = ""]
3324    #[doc = " @see cass_keyspace_meta_type_by_name()"]
3325    pub fn cass_keyspace_meta_user_type_by_name_n(
3326        keyspace_meta: *const CassKeyspaceMeta,
3327        type_: *const ::std::os::raw::c_char,
3328        type_length: usize,
3329    ) -> *const CassDataType;
3330}
3331extern "C" {
3332    #[doc = " Gets the function metadata for the provided function name."]
3333    #[doc = ""]
3334    #[doc = " @cassandra{2.2+}"]
3335    #[doc = ""]
3336    #[doc = " @public @memberof CassKeyspaceMeta"]
3337    #[doc = ""]
3338    #[doc = " @param[in] keyspace_meta"]
3339    #[doc = " @param[in] name"]
3340    #[doc = " @param[in] arguments A comma delimited list of CQL types (e.g \"text,int,...\")"]
3341    #[doc = " describing the function's signature."]
3342    #[doc = ""]
3343    #[doc = " @return The data function for a user defined function. NULL if function does not exist."]
3344    pub fn cass_keyspace_meta_function_by_name(
3345        keyspace_meta: *const CassKeyspaceMeta,
3346        name: *const ::std::os::raw::c_char,
3347        arguments: *const ::std::os::raw::c_char,
3348    ) -> *const CassFunctionMeta;
3349}
3350extern "C" {
3351    #[doc = " Same as cass_keyspace_meta_function_by_name(), but with lengths for string"]
3352    #[doc = " parameters."]
3353    #[doc = ""]
3354    #[doc = " @cassandra{2.2+}"]
3355    #[doc = ""]
3356    #[doc = " @public @memberof CassKeyspaceMeta"]
3357    #[doc = ""]
3358    #[doc = " @param[in] keyspace_meta"]
3359    #[doc = " @param[in] name"]
3360    #[doc = " @param[in] name_length"]
3361    #[doc = " @param[in] arguments"]
3362    #[doc = " @param[in] arguments_length"]
3363    #[doc = " @return same as cass_keyspace_meta_function_by_name()"]
3364    #[doc = ""]
3365    #[doc = " @see cass_keyspace_meta_function_by_name()"]
3366    pub fn cass_keyspace_meta_function_by_name_n(
3367        keyspace_meta: *const CassKeyspaceMeta,
3368        name: *const ::std::os::raw::c_char,
3369        name_length: usize,
3370        arguments: *const ::std::os::raw::c_char,
3371        arguments_length: usize,
3372    ) -> *const CassFunctionMeta;
3373}
3374extern "C" {
3375    #[doc = " Gets the aggregate metadata for the provided aggregate name."]
3376    #[doc = ""]
3377    #[doc = " @cassandra{2.2+}"]
3378    #[doc = ""]
3379    #[doc = " @public @memberof CassKeyspaceMeta"]
3380    #[doc = ""]
3381    #[doc = " @param[in] keyspace_meta"]
3382    #[doc = " @param[in] name"]
3383    #[doc = " @param[in] arguments A comma delimited list of CQL types (e.g \"text,int,...\")"]
3384    #[doc = " describing the aggregate's signature."]
3385    #[doc = ""]
3386    #[doc = " @return The data aggregate for a user defined aggregate. NULL if aggregate does not exist."]
3387    pub fn cass_keyspace_meta_aggregate_by_name(
3388        keyspace_meta: *const CassKeyspaceMeta,
3389        name: *const ::std::os::raw::c_char,
3390        arguments: *const ::std::os::raw::c_char,
3391    ) -> *const CassAggregateMeta;
3392}
3393extern "C" {
3394    #[doc = " Same as cass_keyspace_meta_aggregate_by_name(), but with lengths for string"]
3395    #[doc = " parameters."]
3396    #[doc = ""]
3397    #[doc = " @cassandra{2.2+}"]
3398    #[doc = ""]
3399    #[doc = " @public @memberof CassKeyspaceMeta"]
3400    #[doc = ""]
3401    #[doc = " @param[in] keyspace_meta"]
3402    #[doc = " @param[in] name"]
3403    #[doc = " @param[in] name_length"]
3404    #[doc = " @param[in] arguments"]
3405    #[doc = " @param[in] arguments_length"]
3406    #[doc = " @return same as cass_keyspace_meta_aggregate_by_name()"]
3407    #[doc = ""]
3408    #[doc = " @see cass_keyspace_meta_aggregate_by_name()"]
3409    pub fn cass_keyspace_meta_aggregate_by_name_n(
3410        keyspace_meta: *const CassKeyspaceMeta,
3411        name: *const ::std::os::raw::c_char,
3412        name_length: usize,
3413        arguments: *const ::std::os::raw::c_char,
3414        arguments_length: usize,
3415    ) -> *const CassAggregateMeta;
3416}
3417extern "C" {
3418    #[doc = " Gets a metadata field for the provided name. Metadata fields allow direct"]
3419    #[doc = " access to the column data found in the underlying \"keyspaces\" metadata table."]
3420    #[doc = ""]
3421    #[doc = " @public @memberof CassKeyspaceMeta"]
3422    #[doc = ""]
3423    #[doc = " @param[in] keyspace_meta"]
3424    #[doc = " @param[in] name"]
3425    #[doc = " @return A metadata field value. NULL if the field does not exist."]
3426    pub fn cass_keyspace_meta_field_by_name(
3427        keyspace_meta: *const CassKeyspaceMeta,
3428        name: *const ::std::os::raw::c_char,
3429    ) -> *const CassValue;
3430}
3431extern "C" {
3432    #[doc = " Same as cass_keyspace_meta_field_by_name(), but with lengths for string"]
3433    #[doc = " parameters."]
3434    #[doc = ""]
3435    #[doc = " @public @memberof CassKeyspaceMeta"]
3436    #[doc = ""]
3437    #[doc = " @param[in] keyspace_meta"]
3438    #[doc = " @param[in] name"]
3439    #[doc = " @param[in] name_length"]
3440    #[doc = " @return same as cass_keyspace_meta_field_by_name()"]
3441    #[doc = ""]
3442    #[doc = " @see cass_keyspace_meta_field_by_name()"]
3443    pub fn cass_keyspace_meta_field_by_name_n(
3444        keyspace_meta: *const CassKeyspaceMeta,
3445        name: *const ::std::os::raw::c_char,
3446        name_length: usize,
3447    ) -> *const CassValue;
3448}
3449extern "C" {
3450    #[doc = " Gets the name of the table."]
3451    #[doc = ""]
3452    #[doc = " @public @memberof CassTableMeta"]
3453    #[doc = ""]
3454    #[doc = " @param[in] table_meta"]
3455    #[doc = " @param[out] name"]
3456    #[doc = " @param[out] name_length"]
3457    pub fn cass_table_meta_name(
3458        table_meta: *const CassTableMeta,
3459        name: *mut *const ::std::os::raw::c_char,
3460        name_length: *mut usize,
3461    );
3462}
3463extern "C" {
3464    #[doc = " Determine if the table is a virtual table."]
3465    #[doc = ""]
3466    #[doc = " @public @memberof CassTableMeta"]
3467    #[doc = ""]
3468    #[doc = " @param[in] table_meta"]
3469    #[doc = " @return cass_true is the table is virtual, otherwise cass_false"]
3470    pub fn cass_table_meta_is_virtual(table_meta: *const CassTableMeta) -> cass_bool_t;
3471}
3472extern "C" {
3473    #[doc = " Gets the column metadata for the provided column name."]
3474    #[doc = ""]
3475    #[doc = " @public @memberof CassTableMeta"]
3476    #[doc = ""]
3477    #[doc = " @param[in] table_meta"]
3478    #[doc = " @param[in] column"]
3479    #[doc = ""]
3480    #[doc = " @return The metadata for a column. NULL if column does not exist."]
3481    pub fn cass_table_meta_column_by_name(
3482        table_meta: *const CassTableMeta,
3483        column: *const ::std::os::raw::c_char,
3484    ) -> *const CassColumnMeta;
3485}
3486extern "C" {
3487    #[doc = " Same as cass_table_meta_column_by_name(), but with lengths for string"]
3488    #[doc = " parameters."]
3489    #[doc = ""]
3490    #[doc = " @public @memberof CassTableMeta"]
3491    #[doc = ""]
3492    #[doc = " @param[in] table_meta"]
3493    #[doc = " @param[in] column"]
3494    #[doc = " @param[in] column_length"]
3495    #[doc = " @return same as cass_table_meta_column_by_name()"]
3496    #[doc = ""]
3497    #[doc = " @see cass_table_meta_column_by_name()"]
3498    pub fn cass_table_meta_column_by_name_n(
3499        table_meta: *const CassTableMeta,
3500        column: *const ::std::os::raw::c_char,
3501        column_length: usize,
3502    ) -> *const CassColumnMeta;
3503}
3504extern "C" {
3505    #[doc = " Gets the total number of columns for the table."]
3506    #[doc = ""]
3507    #[doc = " @public @memberof CassTableMeta"]
3508    #[doc = ""]
3509    #[doc = " @param[in] table_meta"]
3510    #[doc = " @return The total column count."]
3511    pub fn cass_table_meta_column_count(table_meta: *const CassTableMeta) -> usize;
3512}
3513extern "C" {
3514    #[doc = " Gets the column metadata for the provided index."]
3515    #[doc = ""]
3516    #[doc = " @public @memberof CassTableMeta"]
3517    #[doc = ""]
3518    #[doc = " @param[in] table_meta"]
3519    #[doc = " @param[in] index"]
3520    #[doc = " @return The metadata for a column. NULL returned if the index is out of range."]
3521    pub fn cass_table_meta_column(
3522        table_meta: *const CassTableMeta,
3523        index: usize,
3524    ) -> *const CassColumnMeta;
3525}
3526extern "C" {
3527    #[doc = " Gets the index metadata for the provided index name."]
3528    #[doc = ""]
3529    #[doc = " @public @memberof CassTableMeta"]
3530    #[doc = ""]
3531    #[doc = " @param[in] table_meta"]
3532    #[doc = " @param[in] index"]
3533    #[doc = ""]
3534    #[doc = " @return The metadata for a index. NULL if index does not exist."]
3535    pub fn cass_table_meta_index_by_name(
3536        table_meta: *const CassTableMeta,
3537        index: *const ::std::os::raw::c_char,
3538    ) -> *const CassIndexMeta;
3539}
3540extern "C" {
3541    #[doc = " Same as cass_table_meta_index_by_name(), but with lengths for string"]
3542    #[doc = " parameters."]
3543    #[doc = ""]
3544    #[doc = " @public @memberof CassTableMeta"]
3545    #[doc = ""]
3546    #[doc = " @param[in] table_meta"]
3547    #[doc = " @param[in] index"]
3548    #[doc = " @param[in] index_length"]
3549    #[doc = " @return same as cass_table_meta_index_by_name()"]
3550    #[doc = ""]
3551    #[doc = " @see cass_table_meta_index_by_name()"]
3552    pub fn cass_table_meta_index_by_name_n(
3553        table_meta: *const CassTableMeta,
3554        index: *const ::std::os::raw::c_char,
3555        index_length: usize,
3556    ) -> *const CassIndexMeta;
3557}
3558extern "C" {
3559    #[doc = " Gets the total number of indexes for the table."]
3560    #[doc = ""]
3561    #[doc = " @public @memberof CassTableMeta"]
3562    #[doc = ""]
3563    #[doc = " @param[in] table_meta"]
3564    #[doc = " @return The total index count."]
3565    pub fn cass_table_meta_index_count(table_meta: *const CassTableMeta) -> usize;
3566}
3567extern "C" {
3568    #[doc = " Gets the index metadata for the provided index."]
3569    #[doc = ""]
3570    #[doc = " @public @memberof CassTableMeta"]
3571    #[doc = ""]
3572    #[doc = " @param[in] table_meta"]
3573    #[doc = " @param[in] index"]
3574    #[doc = " @return The metadata for a index. NULL returned if the index is out of range."]
3575    pub fn cass_table_meta_index(
3576        table_meta: *const CassTableMeta,
3577        index: usize,
3578    ) -> *const CassIndexMeta;
3579}
3580extern "C" {
3581    #[doc = " Gets the materialized view metadata for the provided view name."]
3582    #[doc = ""]
3583    #[doc = " @cassandra{3.0+}"]
3584    #[doc = ""]
3585    #[doc = " @public @memberof CassTableMeta"]
3586    #[doc = ""]
3587    #[doc = " @param[in] table_meta"]
3588    #[doc = " @param[in] view"]
3589    #[doc = ""]
3590    #[doc = " @return The metadata for a view. NULL if view does not exist."]
3591    pub fn cass_table_meta_materialized_view_by_name(
3592        table_meta: *const CassTableMeta,
3593        view: *const ::std::os::raw::c_char,
3594    ) -> *const CassMaterializedViewMeta;
3595}
3596extern "C" {
3597    #[doc = " Same as cass_table_meta_materialized_view_by_name(), but with lengths for string"]
3598    #[doc = " parameters."]
3599    #[doc = ""]
3600    #[doc = " @cassandra{3.0+}"]
3601    #[doc = ""]
3602    #[doc = " @public @memberof CassTableMeta"]
3603    #[doc = ""]
3604    #[doc = " @param[in] table_meta"]
3605    #[doc = " @param[in] view"]
3606    #[doc = " @param[in] view_length"]
3607    #[doc = " @return same as cass_table_meta_materialized_view_by_name()"]
3608    #[doc = ""]
3609    #[doc = " @see cass_table_meta_materialized_view_by_name()"]
3610    pub fn cass_table_meta_materialized_view_by_name_n(
3611        table_meta: *const CassTableMeta,
3612        view: *const ::std::os::raw::c_char,
3613        view_length: usize,
3614    ) -> *const CassMaterializedViewMeta;
3615}
3616extern "C" {
3617    #[doc = " Gets the total number of views for the table."]
3618    #[doc = ""]
3619    #[doc = " @cassandra{3.0+}"]
3620    #[doc = ""]
3621    #[doc = " @public @memberof CassTableMeta"]
3622    #[doc = ""]
3623    #[doc = " @param[in] table_meta"]
3624    #[doc = " @return The total view count."]
3625    pub fn cass_table_meta_materialized_view_count(table_meta: *const CassTableMeta) -> usize;
3626}
3627extern "C" {
3628    #[doc = " Gets the materialized view metadata for the provided index."]
3629    #[doc = ""]
3630    #[doc = " @cassandra{3.0+}"]
3631    #[doc = ""]
3632    #[doc = " @public @memberof CassTableMeta"]
3633    #[doc = ""]
3634    #[doc = " @param[in] table_meta"]
3635    #[doc = " @param[in] index"]
3636    #[doc = " @return The metadata for a view. NULL returned if the index is out of range."]
3637    pub fn cass_table_meta_materialized_view(
3638        table_meta: *const CassTableMeta,
3639        index: usize,
3640    ) -> *const CassMaterializedViewMeta;
3641}
3642extern "C" {
3643    #[doc = " Gets the number of columns for the table's partition key."]
3644    #[doc = ""]
3645    #[doc = " @public @memberof CassTableMeta"]
3646    #[doc = ""]
3647    #[doc = " @param[in] table_meta"]
3648    #[doc = " @return The count for the number of columns in the partition key."]
3649    pub fn cass_table_meta_partition_key_count(table_meta: *const CassTableMeta) -> usize;
3650}
3651extern "C" {
3652    #[doc = " Gets the partition key column metadata for the provided index."]
3653    #[doc = ""]
3654    #[doc = " @public @memberof CassTableMeta"]
3655    #[doc = ""]
3656    #[doc = " @param[in] table_meta"]
3657    #[doc = " @param[in] index"]
3658    #[doc = " @return The metadata for a column. NULL returned if the index is out of range."]
3659    #[doc = ""]
3660    #[doc = " @see cass_table_meta_partition_key_count()"]
3661    pub fn cass_table_meta_partition_key(
3662        table_meta: *const CassTableMeta,
3663        index: usize,
3664    ) -> *const CassColumnMeta;
3665}
3666extern "C" {
3667    #[doc = " Gets the number of columns for the table's clustering key."]
3668    #[doc = ""]
3669    #[doc = " @public @memberof CassTableMeta"]
3670    #[doc = ""]
3671    #[doc = " @param[in] table_meta"]
3672    #[doc = " @return The count for the number of columns in the clustering key."]
3673    pub fn cass_table_meta_clustering_key_count(table_meta: *const CassTableMeta) -> usize;
3674}
3675extern "C" {
3676    #[doc = " Gets the clustering key column metadata for the provided index."]
3677    #[doc = ""]
3678    #[doc = " @public @memberof CassTableMeta"]
3679    #[doc = ""]
3680    #[doc = " @param[in] table_meta"]
3681    #[doc = " @param[in] index"]
3682    #[doc = " @return The metadata for a column. NULL returned if the index is out of range."]
3683    #[doc = ""]
3684    #[doc = " @see cass_table_meta_clustering_key_count()"]
3685    pub fn cass_table_meta_clustering_key(
3686        table_meta: *const CassTableMeta,
3687        index: usize,
3688    ) -> *const CassColumnMeta;
3689}
3690extern "C" {
3691    #[doc = " Gets the clustering order column metadata for the provided index."]
3692    #[doc = ""]
3693    #[doc = " @public @memberof CassTableMeta"]
3694    #[doc = ""]
3695    #[doc = " @param[in] table_meta"]
3696    #[doc = " @param[in] index"]
3697    #[doc = " @return The clustering order for a column."]
3698    #[doc = " CASS_CLUSTERING_ORDER_NONE returned if the index is out of range."]
3699    #[doc = ""]
3700    #[doc = " @see cass_table_meta_clustering_key_count()"]
3701    pub fn cass_table_meta_clustering_key_order(
3702        table_meta: *const CassTableMeta,
3703        index: usize,
3704    ) -> CassClusteringOrder;
3705}
3706extern "C" {
3707    #[doc = " Gets a metadata field for the provided name. Metadata fields allow direct"]
3708    #[doc = " access to the column data found in the underlying \"tables\" metadata table."]
3709    #[doc = ""]
3710    #[doc = " @public @memberof CassTableMeta"]
3711    #[doc = ""]
3712    #[doc = " @param[in] table_meta"]
3713    #[doc = " @param[in] name"]
3714    #[doc = " @return A metadata field value. NULL if the field does not exist."]
3715    pub fn cass_table_meta_field_by_name(
3716        table_meta: *const CassTableMeta,
3717        name: *const ::std::os::raw::c_char,
3718    ) -> *const CassValue;
3719}
3720extern "C" {
3721    #[doc = " Same as cass_table_meta_field_by_name(), but with lengths for string"]
3722    #[doc = " parameters."]
3723    #[doc = ""]
3724    #[doc = " @public @memberof CassTableMeta"]
3725    #[doc = ""]
3726    #[doc = " @param[in] table_meta"]
3727    #[doc = " @param[in] name"]
3728    #[doc = " @param[in] name_length"]
3729    #[doc = " @return same as cass_table_meta_field_by_name()"]
3730    #[doc = ""]
3731    #[doc = " @see cass_table_meta_field_by_name()"]
3732    pub fn cass_table_meta_field_by_name_n(
3733        table_meta: *const CassTableMeta,
3734        name: *const ::std::os::raw::c_char,
3735        name_length: usize,
3736    ) -> *const CassValue;
3737}
3738extern "C" {
3739    #[doc = " Gets the column metadata for the provided column name."]
3740    #[doc = ""]
3741    #[doc = " @cassandra{3.0+}"]
3742    #[doc = ""]
3743    #[doc = " @public @memberof CassMaterializedViewMeta"]
3744    #[doc = ""]
3745    #[doc = " @param[in] view_meta"]
3746    #[doc = " @param[in] column"]
3747    #[doc = ""]
3748    #[doc = " @return The metadata for a column. NULL if column does not exist."]
3749    pub fn cass_materialized_view_meta_column_by_name(
3750        view_meta: *const CassMaterializedViewMeta,
3751        column: *const ::std::os::raw::c_char,
3752    ) -> *const CassColumnMeta;
3753}
3754extern "C" {
3755    #[doc = " Same as cass_materialized_view_meta_column_by_name(), but with lengths for string"]
3756    #[doc = " parameters."]
3757    #[doc = ""]
3758    #[doc = " @cassandra{3.0+}"]
3759    #[doc = ""]
3760    #[doc = " @public @memberof CassMaterializedViewMeta"]
3761    #[doc = ""]
3762    #[doc = " @param[in] view_meta"]
3763    #[doc = " @param[in] column"]
3764    #[doc = " @param[in] column_length"]
3765    #[doc = " @return same as cass_materialized_view_meta_column_by_name()"]
3766    #[doc = ""]
3767    #[doc = " @see cass_materialized_view_meta_column_by_name()"]
3768    pub fn cass_materialized_view_meta_column_by_name_n(
3769        view_meta: *const CassMaterializedViewMeta,
3770        column: *const ::std::os::raw::c_char,
3771        column_length: usize,
3772    ) -> *const CassColumnMeta;
3773}
3774extern "C" {
3775    #[doc = " Gets the name of the view."]
3776    #[doc = ""]
3777    #[doc = " @cassandra{3.0+}"]
3778    #[doc = ""]
3779    #[doc = " @public @memberof CassMaterializedViewMeta"]
3780    #[doc = ""]
3781    #[doc = " @param[in] view_meta"]
3782    #[doc = " @param[out] name"]
3783    #[doc = " @param[out] name_length"]
3784    pub fn cass_materialized_view_meta_name(
3785        view_meta: *const CassMaterializedViewMeta,
3786        name: *mut *const ::std::os::raw::c_char,
3787        name_length: *mut usize,
3788    );
3789}
3790extern "C" {
3791    #[doc = " Gets the base table of the view."]
3792    #[doc = ""]
3793    #[doc = " @cassandra{3.0+}"]
3794    #[doc = ""]
3795    #[doc = " @public @memberof CassMaterializedViewMeta"]
3796    #[doc = ""]
3797    #[doc = " @param[in] view_meta"]
3798    #[doc = ""]
3799    #[doc = " @return The base table for the view."]
3800    pub fn cass_materialized_view_meta_base_table(
3801        view_meta: *const CassMaterializedViewMeta,
3802    ) -> *const CassTableMeta;
3803}
3804extern "C" {
3805    #[doc = " Gets the total number of columns for the view."]
3806    #[doc = ""]
3807    #[doc = " @cassandra{3.0+}"]
3808    #[doc = ""]
3809    #[doc = " @public @memberof CassMaterializedViewMeta"]
3810    #[doc = ""]
3811    #[doc = " @param[in] view_meta"]
3812    #[doc = " @return The total column count."]
3813    pub fn cass_materialized_view_meta_column_count(
3814        view_meta: *const CassMaterializedViewMeta,
3815    ) -> usize;
3816}
3817extern "C" {
3818    #[doc = " Gets the column metadata for the provided index."]
3819    #[doc = ""]
3820    #[doc = " @cassandra{3.0+}"]
3821    #[doc = ""]
3822    #[doc = " @public @memberof CassMaterializedViewMeta"]
3823    #[doc = ""]
3824    #[doc = " @param[in] view_meta"]
3825    #[doc = " @param[in] index"]
3826    #[doc = " @return The metadata for a column. NULL returned if the index is out of range."]
3827    pub fn cass_materialized_view_meta_column(
3828        view_meta: *const CassMaterializedViewMeta,
3829        index: usize,
3830    ) -> *const CassColumnMeta;
3831}
3832extern "C" {
3833    #[doc = " Gets the number of columns for the view's partition key."]
3834    #[doc = ""]
3835    #[doc = " @cassandra{3.0+}"]
3836    #[doc = ""]
3837    #[doc = " @public @memberof CassMaterializedViewMeta"]
3838    #[doc = ""]
3839    #[doc = " @param[in] view_meta"]
3840    #[doc = " @return The count for the number of columns in the partition key."]
3841    pub fn cass_materialized_view_meta_partition_key_count(
3842        view_meta: *const CassMaterializedViewMeta,
3843    ) -> usize;
3844}
3845extern "C" {
3846    #[doc = " Gets the partition key column metadata for the provided index."]
3847    #[doc = ""]
3848    #[doc = " @cassandra{3.0+}"]
3849    #[doc = ""]
3850    #[doc = " @public @memberof CassMaterializedViewMeta"]
3851    #[doc = ""]
3852    #[doc = " @param[in] view_meta"]
3853    #[doc = " @param[in] index"]
3854    #[doc = " @return The metadata for a column. NULL returned if the index is out of range."]
3855    pub fn cass_materialized_view_meta_partition_key(
3856        view_meta: *const CassMaterializedViewMeta,
3857        index: usize,
3858    ) -> *const CassColumnMeta;
3859}
3860extern "C" {
3861    #[doc = " Gets the number of columns for the view's clustering key."]
3862    #[doc = ""]
3863    #[doc = " @cassandra{3.0+}"]
3864    #[doc = ""]
3865    #[doc = " @public @memberof CassMaterializedViewMeta"]
3866    #[doc = ""]
3867    #[doc = " @param[in] view_meta"]
3868    #[doc = " @return The count for the number of columns in the clustering key."]
3869    pub fn cass_materialized_view_meta_clustering_key_count(
3870        view_meta: *const CassMaterializedViewMeta,
3871    ) -> usize;
3872}
3873extern "C" {
3874    #[doc = " Gets the clustering key column metadata for the provided index."]
3875    #[doc = ""]
3876    #[doc = " @cassandra{3.0+}"]
3877    #[doc = ""]
3878    #[doc = " @public @memberof CassMaterializedViewMeta"]
3879    #[doc = ""]
3880    #[doc = " @param[in] view_meta"]
3881    #[doc = " @param[in] index"]
3882    #[doc = " @return The metadata for a column. NULL returned if the index is out of range."]
3883    pub fn cass_materialized_view_meta_clustering_key(
3884        view_meta: *const CassMaterializedViewMeta,
3885        index: usize,
3886    ) -> *const CassColumnMeta;
3887}
3888extern "C" {
3889    #[doc = " Gets the clustering order column metadata for the provided index."]
3890    #[doc = ""]
3891    #[doc = " @public @memberof CassMaterializedViewMeta"]
3892    #[doc = ""]
3893    #[doc = " @param[in] view_meta"]
3894    #[doc = " @param[in] index"]
3895    #[doc = " @return The clustering order for a column."]
3896    #[doc = " CASS_CLUSTERING_ORDER_NONE returned if the index is out of range."]
3897    #[doc = ""]
3898    #[doc = " @see cass_materialized_view_meta_clustering_key_count()"]
3899    pub fn cass_materialized_view_meta_clustering_key_order(
3900        view_meta: *const CassMaterializedViewMeta,
3901        index: usize,
3902    ) -> CassClusteringOrder;
3903}
3904extern "C" {
3905    #[doc = " Gets a metadata field for the provided name. Metadata fields allow direct"]
3906    #[doc = " access to the column data found in the underlying \"views\" metadata view."]
3907    #[doc = ""]
3908    #[doc = " @cassandra{3.0+}"]
3909    #[doc = ""]
3910    #[doc = " @public @memberof CassMaterializedViewMeta"]
3911    #[doc = ""]
3912    #[doc = " @param[in] view_meta"]
3913    #[doc = " @param[in] name"]
3914    #[doc = " @return A metadata field value. NULL if the field does not exist."]
3915    pub fn cass_materialized_view_meta_field_by_name(
3916        view_meta: *const CassMaterializedViewMeta,
3917        name: *const ::std::os::raw::c_char,
3918    ) -> *const CassValue;
3919}
3920extern "C" {
3921    #[doc = " Same as cass_materialized_view_meta_field_by_name(), but with lengths for string"]
3922    #[doc = " parameters."]
3923    #[doc = ""]
3924    #[doc = " @cassandra{3.0+}"]
3925    #[doc = ""]
3926    #[doc = " @public @memberof CassMaterializedViewMeta"]
3927    #[doc = ""]
3928    #[doc = " @param[in] view_meta"]
3929    #[doc = " @param[in] name"]
3930    #[doc = " @param[in] name_length"]
3931    #[doc = " @return same as cass_materialized_view_meta_field_by_name()"]
3932    #[doc = ""]
3933    #[doc = " @see cass_materialized_view_meta_field_by_name()"]
3934    pub fn cass_materialized_view_meta_field_by_name_n(
3935        view_meta: *const CassMaterializedViewMeta,
3936        name: *const ::std::os::raw::c_char,
3937        name_length: usize,
3938    ) -> *const CassValue;
3939}
3940extern "C" {
3941    #[doc = " Gets the name of the column."]
3942    #[doc = ""]
3943    #[doc = " @public @memberof CassColumnMeta"]
3944    #[doc = ""]
3945    #[doc = " @param[in] column_meta"]
3946    #[doc = " @param[out] name"]
3947    #[doc = " @param[out] name_length"]
3948    pub fn cass_column_meta_name(
3949        column_meta: *const CassColumnMeta,
3950        name: *mut *const ::std::os::raw::c_char,
3951        name_length: *mut usize,
3952    );
3953}
3954extern "C" {
3955    #[doc = " Gets the type of the column."]
3956    #[doc = ""]
3957    #[doc = " @public @memberof CassColumnMeta"]
3958    #[doc = ""]
3959    #[doc = " @param[in] column_meta"]
3960    #[doc = " @return The column's type."]
3961    pub fn cass_column_meta_type(column_meta: *const CassColumnMeta) -> CassColumnType;
3962}
3963extern "C" {
3964    #[doc = " Gets the data type of the column."]
3965    #[doc = ""]
3966    #[doc = " @public @memberof CassColumnMeta"]
3967    #[doc = ""]
3968    #[doc = " @param[in] column_meta"]
3969    #[doc = " @return The column's data type."]
3970    pub fn cass_column_meta_data_type(column_meta: *const CassColumnMeta) -> *const CassDataType;
3971}
3972extern "C" {
3973    #[doc = " Gets a metadata field for the provided name. Metadata fields allow direct"]
3974    #[doc = " access to the column data found in the underlying \"columns\" metadata table."]
3975    #[doc = ""]
3976    #[doc = " @public @memberof CassColumnMeta"]
3977    #[doc = ""]
3978    #[doc = " @param[in] column_meta"]
3979    #[doc = " @param[in] name"]
3980    #[doc = " @return A metadata field value. NULL if the field does not exist."]
3981    pub fn cass_column_meta_field_by_name(
3982        column_meta: *const CassColumnMeta,
3983        name: *const ::std::os::raw::c_char,
3984    ) -> *const CassValue;
3985}
3986extern "C" {
3987    #[doc = " Same as cass_column_meta_field_by_name(), but with lengths for string"]
3988    #[doc = " parameters."]
3989    #[doc = ""]
3990    #[doc = " @public @memberof CassColumnMeta"]
3991    #[doc = ""]
3992    #[doc = " @param[in] column_meta"]
3993    #[doc = " @param[in] name"]
3994    #[doc = " @param[in] name_length"]
3995    #[doc = " @return same as cass_column_meta_field_by_name()"]
3996    #[doc = ""]
3997    #[doc = " @see cass_column_meta_field_by_name()"]
3998    pub fn cass_column_meta_field_by_name_n(
3999        column_meta: *const CassColumnMeta,
4000        name: *const ::std::os::raw::c_char,
4001        name_length: usize,
4002    ) -> *const CassValue;
4003}
4004extern "C" {
4005    #[doc = " Gets the name of the index."]
4006    #[doc = ""]
4007    #[doc = " @public @memberof CassIndexMeta"]
4008    #[doc = ""]
4009    #[doc = " @param[in] index_meta"]
4010    #[doc = " @param[out] name"]
4011    #[doc = " @param[out] name_length"]
4012    pub fn cass_index_meta_name(
4013        index_meta: *const CassIndexMeta,
4014        name: *mut *const ::std::os::raw::c_char,
4015        name_length: *mut usize,
4016    );
4017}
4018extern "C" {
4019    #[doc = " Gets the type of the index."]
4020    #[doc = ""]
4021    #[doc = " @public @memberof CassIndexMeta"]
4022    #[doc = ""]
4023    #[doc = " @param[in] index_meta"]
4024    #[doc = " @return The index's type."]
4025    pub fn cass_index_meta_type(index_meta: *const CassIndexMeta) -> CassIndexType;
4026}
4027extern "C" {
4028    #[doc = " Gets the target of the index."]
4029    #[doc = ""]
4030    #[doc = " @public @memberof CassIndexMeta"]
4031    #[doc = ""]
4032    #[doc = " @param[in] index_meta"]
4033    #[doc = " @param[out] target"]
4034    #[doc = " @param[out] target_length"]
4035    pub fn cass_index_meta_target(
4036        index_meta: *const CassIndexMeta,
4037        target: *mut *const ::std::os::raw::c_char,
4038        target_length: *mut usize,
4039    );
4040}
4041extern "C" {
4042    #[doc = " Gets the options of the index."]
4043    #[doc = ""]
4044    #[doc = " @public @memberof CassIndexMeta"]
4045    #[doc = ""]
4046    #[doc = " @param[in] index_meta"]
4047    #[doc = " @return The index's options."]
4048    pub fn cass_index_meta_options(index_meta: *const CassIndexMeta) -> *const CassValue;
4049}
4050extern "C" {
4051    #[doc = " Gets a metadata field for the provided name. Metadata fields allow direct"]
4052    #[doc = " access to the index data found in the underlying \"indexes\" metadata table."]
4053    #[doc = ""]
4054    #[doc = " @public @memberof CassIndexMeta"]
4055    #[doc = ""]
4056    #[doc = " @param[in] index_meta"]
4057    #[doc = " @param[in] name"]
4058    #[doc = " @return A metadata field value. NULL if the field does not exist."]
4059    pub fn cass_index_meta_field_by_name(
4060        index_meta: *const CassIndexMeta,
4061        name: *const ::std::os::raw::c_char,
4062    ) -> *const CassValue;
4063}
4064extern "C" {
4065    #[doc = " Same as cass_index_meta_field_by_name(), but with lengths for string"]
4066    #[doc = " parameters."]
4067    #[doc = ""]
4068    #[doc = " @public @memberof CassIndexMeta"]
4069    #[doc = ""]
4070    #[doc = " @param[in] index_meta"]
4071    #[doc = " @param[in] name"]
4072    #[doc = " @param[in] name_length"]
4073    #[doc = " @return same as cass_index_meta_field_by_name()"]
4074    #[doc = ""]
4075    #[doc = " @see cass_index_meta_field_by_name()"]
4076    pub fn cass_index_meta_field_by_name_n(
4077        index_meta: *const CassIndexMeta,
4078        name: *const ::std::os::raw::c_char,
4079        name_length: usize,
4080    ) -> *const CassValue;
4081}
4082extern "C" {
4083    #[doc = " Gets the name of the function."]
4084    #[doc = ""]
4085    #[doc = " @cassandra{2.2+}"]
4086    #[doc = ""]
4087    #[doc = " @public @memberof CassFunctionMeta"]
4088    #[doc = ""]
4089    #[doc = " @param[in] function_meta"]
4090    #[doc = " @param[out] name"]
4091    #[doc = " @param[out] name_length"]
4092    pub fn cass_function_meta_name(
4093        function_meta: *const CassFunctionMeta,
4094        name: *mut *const ::std::os::raw::c_char,
4095        name_length: *mut usize,
4096    );
4097}
4098extern "C" {
4099    #[doc = " Gets the full name of the function. The full name includes the"]
4100    #[doc = " function's name and the function's signature:"]
4101    #[doc = " \"name(type1 type2.. typeN)\"."]
4102    #[doc = ""]
4103    #[doc = " @cassandra{2.2+}"]
4104    #[doc = ""]
4105    #[doc = " @public @memberof CassFunctionMeta"]
4106    #[doc = ""]
4107    #[doc = " @param[in] function_meta"]
4108    #[doc = " @param[out] full_name"]
4109    #[doc = " @param[out] full_name_length"]
4110    pub fn cass_function_meta_full_name(
4111        function_meta: *const CassFunctionMeta,
4112        full_name: *mut *const ::std::os::raw::c_char,
4113        full_name_length: *mut usize,
4114    );
4115}
4116extern "C" {
4117    #[doc = " Gets the body of the function."]
4118    #[doc = ""]
4119    #[doc = " @cassandra{2.2+}"]
4120    #[doc = ""]
4121    #[doc = " @public @memberof CassFunctionMeta"]
4122    #[doc = ""]
4123    #[doc = " @param[in] function_meta"]
4124    #[doc = " @param[out] body"]
4125    #[doc = " @param[out] body_length"]
4126    pub fn cass_function_meta_body(
4127        function_meta: *const CassFunctionMeta,
4128        body: *mut *const ::std::os::raw::c_char,
4129        body_length: *mut usize,
4130    );
4131}
4132extern "C" {
4133    #[doc = " Gets the language of the function."]
4134    #[doc = ""]
4135    #[doc = " @cassandra{2.2+}"]
4136    #[doc = ""]
4137    #[doc = " @public @memberof CassFunctionMeta"]
4138    #[doc = ""]
4139    #[doc = " @param[in] function_meta"]
4140    #[doc = " @param[out] language"]
4141    #[doc = " @param[out] language_length"]
4142    pub fn cass_function_meta_language(
4143        function_meta: *const CassFunctionMeta,
4144        language: *mut *const ::std::os::raw::c_char,
4145        language_length: *mut usize,
4146    );
4147}
4148extern "C" {
4149    #[doc = " Gets whether a function is called on \"null\"."]
4150    #[doc = ""]
4151    #[doc = " @cassandra{2.2+}"]
4152    #[doc = ""]
4153    #[doc = " @public @memberof CassFunctionMeta"]
4154    #[doc = ""]
4155    #[doc = " @param[in] function_meta"]
4156    #[doc = " @return cass_true if a function is called on null, otherwise cass_false."]
4157    pub fn cass_function_meta_called_on_null_input(
4158        function_meta: *const CassFunctionMeta,
4159    ) -> cass_bool_t;
4160}
4161extern "C" {
4162    #[doc = " Gets the number of arguments this function takes."]
4163    #[doc = ""]
4164    #[doc = " @cassandra{2.2+}"]
4165    #[doc = ""]
4166    #[doc = " @public @memberof CassFunctionMeta"]
4167    #[doc = ""]
4168    #[doc = " @param[in] function_meta"]
4169    #[doc = " @return The number of arguments."]
4170    pub fn cass_function_meta_argument_count(function_meta: *const CassFunctionMeta) -> usize;
4171}
4172extern "C" {
4173    #[doc = " Gets the function's argument name and type for the provided index."]
4174    #[doc = ""]
4175    #[doc = " @cassandra{2.2+}"]
4176    #[doc = ""]
4177    #[doc = " @public @memberof CassFunctionMeta"]
4178    #[doc = ""]
4179    #[doc = " @param[in] function_meta"]
4180    #[doc = " @param[in] index"]
4181    #[doc = " @param[out] name"]
4182    #[doc = " @param[out] name_length"]
4183    #[doc = " @param[out] type"]
4184    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
4185    pub fn cass_function_meta_argument(
4186        function_meta: *const CassFunctionMeta,
4187        index: usize,
4188        name: *mut *const ::std::os::raw::c_char,
4189        name_length: *mut usize,
4190        type_: *mut *const CassDataType,
4191    ) -> CassError;
4192}
4193extern "C" {
4194    #[doc = " Gets the function's argument and type for the provided name."]
4195    #[doc = ""]
4196    #[doc = " @cassandra{2.2+}"]
4197    #[doc = ""]
4198    #[doc = " @public @memberof CassFunctionMeta"]
4199    #[doc = ""]
4200    #[doc = " @param[in] function_meta"]
4201    #[doc = " @param[in] name"]
4202    #[doc = " @return A data type. NULL if the argument does not exist."]
4203    pub fn cass_function_meta_argument_type_by_name(
4204        function_meta: *const CassFunctionMeta,
4205        name: *const ::std::os::raw::c_char,
4206    ) -> *const CassDataType;
4207}
4208extern "C" {
4209    #[doc = " Same as cass_function_meta_argument_type_by_name(), but with lengths for string"]
4210    #[doc = " parameters."]
4211    #[doc = ""]
4212    #[doc = " @cassandra{2.2+}"]
4213    #[doc = ""]
4214    #[doc = " @public @memberof CassFunctionMeta"]
4215    #[doc = ""]
4216    #[doc = " @param[in] function_meta"]
4217    #[doc = " @param[in] name"]
4218    #[doc = " @param[in] name_length"]
4219    #[doc = " @return same as cass_function_meta_argument_type_by_name()"]
4220    #[doc = ""]
4221    #[doc = " @see cass_function_meta_argument_type_by_name()"]
4222    pub fn cass_function_meta_argument_type_by_name_n(
4223        function_meta: *const CassFunctionMeta,
4224        name: *const ::std::os::raw::c_char,
4225        name_length: usize,
4226    ) -> *const CassDataType;
4227}
4228extern "C" {
4229    #[doc = " Gets the return type of the function."]
4230    #[doc = ""]
4231    #[doc = " @cassandra{2.2+}"]
4232    #[doc = ""]
4233    #[doc = " @public @memberof CassFunctionMeta"]
4234    #[doc = ""]
4235    #[doc = " @param[in] function_meta"]
4236    #[doc = " @return The data type returned by the function."]
4237    pub fn cass_function_meta_return_type(
4238        function_meta: *const CassFunctionMeta,
4239    ) -> *const CassDataType;
4240}
4241extern "C" {
4242    #[doc = " Gets a metadata field for the provided name. Metadata fields allow direct"]
4243    #[doc = " access to the column data found in the underlying \"functions\" metadata table."]
4244    #[doc = ""]
4245    #[doc = " @cassandra{2.2+}"]
4246    #[doc = ""]
4247    #[doc = " @public @memberof CassFunctionMeta"]
4248    #[doc = ""]
4249    #[doc = " @param[in] function_meta"]
4250    #[doc = " @param[in] name"]
4251    #[doc = " @return A metadata field value. NULL if the field does not exist."]
4252    pub fn cass_function_meta_field_by_name(
4253        function_meta: *const CassFunctionMeta,
4254        name: *const ::std::os::raw::c_char,
4255    ) -> *const CassValue;
4256}
4257extern "C" {
4258    #[doc = " Same as cass_function_meta_field_by_name(), but with lengths for string"]
4259    #[doc = " parameters."]
4260    #[doc = ""]
4261    #[doc = " @cassandra{2.2+}"]
4262    #[doc = ""]
4263    #[doc = " @public @memberof CassFunctionMeta"]
4264    #[doc = ""]
4265    #[doc = " @param[in] function_meta"]
4266    #[doc = " @param[in] name"]
4267    #[doc = " @param[in] name_length"]
4268    #[doc = " @return same as cass_function_meta_field_by_name()"]
4269    #[doc = ""]
4270    #[doc = " @see cass_function_meta_field_by_name()"]
4271    pub fn cass_function_meta_field_by_name_n(
4272        function_meta: *const CassFunctionMeta,
4273        name: *const ::std::os::raw::c_char,
4274        name_length: usize,
4275    ) -> *const CassValue;
4276}
4277extern "C" {
4278    #[doc = " Gets the name of the aggregate."]
4279    #[doc = ""]
4280    #[doc = " @cassandra{2.2+}"]
4281    #[doc = ""]
4282    #[doc = " @public @memberof CassAggregateMeta"]
4283    #[doc = ""]
4284    #[doc = " @param[in] aggregate_meta"]
4285    #[doc = " @param[out] name"]
4286    #[doc = " @param[out] name_length"]
4287    pub fn cass_aggregate_meta_name(
4288        aggregate_meta: *const CassAggregateMeta,
4289        name: *mut *const ::std::os::raw::c_char,
4290        name_length: *mut usize,
4291    );
4292}
4293extern "C" {
4294    #[doc = " Gets the full name of the aggregate. The full name includes the"]
4295    #[doc = " aggregate's name and the aggregate's signature:"]
4296    #[doc = " \"name(type1 type2.. typeN)\"."]
4297    #[doc = ""]
4298    #[doc = " @cassandra{2.2+}"]
4299    #[doc = ""]
4300    #[doc = " @public @memberof CassAggregateMeta"]
4301    #[doc = ""]
4302    #[doc = " @param[in] aggregate_meta"]
4303    #[doc = " @param[out] full_name"]
4304    #[doc = " @param[out] full_name_length"]
4305    pub fn cass_aggregate_meta_full_name(
4306        aggregate_meta: *const CassAggregateMeta,
4307        full_name: *mut *const ::std::os::raw::c_char,
4308        full_name_length: *mut usize,
4309    );
4310}
4311extern "C" {
4312    #[doc = " Gets the number of arguments this aggregate takes."]
4313    #[doc = ""]
4314    #[doc = " @cassandra{2.2+}"]
4315    #[doc = ""]
4316    #[doc = " @public @memberof CassAggregateMeta"]
4317    #[doc = ""]
4318    #[doc = " @param[in] aggregate_meta"]
4319    #[doc = " @return The number of arguments."]
4320    pub fn cass_aggregate_meta_argument_count(aggregate_meta: *const CassAggregateMeta) -> usize;
4321}
4322extern "C" {
4323    #[doc = " Gets the aggregate's argument type for the provided index."]
4324    #[doc = ""]
4325    #[doc = " @cassandra{2.2+}"]
4326    #[doc = ""]
4327    #[doc = " @public @memberof CassAggregateMeta"]
4328    #[doc = ""]
4329    #[doc = " @param[in] aggregate_meta"]
4330    #[doc = " @param[in] index"]
4331    #[doc = " @return The data type for argument. NULL returned if the index is out of range."]
4332    pub fn cass_aggregate_meta_argument_type(
4333        aggregate_meta: *const CassAggregateMeta,
4334        index: usize,
4335    ) -> *const CassDataType;
4336}
4337extern "C" {
4338    #[doc = " Gets the return type of the aggregate."]
4339    #[doc = ""]
4340    #[doc = " @cassandra{2.2+}"]
4341    #[doc = ""]
4342    #[doc = " @public @memberof CassAggregateMeta"]
4343    #[doc = ""]
4344    #[doc = " @param[in] aggregate_meta"]
4345    #[doc = " @return The data type returned by the aggregate."]
4346    pub fn cass_aggregate_meta_return_type(
4347        aggregate_meta: *const CassAggregateMeta,
4348    ) -> *const CassDataType;
4349}
4350extern "C" {
4351    #[doc = " Gets the state type of the aggregate."]
4352    #[doc = ""]
4353    #[doc = " @cassandra{2.2+}"]
4354    #[doc = ""]
4355    #[doc = " @public @memberof CassAggregateMeta"]
4356    #[doc = ""]
4357    #[doc = " @param[in] aggregate_meta"]
4358    #[doc = " @return The data type of the aggregate's state."]
4359    pub fn cass_aggregate_meta_state_type(
4360        aggregate_meta: *const CassAggregateMeta,
4361    ) -> *const CassDataType;
4362}
4363extern "C" {
4364    #[doc = " Gets the function metadata for the aggregate's state function."]
4365    #[doc = ""]
4366    #[doc = " @cassandra{2.2+}"]
4367    #[doc = ""]
4368    #[doc = " @public @memberof CassAggregateMeta"]
4369    #[doc = ""]
4370    #[doc = " @param[in] aggregate_meta"]
4371    #[doc = " @return The function metadata for the state function."]
4372    pub fn cass_aggregate_meta_state_func(
4373        aggregate_meta: *const CassAggregateMeta,
4374    ) -> *const CassFunctionMeta;
4375}
4376extern "C" {
4377    #[doc = " Gets the function metadata for the aggregates's final function."]
4378    #[doc = ""]
4379    #[doc = " @cassandra{2.2+}"]
4380    #[doc = ""]
4381    #[doc = " @public @memberof CassAggregateMeta"]
4382    #[doc = ""]
4383    #[doc = " @param[in] aggregate_meta"]
4384    #[doc = " @return The function metadata for the final function."]
4385    pub fn cass_aggregate_meta_final_func(
4386        aggregate_meta: *const CassAggregateMeta,
4387    ) -> *const CassFunctionMeta;
4388}
4389extern "C" {
4390    #[doc = " Gets the initial condition value for the aggregate."]
4391    #[doc = ""]
4392    #[doc = " @cassandra{2.2+}"]
4393    #[doc = ""]
4394    #[doc = " <b>Note:</b> The value of the initial condition will always be"]
4395    #[doc = " a \"varchar\" type for Cassandra 3.0+."]
4396    #[doc = ""]
4397    #[doc = " @public @memberof CassAggregateMeta"]
4398    #[doc = ""]
4399    #[doc = " @param[in] aggregate_meta"]
4400    #[doc = " @return The value of the initial condition."]
4401    pub fn cass_aggregate_meta_init_cond(
4402        aggregate_meta: *const CassAggregateMeta,
4403    ) -> *const CassValue;
4404}
4405extern "C" {
4406    #[doc = " Gets a metadata field for the provided name. Metadata fields allow direct"]
4407    #[doc = " access to the column data found in the underlying \"aggregates\" metadata table."]
4408    #[doc = ""]
4409    #[doc = " @cassandra{2.2+}"]
4410    #[doc = ""]
4411    #[doc = " @public @memberof CassAggregateMeta"]
4412    #[doc = ""]
4413    #[doc = " @param[in] aggregate_meta"]
4414    #[doc = " @param[in] name"]
4415    #[doc = " @return A metadata field value. NULL if the field does not exist."]
4416    pub fn cass_aggregate_meta_field_by_name(
4417        aggregate_meta: *const CassAggregateMeta,
4418        name: *const ::std::os::raw::c_char,
4419    ) -> *const CassValue;
4420}
4421extern "C" {
4422    #[doc = " Same as cass_aggregate_meta_field_by_name(), but with lengths for string"]
4423    #[doc = " parameters."]
4424    #[doc = ""]
4425    #[doc = " @cassandra{2.2+}"]
4426    #[doc = ""]
4427    #[doc = " @public @memberof CassAggregateMeta"]
4428    #[doc = ""]
4429    #[doc = " @param[in] aggregate_meta"]
4430    #[doc = " @param[in] name"]
4431    #[doc = " @param[in] name_length"]
4432    #[doc = " @return same as cass_aggregate_meta_field_by_name()"]
4433    #[doc = ""]
4434    #[doc = " @see cass_aggregate_meta_field_by_name()"]
4435    pub fn cass_aggregate_meta_field_by_name_n(
4436        aggregate_meta: *const CassAggregateMeta,
4437        name: *const ::std::os::raw::c_char,
4438        name_length: usize,
4439    ) -> *const CassValue;
4440}
4441extern "C" {
4442    #[doc = " Creates a new SSL context."]
4443    #[doc = ""]
4444    #[doc = " @public @memberof CassSsl"]
4445    #[doc = ""]
4446    #[doc = " @return Returns a SSL context that must be freed."]
4447    #[doc = ""]
4448    #[doc = " @see cass_ssl_free()"]
4449    pub fn cass_ssl_new() -> *mut CassSsl;
4450}
4451extern "C" {
4452    #[doc = " Creates a new SSL context <b>without</b> initializing the underlying library"]
4453    #[doc = " implementation. The integrating application is responsible for"]
4454    #[doc = " initializing the underlying SSL implementation. The driver uses the SSL"]
4455    #[doc = " implmentation from several threads concurrently so it's important that it's"]
4456    #[doc = " properly setup for multithreaded use e.g. lock callbacks for OpenSSL."]
4457    #[doc = ""]
4458    #[doc = " <b>Important:</b> The SSL library must be initialized before calling this"]
4459    #[doc = " function."]
4460    #[doc = ""]
4461    #[doc = " When using OpenSSL the following components need to be initialized:"]
4462    #[doc = ""]
4463    #[doc = " SSL_library_init();"]
4464    #[doc = " SSL_load_error_strings();"]
4465    #[doc = " OpenSSL_add_all_algorithms();"]
4466    #[doc = ""]
4467    #[doc = " The following thread-safety callbacks also need to be set:"]
4468    #[doc = ""]
4469    #[doc = " CRYPTO_set_locking_callback(...);"]
4470    #[doc = " CRYPTO_set_id_callback(...);"]
4471    #[doc = ""]
4472    #[doc = " @public @memberof CassSsl"]
4473    #[doc = ""]
4474    #[doc = " @return Returns a SSL context that must be freed."]
4475    #[doc = ""]
4476    #[doc = " @see cass_ssl_new()"]
4477    #[doc = " @see cass_ssl_free()"]
4478    pub fn cass_ssl_new_no_lib_init() -> *mut CassSsl;
4479}
4480extern "C" {
4481    #[doc = " Frees a SSL context instance."]
4482    #[doc = ""]
4483    #[doc = " @public @memberof CassSsl"]
4484    #[doc = ""]
4485    #[doc = " @param[in] ssl"]
4486    pub fn cass_ssl_free(ssl: *mut CassSsl);
4487}
4488extern "C" {
4489    #[doc = " Adds a trusted certificate. This is used to verify"]
4490    #[doc = " the peer's certificate."]
4491    #[doc = ""]
4492    #[doc = " @public @memberof CassSsl"]
4493    #[doc = ""]
4494    #[doc = " @param[in] ssl"]
4495    #[doc = " @param[in] cert PEM formatted certificate string"]
4496    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
4497    pub fn cass_ssl_add_trusted_cert(
4498        ssl: *mut CassSsl,
4499        cert: *const ::std::os::raw::c_char,
4500    ) -> CassError;
4501}
4502extern "C" {
4503    #[doc = " Same as cass_ssl_add_trusted_cert(), but with lengths for string"]
4504    #[doc = " parameters."]
4505    #[doc = ""]
4506    #[doc = " @public @memberof CassSsl"]
4507    #[doc = ""]
4508    #[doc = " @param[in] ssl"]
4509    #[doc = " @param[in] cert"]
4510    #[doc = " @param[in] cert_length"]
4511    #[doc = " @return same as cass_ssl_add_trusted_cert()"]
4512    #[doc = ""]
4513    #[doc = " @see cass_ssl_add_trusted_cert()"]
4514    pub fn cass_ssl_add_trusted_cert_n(
4515        ssl: *mut CassSsl,
4516        cert: *const ::std::os::raw::c_char,
4517        cert_length: usize,
4518    ) -> CassError;
4519}
4520extern "C" {
4521    #[doc = " Sets verification performed on the peer's certificate."]
4522    #[doc = ""]
4523    #[doc = " CASS_SSL_VERIFY_NONE - No verification is performed"]
4524    #[doc = " CASS_SSL_VERIFY_PEER_CERT - Certificate is present and valid"]
4525    #[doc = " CASS_SSL_VERIFY_PEER_IDENTITY - IP address matches the certificate's"]
4526    #[doc = " common name or one of its subject alternative names. This implies the"]
4527    #[doc = " certificate is also present."]
4528    #[doc = " CASS_SSL_VERIFY_PEER_IDENTITY_DNS - Hostname matches the certificate's"]
4529    #[doc = " common name or one of its subject alternative names. This implies the"]
4530    #[doc = " certificate is also present. Hostname resolution must also be enabled."]
4531    #[doc = ""]
4532    #[doc = " <b>Default:</b> CASS_SSL_VERIFY_PEER_CERT"]
4533    #[doc = ""]
4534    #[doc = " @public @memberof CassSsl"]
4535    #[doc = ""]
4536    #[doc = " @param[in] ssl"]
4537    #[doc = " @param[in] flags"]
4538    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
4539    #[doc = ""]
4540    #[doc = " @see cass_cluster_set_use_hostname_resolution()"]
4541    pub fn cass_ssl_set_verify_flags(ssl: *mut CassSsl, flags: ::std::os::raw::c_int);
4542}
4543extern "C" {
4544    #[doc = " Set client-side certificate chain. This is used to authenticate"]
4545    #[doc = " the client on the server-side. This should contain the entire"]
4546    #[doc = " Certificate chain starting with the certificate itself."]
4547    #[doc = ""]
4548    #[doc = " @public @memberof CassSsl"]
4549    #[doc = ""]
4550    #[doc = " @param[in] ssl"]
4551    #[doc = " @param[in] cert PEM formatted certificate string"]
4552    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
4553    pub fn cass_ssl_set_cert(ssl: *mut CassSsl, cert: *const ::std::os::raw::c_char) -> CassError;
4554}
4555extern "C" {
4556    #[doc = " Same as cass_ssl_set_cert(), but with lengths for string"]
4557    #[doc = " parameters."]
4558    #[doc = ""]
4559    #[doc = " @public @memberof CassSsl"]
4560    #[doc = ""]
4561    #[doc = " @param[in] ssl"]
4562    #[doc = " @param[in] cert"]
4563    #[doc = " @param[in] cert_length"]
4564    #[doc = " @return same as cass_ssl_set_cert()"]
4565    #[doc = ""]
4566    #[doc = " @see cass_ssl_set_cert()"]
4567    pub fn cass_ssl_set_cert_n(
4568        ssl: *mut CassSsl,
4569        cert: *const ::std::os::raw::c_char,
4570        cert_length: usize,
4571    ) -> CassError;
4572}
4573extern "C" {
4574    #[doc = " Set client-side private key. This is used to authenticate"]
4575    #[doc = " the client on the server-side."]
4576    #[doc = ""]
4577    #[doc = " @public @memberof CassSsl"]
4578    #[doc = ""]
4579    #[doc = " @param[in] ssl"]
4580    #[doc = " @param[in] key PEM formatted key string"]
4581    #[doc = " @param[in] password used to decrypt key"]
4582    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
4583    pub fn cass_ssl_set_private_key(
4584        ssl: *mut CassSsl,
4585        key: *const ::std::os::raw::c_char,
4586        password: *const ::std::os::raw::c_char,
4587    ) -> CassError;
4588}
4589extern "C" {
4590    #[doc = " Same as cass_ssl_set_private_key(), but with lengths for string"]
4591    #[doc = " parameters."]
4592    #[doc = ""]
4593    #[doc = " @public @memberof CassSsl"]
4594    #[doc = ""]
4595    #[doc = " @param[in] ssl"]
4596    #[doc = " @param[in] key"]
4597    #[doc = " @param[in] key_length"]
4598    #[doc = " @param[in] password"]
4599    #[doc = " @param[in] password_length"]
4600    #[doc = " @return same as cass_ssl_set_private_key()"]
4601    #[doc = ""]
4602    #[doc = " @see cass_ssl_set_private_key()"]
4603    pub fn cass_ssl_set_private_key_n(
4604        ssl: *mut CassSsl,
4605        key: *const ::std::os::raw::c_char,
4606        key_length: usize,
4607        password: *const ::std::os::raw::c_char,
4608        password_length: usize,
4609    ) -> CassError;
4610}
4611extern "C" {
4612    #[doc = " Gets the IP address of the host being authenticated."]
4613    #[doc = ""]
4614    #[doc = " @param[in] auth"]
4615    #[doc = " @param[out] address"]
4616    #[doc = ""]
4617    #[doc = " @public @memberof CassAuthenticator"]
4618    pub fn cass_authenticator_address(auth: *const CassAuthenticator, address: *mut CassInet);
4619}
4620extern "C" {
4621    #[doc = " Gets the hostname of the host being authenticated."]
4622    #[doc = ""]
4623    #[doc = " @public @memberof CassAuthenticator"]
4624    #[doc = ""]
4625    #[doc = " @param[in] auth"]
4626    #[doc = " @param[out] length"]
4627    #[doc = " @return A null-terminated string."]
4628    pub fn cass_authenticator_hostname(
4629        auth: *const CassAuthenticator,
4630        length: *mut usize,
4631    ) -> *const ::std::os::raw::c_char;
4632}
4633extern "C" {
4634    #[doc = " Gets the class name for the server-side IAuthentication implementation."]
4635    #[doc = ""]
4636    #[doc = " @public @memberof CassAuthenticator"]
4637    #[doc = ""]
4638    #[doc = " @param[in] auth"]
4639    #[doc = " @param[out] length"]
4640    #[doc = " @return A null-terminated string."]
4641    pub fn cass_authenticator_class_name(
4642        auth: *const CassAuthenticator,
4643        length: *mut usize,
4644    ) -> *const ::std::os::raw::c_char;
4645}
4646extern "C" {
4647    #[doc = " Gets the user data created during the authenticator exchange. This"]
4648    #[doc = " is set using cass_authenticator_set_exchange_data()."]
4649    #[doc = ""]
4650    #[doc = " @public @memberof CassAuthenticator"]
4651    #[doc = ""]
4652    #[doc = " @param[in] auth"]
4653    #[doc = " @return User specified exchange data previously set by"]
4654    #[doc = " cass_authenticator_set_exchange_data()."]
4655    #[doc = ""]
4656    #[doc = " @see cass_authenticator_set_exchange_data()"]
4657    pub fn cass_authenticator_exchange_data(
4658        auth: *mut CassAuthenticator,
4659    ) -> *mut ::std::os::raw::c_void;
4660}
4661extern "C" {
4662    #[doc = " Sets the user data to be used during the authenticator exchange."]
4663    #[doc = ""]
4664    #[doc = " @public @memberof CassAuthenticator"]
4665    #[doc = ""]
4666    #[doc = " @param[in] auth"]
4667    #[doc = " @param[in] exchange_data"]
4668    #[doc = ""]
4669    #[doc = " @see cass_authenticator_exchange_data()"]
4670    pub fn cass_authenticator_set_exchange_data(
4671        auth: *mut CassAuthenticator,
4672        exchange_data: *mut ::std::os::raw::c_void,
4673    );
4674}
4675extern "C" {
4676    #[doc = " Gets a response token buffer of the provided size."]
4677    #[doc = ""]
4678    #[doc = " @public @memberof CassAuthenticator"]
4679    #[doc = ""]
4680    #[doc = " @param[in] auth"]
4681    #[doc = " @param[in] size"]
4682    #[doc = " @return A buffer to copy the response token."]
4683    pub fn cass_authenticator_response(
4684        auth: *mut CassAuthenticator,
4685        size: usize,
4686    ) -> *mut ::std::os::raw::c_char;
4687}
4688extern "C" {
4689    #[doc = " Sets the response token."]
4690    #[doc = ""]
4691    #[doc = " @public @memberof CassAuthenticator"]
4692    #[doc = ""]
4693    #[doc = " @param[in] auth"]
4694    #[doc = " @param[in] response"]
4695    #[doc = " @param[in] response_size"]
4696    pub fn cass_authenticator_set_response(
4697        auth: *mut CassAuthenticator,
4698        response: *const ::std::os::raw::c_char,
4699        response_size: usize,
4700    );
4701}
4702extern "C" {
4703    #[doc = " Sets an error for the authenticator exchange."]
4704    #[doc = ""]
4705    #[doc = " @public @memberof CassAuthenticator"]
4706    #[doc = ""]
4707    #[doc = " @param[in] auth"]
4708    #[doc = " @param[in] message"]
4709    pub fn cass_authenticator_set_error(
4710        auth: *mut CassAuthenticator,
4711        message: *const ::std::os::raw::c_char,
4712    );
4713}
4714extern "C" {
4715    #[doc = " Same as cass_authenticator_set_error(), but with lengths for string"]
4716    #[doc = " parameters."]
4717    #[doc = ""]
4718    #[doc = " @public @memberof CassAuthenticator"]
4719    #[doc = ""]
4720    #[doc = " @param[in] auth"]
4721    #[doc = " @param[in] message"]
4722    #[doc = " @param[in] message_length"]
4723    #[doc = ""]
4724    #[doc = " @see cass_authenticator_set_error()"]
4725    pub fn cass_authenticator_set_error_n(
4726        auth: *mut CassAuthenticator,
4727        message: *const ::std::os::raw::c_char,
4728        message_length: usize,
4729    );
4730}
4731extern "C" {
4732    #[doc = " Frees a future instance. A future can be freed anytime."]
4733    #[doc = ""]
4734    #[doc = " @public @memberof CassFuture"]
4735    pub fn cass_future_free(future: *mut CassFuture);
4736}
4737extern "C" {
4738    #[doc = " Sets a callback that is called when a future is set"]
4739    #[doc = ""]
4740    #[doc = " @public @memberof CassFuture"]
4741    #[doc = ""]
4742    #[doc = " @param[in] future"]
4743    #[doc = " @param[in] callback"]
4744    #[doc = " @param[in] data"]
4745    #[doc = " @return CASS_OK if successful, otherwise an error occurred"]
4746    pub fn cass_future_set_callback(
4747        future: *mut CassFuture,
4748        callback: CassFutureCallback,
4749        data: *mut ::std::os::raw::c_void,
4750    ) -> CassError;
4751}
4752extern "C" {
4753    #[doc = " Gets the set status of the future."]
4754    #[doc = ""]
4755    #[doc = " @public @memberof CassFuture"]
4756    #[doc = ""]
4757    #[doc = " @param[in] future"]
4758    #[doc = " @return true if set"]
4759    pub fn cass_future_ready(future: *mut CassFuture) -> cass_bool_t;
4760}
4761extern "C" {
4762    #[doc = " Wait for the future to be set with either a result or error."]
4763    #[doc = ""]
4764    #[doc = " <b>Important:</b> Do not wait in a future callback. Waiting in a future"]
4765    #[doc = " callback will cause a deadlock."]
4766    #[doc = ""]
4767    #[doc = " @public @memberof CassFuture"]
4768    #[doc = ""]
4769    #[doc = " @param[in] future"]
4770    pub fn cass_future_wait(future: *mut CassFuture);
4771}
4772extern "C" {
4773    #[doc = " Wait for the future to be set or timeout."]
4774    #[doc = ""]
4775    #[doc = " @public @memberof CassFuture"]
4776    #[doc = ""]
4777    #[doc = " @param[in] future"]
4778    #[doc = " @param[in] timeout_us wait time in microseconds"]
4779    #[doc = " @return false if returned due to timeout"]
4780    pub fn cass_future_wait_timed(
4781        future: *mut CassFuture,
4782        timeout_us: cass_duration_t,
4783    ) -> cass_bool_t;
4784}
4785extern "C" {
4786    #[doc = " Gets the result of a successful future. If the future is not ready this method will"]
4787    #[doc = " wait for the future to be set."]
4788    #[doc = ""]
4789    #[doc = " @public @memberof CassFuture"]
4790    #[doc = ""]
4791    #[doc = " @param[in] future"]
4792    #[doc = " @return CassResult instance if successful, otherwise NULL for error. The return instance"]
4793    #[doc = " must be freed using cass_result_free()."]
4794    #[doc = ""]
4795    #[doc = " @see cass_session_execute() and cass_session_execute_batch()"]
4796    pub fn cass_future_get_result(future: *mut CassFuture) -> *const CassResult;
4797}
4798extern "C" {
4799    #[doc = " Gets the error result from a future that failed as a result of a server error. If the"]
4800    #[doc = " future is not ready this method will wait for the future to be set."]
4801    #[doc = ""]
4802    #[doc = " @public @memberof CassFuture"]
4803    #[doc = ""]
4804    #[doc = " @param[in] future"]
4805    #[doc = " @return CassErrorResult instance if the request failed with a server error,"]
4806    #[doc = " otherwise NULL if the request was successful or the failure was not caused by"]
4807    #[doc = " a server error. The return instance must be freed using cass_error_result_free()."]
4808    #[doc = ""]
4809    #[doc = " @see cass_session_execute() and cass_session_execute_batch()"]
4810    pub fn cass_future_get_error_result(future: *mut CassFuture) -> *const CassErrorResult;
4811}
4812extern "C" {
4813    #[doc = " Gets the result of a successful future. If the future is not ready this method will"]
4814    #[doc = " wait for the future to be set. The first successful call consumes the future, all"]
4815    #[doc = " subsequent calls will return NULL."]
4816    #[doc = ""]
4817    #[doc = " @public @memberof CassFuture"]
4818    #[doc = ""]
4819    #[doc = " @param[in] future"]
4820    #[doc = " @return CassPrepared instance if successful, otherwise NULL for error. The return instance"]
4821    #[doc = " must be freed using cass_prepared_free()."]
4822    #[doc = ""]
4823    #[doc = " @see cass_session_prepare()"]
4824    pub fn cass_future_get_prepared(future: *mut CassFuture) -> *const CassPrepared;
4825}
4826extern "C" {
4827    #[doc = " Gets the error code from future. If the future is not ready this method will"]
4828    #[doc = " wait for the future to be set."]
4829    #[doc = ""]
4830    #[doc = " @public @memberof CassFuture"]
4831    #[doc = ""]
4832    #[doc = " @param[in] future"]
4833    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
4834    #[doc = ""]
4835    #[doc = " @see cass_error_desc()"]
4836    pub fn cass_future_error_code(future: *mut CassFuture) -> CassError;
4837}
4838extern "C" {
4839    #[doc = " Gets the error message from future. If the future is not ready this method will"]
4840    #[doc = " wait for the future to be set."]
4841    #[doc = ""]
4842    #[doc = " @public @memberof CassFuture"]
4843    #[doc = ""]
4844    #[doc = " @param[in] future"]
4845    #[doc = " @param[out] message Empty string returned if successful, otherwise"]
4846    #[doc = " a message describing the error is returned."]
4847    #[doc = " @param[out] message_length"]
4848    pub fn cass_future_error_message(
4849        future: *mut CassFuture,
4850        message: *mut *const ::std::os::raw::c_char,
4851        message_length: *mut usize,
4852    );
4853}
4854extern "C" {
4855    #[doc = " Gets the tracing ID associated with the request."]
4856    #[doc = ""]
4857    #[doc = " @public @memberof CassFuture"]
4858    #[doc = ""]
4859    #[doc = " @param[in] future"]
4860    #[doc = " @param[out] tracing_id"]
4861    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
4862    pub fn cass_future_tracing_id(future: *mut CassFuture, tracing_id: *mut CassUuid) -> CassError;
4863}
4864extern "C" {
4865    #[doc = " Gets a the number of custom payload items from a response future. If the future is not"]
4866    #[doc = " ready this method will wait for the future to be set."]
4867    #[doc = ""]
4868    #[doc = " @cassandra{2.2+}"]
4869    #[doc = ""]
4870    #[doc = " @public @memberof CassFuture"]
4871    #[doc = ""]
4872    #[doc = " @param[in] future"]
4873    #[doc = " @return the number of custom payload items."]
4874    pub fn cass_future_custom_payload_item_count(future: *mut CassFuture) -> usize;
4875}
4876extern "C" {
4877    #[doc = " Gets a custom payload item from a response future at the specified index. If the future is not"]
4878    #[doc = " ready this method will wait for the future to be set."]
4879    #[doc = ""]
4880    #[doc = " @cassandra{2.2+}"]
4881    #[doc = ""]
4882    #[doc = " @public @memberof CassFuture"]
4883    #[doc = ""]
4884    #[doc = " @param[in] future"]
4885    #[doc = " @param[in] index"]
4886    #[doc = " @param[out] name"]
4887    #[doc = " @param[out] name_length"]
4888    #[doc = " @param[out] value"]
4889    #[doc = " @param[out] value_size"]
4890    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
4891    pub fn cass_future_custom_payload_item(
4892        future: *mut CassFuture,
4893        index: usize,
4894        name: *mut *const ::std::os::raw::c_char,
4895        name_length: *mut usize,
4896        value: *mut *const cass_byte_t,
4897        value_size: *mut usize,
4898    ) -> CassError;
4899}
4900extern "C" {
4901    #[doc = " Gets the node that acted as coordinator for this query. If the future is not"]
4902    #[doc = " ready this method will wait for the future to be set."]
4903    #[doc = ""]
4904    #[doc = " @public @memberof CassFuture"]
4905    #[doc = ""]
4906    #[doc = " @param future"]
4907    #[doc = " @return The coordinator node that handled the query. The lifetime of this"]
4908    #[doc = " object is the same as the result object it came from. NULL can be returned"]
4909    #[doc = " if the future is not a response future or if an error occurs before a"]
4910    #[doc = " coordinator responds."]
4911    #[doc = ""]
4912    #[doc = " @see cass_statement_set_node()"]
4913    pub fn cass_future_coordinator(future: *mut CassFuture) -> *const CassNode;
4914}
4915extern "C" {
4916    #[doc = " Creates a new query statement."]
4917    #[doc = ""]
4918    #[doc = " @public @memberof CassStatement"]
4919    #[doc = ""]
4920    #[doc = " @param[in] query The query is copied into the statement object; the"]
4921    #[doc = " memory pointed to by this parameter can be freed after this call."]
4922    #[doc = " @param[in] parameter_count The number of bound parameters."]
4923    #[doc = " @return Returns a statement that must be freed."]
4924    #[doc = ""]
4925    #[doc = " @see cass_statement_free()"]
4926    pub fn cass_statement_new(
4927        query: *const ::std::os::raw::c_char,
4928        parameter_count: usize,
4929    ) -> *mut CassStatement;
4930}
4931extern "C" {
4932    #[doc = " Same as cass_statement_new(), but with lengths for string"]
4933    #[doc = " parameters."]
4934    #[doc = ""]
4935    #[doc = " @public @memberof CassStatement"]
4936    #[doc = ""]
4937    #[doc = " @param[in] query"]
4938    #[doc = " @param[in] query_length"]
4939    #[doc = " @param[in] parameter_count"]
4940    #[doc = " @return same as cass_statement_new()"]
4941    #[doc = ""]
4942    #[doc = " @see cass_statement_new()"]
4943    pub fn cass_statement_new_n(
4944        query: *const ::std::os::raw::c_char,
4945        query_length: usize,
4946        parameter_count: usize,
4947    ) -> *mut CassStatement;
4948}
4949extern "C" {
4950    #[doc = " Clear and/or resize the statement's parameters."]
4951    #[doc = ""]
4952    #[doc = " @public @memberof CassStatement"]
4953    #[doc = ""]
4954    #[doc = " @param[in] statement"]
4955    #[doc = " @param[in] count"]
4956    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
4957    pub fn cass_statement_reset_parameters(
4958        statement: *mut CassStatement,
4959        count: usize,
4960    ) -> CassError;
4961}
4962extern "C" {
4963    #[doc = " Frees a statement instance. Statements can be immediately freed after"]
4964    #[doc = " being prepared, executed or added to a batch."]
4965    #[doc = ""]
4966    #[doc = " @public @memberof CassStatement"]
4967    #[doc = ""]
4968    #[doc = " @param[in] statement"]
4969    pub fn cass_statement_free(statement: *mut CassStatement);
4970}
4971extern "C" {
4972    #[doc = " Adds a key index specifier to this a statement."]
4973    #[doc = " When using token-aware routing, this can be used to tell the driver which"]
4974    #[doc = " parameters within a non-prepared, parameterized statement are part of"]
4975    #[doc = " the partition key."]
4976    #[doc = ""]
4977    #[doc = " Use consecutive calls for composite partition keys."]
4978    #[doc = ""]
4979    #[doc = " This is not necessary for prepared statements, as the key"]
4980    #[doc = " parameters are determined in the metadata processed in the prepare phase."]
4981    #[doc = ""]
4982    #[doc = " @public @memberof CassStatement"]
4983    #[doc = ""]
4984    #[doc = " @param[in] statement"]
4985    #[doc = " @param[in] index"]
4986    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
4987    pub fn cass_statement_add_key_index(statement: *mut CassStatement, index: usize) -> CassError;
4988}
4989extern "C" {
4990    #[doc = " Sets the statement's keyspace. This is used for token-aware routing and when"]
4991    #[doc = " using protocol v5 or greater it also overrides the session's current"]
4992    #[doc = " keyspace for the statement."]
4993    #[doc = ""]
4994    #[doc = " This is not necessary and will not work for bound statements, as the keyspace"]
4995    #[doc = " is determined by the prepared statement metadata."]
4996    #[doc = ""]
4997    #[doc = " @public @memberof CassStatement"]
4998    #[doc = ""]
4999    #[doc = " @param[in] statement"]
5000    #[doc = " @param[in] keyspace"]
5001    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5002    pub fn cass_statement_set_keyspace(
5003        statement: *mut CassStatement,
5004        keyspace: *const ::std::os::raw::c_char,
5005    ) -> CassError;
5006}
5007extern "C" {
5008    #[doc = " Same as cass_statement_set_keyspace(), but with lengths for string"]
5009    #[doc = " parameters."]
5010    #[doc = ""]
5011    #[doc = " @public @memberof CassStatement"]
5012    #[doc = ""]
5013    #[doc = " @param[in] statement"]
5014    #[doc = " @param[in] keyspace"]
5015    #[doc = " @param[in] keyspace_length"]
5016    #[doc = " @return same as cass_statement_set_keyspace()"]
5017    #[doc = ""]
5018    #[doc = " @see cass_statement_set_keyspace()"]
5019    pub fn cass_statement_set_keyspace_n(
5020        statement: *mut CassStatement,
5021        keyspace: *const ::std::os::raw::c_char,
5022        keyspace_length: usize,
5023    ) -> CassError;
5024}
5025extern "C" {
5026    #[doc = " Sets the statement's consistency level."]
5027    #[doc = ""]
5028    #[doc = " <b>Default:</b> CASS_CONSISTENCY_LOCAL_ONE"]
5029    #[doc = ""]
5030    #[doc = " @public @memberof CassStatement"]
5031    #[doc = ""]
5032    #[doc = " @param[in] statement"]
5033    #[doc = " @param[in] consistency"]
5034    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5035    pub fn cass_statement_set_consistency(
5036        statement: *mut CassStatement,
5037        consistency: CassConsistency,
5038    ) -> CassError;
5039}
5040extern "C" {
5041    #[doc = " Sets the statement's serial consistency level."]
5042    #[doc = ""]
5043    #[doc = " @cassandra{2.0+}"]
5044    #[doc = ""]
5045    #[doc = " <b>Default:</b> Not set"]
5046    #[doc = ""]
5047    #[doc = " @public @memberof CassStatement"]
5048    #[doc = ""]
5049    #[doc = " @param[in] statement"]
5050    #[doc = " @param[in] serial_consistency"]
5051    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5052    pub fn cass_statement_set_serial_consistency(
5053        statement: *mut CassStatement,
5054        serial_consistency: CassConsistency,
5055    ) -> CassError;
5056}
5057extern "C" {
5058    #[doc = " Sets the statement's page size."]
5059    #[doc = ""]
5060    #[doc = " @cassandra{2.0+}"]
5061    #[doc = ""]
5062    #[doc = " <b>Default:</b> -1 (Disabled)"]
5063    #[doc = ""]
5064    #[doc = " @public @memberof CassStatement"]
5065    #[doc = ""]
5066    #[doc = " @param[in] statement"]
5067    #[doc = " @param[in] page_size"]
5068    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5069    pub fn cass_statement_set_paging_size(
5070        statement: *mut CassStatement,
5071        page_size: ::std::os::raw::c_int,
5072    ) -> CassError;
5073}
5074extern "C" {
5075    #[doc = " Sets the statement's paging state. This can be used to get the next page of"]
5076    #[doc = " data in a multi-page query."]
5077    #[doc = ""]
5078    #[doc = " @cassandra{2.0+}"]
5079    #[doc = ""]
5080    #[doc = " @public @memberof CassStatement"]
5081    #[doc = ""]
5082    #[doc = " @param[in] statement"]
5083    #[doc = " @param[in] result"]
5084    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5085    pub fn cass_statement_set_paging_state(
5086        statement: *mut CassStatement,
5087        result: *const CassResult,
5088    ) -> CassError;
5089}
5090extern "C" {
5091    #[doc = " Sets the statement's paging state. This can be used to get the next page of"]
5092    #[doc = " data in a multi-page query."]
5093    #[doc = ""]
5094    #[doc = " @cassandra{2.0+}"]
5095    #[doc = ""]
5096    #[doc = " <b>Warning:</b> The paging state should not be exposed to or come from"]
5097    #[doc = " untrusted environments. The paging state could be spoofed and potentially"]
5098    #[doc = " used to gain access to other data."]
5099    #[doc = ""]
5100    #[doc = " @public @memberof CassStatement"]
5101    #[doc = ""]
5102    #[doc = " @param[in] statement"]
5103    #[doc = " @param[in] paging_state"]
5104    #[doc = " @param[in] paging_state_size"]
5105    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5106    #[doc = ""]
5107    #[doc = " @see cass_result_paging_state_token()"]
5108    pub fn cass_statement_set_paging_state_token(
5109        statement: *mut CassStatement,
5110        paging_state: *const ::std::os::raw::c_char,
5111        paging_state_size: usize,
5112    ) -> CassError;
5113}
5114extern "C" {
5115    #[doc = " Sets the statement's timestamp."]
5116    #[doc = ""]
5117    #[doc = " @cassandra{2.1+}"]
5118    #[doc = ""]
5119    #[doc = " @public @memberof CassStatement"]
5120    #[doc = ""]
5121    #[doc = " @param[in] statement"]
5122    #[doc = " @param[in] timestamp"]
5123    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5124    pub fn cass_statement_set_timestamp(
5125        statement: *mut CassStatement,
5126        timestamp: cass_int64_t,
5127    ) -> CassError;
5128}
5129extern "C" {
5130    #[doc = " Sets the statement's timeout for waiting for a response from a node."]
5131    #[doc = ""]
5132    #[doc = " <b>Default:</b> Disabled (use the cluster-level request timeout)"]
5133    #[doc = ""]
5134    #[doc = " @public @memberof CassStatement"]
5135    #[doc = ""]
5136    #[doc = " @param[in] statement"]
5137    #[doc = " @param[in] timeout_ms Request timeout in milliseconds. Use 0 for no timeout"]
5138    #[doc = " or CASS_UINT64_MAX to disable (to use the cluster-level request timeout)."]
5139    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5140    #[doc = ""]
5141    #[doc = " @see cass_cluster_set_request_timeout()"]
5142    pub fn cass_statement_set_request_timeout(
5143        statement: *mut CassStatement,
5144        timeout_ms: cass_uint64_t,
5145    ) -> CassError;
5146}
5147extern "C" {
5148    #[doc = " Sets whether the statement is idempotent. Idempotent statements are able to be"]
5149    #[doc = " automatically retried after timeouts/errors and can be speculatively executed."]
5150    #[doc = ""]
5151    #[doc = " @public @memberof CassStatement"]
5152    #[doc = ""]
5153    #[doc = " @param[in] statement"]
5154    #[doc = " @param[in] is_idempotent"]
5155    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5156    #[doc = ""]
5157    #[doc = " @see cass_cluster_set_constant_speculative_execution_policy()"]
5158    #[doc = " @see cass_execution_profile_set_constant_speculative_execution_policy()"]
5159    pub fn cass_statement_set_is_idempotent(
5160        statement: *mut CassStatement,
5161        is_idempotent: cass_bool_t,
5162    ) -> CassError;
5163}
5164extern "C" {
5165    #[doc = " Sets the statement's retry policy."]
5166    #[doc = ""]
5167    #[doc = " @public @memberof CassStatement"]
5168    #[doc = ""]
5169    #[doc = " @param[in] statement"]
5170    #[doc = " @param[in] retry_policy"]
5171    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5172    pub fn cass_statement_set_retry_policy(
5173        statement: *mut CassStatement,
5174        retry_policy: *mut CassRetryPolicy,
5175    ) -> CassError;
5176}
5177extern "C" {
5178    #[doc = " Sets the statement's custom payload."]
5179    #[doc = ""]
5180    #[doc = " @cassandra{2.2+}"]
5181    #[doc = ""]
5182    #[doc = " @public @memberof CassStatement"]
5183    #[doc = ""]
5184    #[doc = " @param[in] statement"]
5185    #[doc = " @param[in] payload"]
5186    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5187    pub fn cass_statement_set_custom_payload(
5188        statement: *mut CassStatement,
5189        payload: *const CassCustomPayload,
5190    ) -> CassError;
5191}
5192extern "C" {
5193    #[doc = " Sets the execution profile to execute the statement with."]
5194    #[doc = ""]
5195    #[doc = " <b>Note:</b> NULL or empty string will clear execution profile from statement"]
5196    #[doc = ""]
5197    #[doc = " @public @memberof CassStatement"]
5198    #[doc = ""]
5199    #[doc = " @param[in] statement"]
5200    #[doc = " @param[in] name"]
5201    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5202    #[doc = ""]
5203    #[doc = " @see cass_cluster_set_execution_profile()"]
5204    pub fn cass_statement_set_execution_profile(
5205        statement: *mut CassStatement,
5206        name: *const ::std::os::raw::c_char,
5207    ) -> CassError;
5208}
5209extern "C" {
5210    #[doc = " Same as cass_statement_set_execution_profile(), but with lengths for string"]
5211    #[doc = " parameters."]
5212    #[doc = ""]
5213    #[doc = " @public @memberof CassStatement"]
5214    #[doc = ""]
5215    #[doc = " @param[in] statement"]
5216    #[doc = " @param[in] name"]
5217    #[doc = " @param[in] name_length"]
5218    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5219    #[doc = ""]
5220    #[doc = " @see cass_statement_set_execution_profile()"]
5221    pub fn cass_statement_set_execution_profile_n(
5222        statement: *mut CassStatement,
5223        name: *const ::std::os::raw::c_char,
5224        name_length: usize,
5225    ) -> CassError;
5226}
5227extern "C" {
5228    #[doc = " Sets whether the statement should use tracing."]
5229    #[doc = ""]
5230    #[doc = " @cassandra{2.2+}"]
5231    #[doc = ""]
5232    #[doc = " @public @memberof CassStatement"]
5233    #[doc = ""]
5234    #[doc = " @param[in] statement"]
5235    #[doc = " @param[in] enabled"]
5236    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5237    pub fn cass_statement_set_tracing(
5238        statement: *mut CassStatement,
5239        enabled: cass_bool_t,
5240    ) -> CassError;
5241}
5242extern "C" {
5243    #[doc = " Sets a specific host that should run the query."]
5244    #[doc = ""]
5245    #[doc = " In general, this should not be used, but it can be useful in the following"]
5246    #[doc = " situations:"]
5247    #[doc = " * To query node-local tables such as system and virtual tables."]
5248    #[doc = " * To apply a sequence of schema changes where it makes sense for all the"]
5249    #[doc = "   changes to be applied on a single node."]
5250    #[doc = ""]
5251    #[doc = " @public @memberof CassStatement"]
5252    #[doc = ""]
5253    #[doc = " @param[in] statement"]
5254    #[doc = " @param[in] host"]
5255    #[doc = " @param[in] port"]
5256    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5257    pub fn cass_statement_set_host(
5258        statement: *mut CassStatement,
5259        host: *const ::std::os::raw::c_char,
5260        port: ::std::os::raw::c_int,
5261    ) -> CassError;
5262}
5263extern "C" {
5264    #[doc = " Same as cass_statement_set_host(), but with lengths for string"]
5265    #[doc = " parameters."]
5266    #[doc = ""]
5267    #[doc = " @public @memberof CassStatement"]
5268    #[doc = ""]
5269    #[doc = " @param[in] statement"]
5270    #[doc = " @param[in] host"]
5271    #[doc = " @param[in] host_length"]
5272    #[doc = " @param[in] port"]
5273    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5274    pub fn cass_statement_set_host_n(
5275        statement: *mut CassStatement,
5276        host: *const ::std::os::raw::c_char,
5277        host_length: usize,
5278        port: ::std::os::raw::c_int,
5279    ) -> CassError;
5280}
5281extern "C" {
5282    #[doc = " Same as cass_statement_set_host(), but with the `CassInet` type"]
5283    #[doc = " for the host instead of a string."]
5284    #[doc = ""]
5285    #[doc = " @public @memberof CassStatement"]
5286    #[doc = ""]
5287    #[doc = " @param[in] statement"]
5288    #[doc = " @param[in] host"]
5289    #[doc = " @param[in] port"]
5290    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5291    pub fn cass_statement_set_host_inet(
5292        statement: *mut CassStatement,
5293        host: *const CassInet,
5294        port: ::std::os::raw::c_int,
5295    ) -> CassError;
5296}
5297extern "C" {
5298    #[doc = " Same as cass_statement_set_host(), but using the `CassNode` type. This can"]
5299    #[doc = " be used to re-query the same coordinator when used with the result of"]
5300    #[doc = " `cass_future_coordinator()`"]
5301    #[doc = ""]
5302    #[doc = " @public @memberof CassStatement"]
5303    #[doc = ""]
5304    #[doc = " @param statement"]
5305    #[doc = " @param address"]
5306    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5307    #[doc = ""]
5308    #[doc = " @see cass_future_coordinator()"]
5309    pub fn cass_statement_set_node(
5310        statement: *mut CassStatement,
5311        node: *const CassNode,
5312    ) -> CassError;
5313}
5314extern "C" {
5315    #[doc = " Binds null to a query or bound statement at the specified index."]
5316    #[doc = ""]
5317    #[doc = " @public @memberof CassStatement"]
5318    #[doc = ""]
5319    #[doc = " @param[in] statement"]
5320    #[doc = " @param[in] index"]
5321    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5322    pub fn cass_statement_bind_null(statement: *mut CassStatement, index: usize) -> CassError;
5323}
5324extern "C" {
5325    #[doc = " Binds a null to all the values with the specified name."]
5326    #[doc = ""]
5327    #[doc = " This can only be used with statements created by"]
5328    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
5329    #[doc = ""]
5330    #[doc = " @public @memberof CassStatement"]
5331    #[doc = ""]
5332    #[doc = " @param[in] statement"]
5333    #[doc = " @param[in] name"]
5334    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5335    pub fn cass_statement_bind_null_by_name(
5336        statement: *mut CassStatement,
5337        name: *const ::std::os::raw::c_char,
5338    ) -> CassError;
5339}
5340extern "C" {
5341    #[doc = " Same as cass_statement_bind_null_by_name(), but with lengths for string"]
5342    #[doc = " parameters."]
5343    #[doc = ""]
5344    #[doc = " @public @memberof CassStatement"]
5345    #[doc = ""]
5346    #[doc = " @param[in] statement"]
5347    #[doc = " @param[in] name"]
5348    #[doc = " @param[in] name_length"]
5349    #[doc = " @return same as cass_statement_bind_null_by_name()"]
5350    #[doc = ""]
5351    #[doc = " @see cass_statement_bind_null_by_name()"]
5352    pub fn cass_statement_bind_null_by_name_n(
5353        statement: *mut CassStatement,
5354        name: *const ::std::os::raw::c_char,
5355        name_length: usize,
5356    ) -> CassError;
5357}
5358extern "C" {
5359    #[doc = " Binds a \"tinyint\" to a query or bound statement at the specified index."]
5360    #[doc = ""]
5361    #[doc = " @cassandra{2.2+}"]
5362    #[doc = ""]
5363    #[doc = " @public @memberof CassStatement"]
5364    #[doc = ""]
5365    #[doc = " @param[in] statement"]
5366    #[doc = " @param[in] index"]
5367    #[doc = " @param[in] value"]
5368    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5369    pub fn cass_statement_bind_int8(
5370        statement: *mut CassStatement,
5371        index: usize,
5372        value: cass_int8_t,
5373    ) -> CassError;
5374}
5375extern "C" {
5376    #[doc = " Binds a \"tinyint\" to all the values with the specified name."]
5377    #[doc = ""]
5378    #[doc = " @cassandra{2.2+}"]
5379    #[doc = ""]
5380    #[doc = " @public @memberof CassStatement"]
5381    #[doc = ""]
5382    #[doc = " @param[in] statement"]
5383    #[doc = " @param[in] name"]
5384    #[doc = " @param[in] value"]
5385    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5386    pub fn cass_statement_bind_int8_by_name(
5387        statement: *mut CassStatement,
5388        name: *const ::std::os::raw::c_char,
5389        value: cass_int8_t,
5390    ) -> CassError;
5391}
5392extern "C" {
5393    #[doc = " Same as cass_statement_bind_int8_by_name(), but with lengths for string"]
5394    #[doc = " parameters."]
5395    #[doc = ""]
5396    #[doc = " @cassandra{2.2+}"]
5397    #[doc = ""]
5398    #[doc = " @public @memberof CassStatement"]
5399    #[doc = ""]
5400    #[doc = " @param[in] statement"]
5401    #[doc = " @param[in] name"]
5402    #[doc = " @param[in] name_length"]
5403    #[doc = " @param[in] value"]
5404    #[doc = " @return same as cass_statement_bind_int8_by_name()"]
5405    #[doc = ""]
5406    #[doc = " @see cass_statement_bind_int8_by_name()"]
5407    pub fn cass_statement_bind_int8_by_name_n(
5408        statement: *mut CassStatement,
5409        name: *const ::std::os::raw::c_char,
5410        name_length: usize,
5411        value: cass_int8_t,
5412    ) -> CassError;
5413}
5414extern "C" {
5415    #[doc = " Binds an \"smallint\" to a query or bound statement at the specified index."]
5416    #[doc = ""]
5417    #[doc = " @cassandra{2.2+}"]
5418    #[doc = ""]
5419    #[doc = " @public @memberof CassStatement"]
5420    #[doc = ""]
5421    #[doc = " @param[in] statement"]
5422    #[doc = " @param[in] index"]
5423    #[doc = " @param[in] value"]
5424    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5425    pub fn cass_statement_bind_int16(
5426        statement: *mut CassStatement,
5427        index: usize,
5428        value: cass_int16_t,
5429    ) -> CassError;
5430}
5431extern "C" {
5432    #[doc = " Binds an \"smallint\" to all the values with the specified name."]
5433    #[doc = ""]
5434    #[doc = " @cassandra{2.2+}"]
5435    #[doc = ""]
5436    #[doc = " @public @memberof CassStatement"]
5437    #[doc = ""]
5438    #[doc = " @param[in] statement"]
5439    #[doc = " @param[in] name"]
5440    #[doc = " @param[in] value"]
5441    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5442    pub fn cass_statement_bind_int16_by_name(
5443        statement: *mut CassStatement,
5444        name: *const ::std::os::raw::c_char,
5445        value: cass_int16_t,
5446    ) -> CassError;
5447}
5448extern "C" {
5449    #[doc = " Same as cass_statement_bind_int16_by_name(), but with lengths for string"]
5450    #[doc = " parameters."]
5451    #[doc = ""]
5452    #[doc = " @cassandra{2.2+}"]
5453    #[doc = ""]
5454    #[doc = " @public @memberof CassStatement"]
5455    #[doc = ""]
5456    #[doc = " @param[in] statement"]
5457    #[doc = " @param[in] name"]
5458    #[doc = " @param[in] name_length"]
5459    #[doc = " @param[in] value"]
5460    #[doc = " @return same as cass_statement_bind_int16_by_name()"]
5461    #[doc = ""]
5462    #[doc = " @see cass_statement_bind_int16_by_name()"]
5463    pub fn cass_statement_bind_int16_by_name_n(
5464        statement: *mut CassStatement,
5465        name: *const ::std::os::raw::c_char,
5466        name_length: usize,
5467        value: cass_int16_t,
5468    ) -> CassError;
5469}
5470extern "C" {
5471    #[doc = " Binds an \"int\" to a query or bound statement at the specified index."]
5472    #[doc = ""]
5473    #[doc = " @public @memberof CassStatement"]
5474    #[doc = ""]
5475    #[doc = " @param[in] statement"]
5476    #[doc = " @param[in] index"]
5477    #[doc = " @param[in] value"]
5478    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5479    pub fn cass_statement_bind_int32(
5480        statement: *mut CassStatement,
5481        index: usize,
5482        value: cass_int32_t,
5483    ) -> CassError;
5484}
5485extern "C" {
5486    #[doc = " Binds an \"int\" to all the values with the specified name."]
5487    #[doc = ""]
5488    #[doc = " This can only be used with statements created by"]
5489    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
5490    #[doc = ""]
5491    #[doc = " @public @memberof CassStatement"]
5492    #[doc = ""]
5493    #[doc = " @param[in] statement"]
5494    #[doc = " @param[in] name"]
5495    #[doc = " @param[in] value"]
5496    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5497    pub fn cass_statement_bind_int32_by_name(
5498        statement: *mut CassStatement,
5499        name: *const ::std::os::raw::c_char,
5500        value: cass_int32_t,
5501    ) -> CassError;
5502}
5503extern "C" {
5504    #[doc = " Same as cass_statement_bind_int32_by_name(), but with lengths for string"]
5505    #[doc = " parameters."]
5506    #[doc = ""]
5507    #[doc = " @public @memberof CassStatement"]
5508    #[doc = ""]
5509    #[doc = " @param[in] statement"]
5510    #[doc = " @param[in] name"]
5511    #[doc = " @param[in] name_length"]
5512    #[doc = " @param[in] value"]
5513    #[doc = " @return same as cass_statement_bind_int32_by_name()"]
5514    #[doc = ""]
5515    #[doc = " @see cass_statement_bind_int32_by_name()"]
5516    pub fn cass_statement_bind_int32_by_name_n(
5517        statement: *mut CassStatement,
5518        name: *const ::std::os::raw::c_char,
5519        name_length: usize,
5520        value: cass_int32_t,
5521    ) -> CassError;
5522}
5523extern "C" {
5524    #[doc = " Binds a \"date\" to a query or bound statement at the specified index."]
5525    #[doc = ""]
5526    #[doc = " @cassandra{2.2+}"]
5527    #[doc = ""]
5528    #[doc = " @public @memberof CassStatement"]
5529    #[doc = ""]
5530    #[doc = " @param[in] statement"]
5531    #[doc = " @param[in] index"]
5532    #[doc = " @param[in] value"]
5533    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5534    pub fn cass_statement_bind_uint32(
5535        statement: *mut CassStatement,
5536        index: usize,
5537        value: cass_uint32_t,
5538    ) -> CassError;
5539}
5540extern "C" {
5541    #[doc = " Binds a \"date\" to all the values with the specified name."]
5542    #[doc = ""]
5543    #[doc = " @cassandra{2.2+}"]
5544    #[doc = ""]
5545    #[doc = " @public @memberof CassStatement"]
5546    #[doc = ""]
5547    #[doc = " @param[in] statement"]
5548    #[doc = " @param[in] name"]
5549    #[doc = " @param[in] value"]
5550    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5551    pub fn cass_statement_bind_uint32_by_name(
5552        statement: *mut CassStatement,
5553        name: *const ::std::os::raw::c_char,
5554        value: cass_uint32_t,
5555    ) -> CassError;
5556}
5557extern "C" {
5558    #[doc = " Same as cass_statement_bind_uint32_by_name(), but with lengths for string"]
5559    #[doc = " parameters."]
5560    #[doc = ""]
5561    #[doc = " @cassandra{2.2+}"]
5562    #[doc = ""]
5563    #[doc = " @public @memberof CassStatement"]
5564    #[doc = ""]
5565    #[doc = " @param[in] statement"]
5566    #[doc = " @param[in] name"]
5567    #[doc = " @param[in] name_length"]
5568    #[doc = " @param[in] value"]
5569    #[doc = " @return same as cass_statement_bind_uint32_by_name()"]
5570    #[doc = ""]
5571    #[doc = " @see cass_statement_bind_uint32_by_name()"]
5572    pub fn cass_statement_bind_uint32_by_name_n(
5573        statement: *mut CassStatement,
5574        name: *const ::std::os::raw::c_char,
5575        name_length: usize,
5576        value: cass_uint32_t,
5577    ) -> CassError;
5578}
5579extern "C" {
5580    #[doc = " Binds a \"bigint\", \"counter\", \"timestamp\" or \"time\" to a query or"]
5581    #[doc = " bound statement at the specified index."]
5582    #[doc = ""]
5583    #[doc = " @public @memberof CassStatement"]
5584    #[doc = ""]
5585    #[doc = " @param[in] statement"]
5586    #[doc = " @param[in] index"]
5587    #[doc = " @param[in] value"]
5588    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5589    pub fn cass_statement_bind_int64(
5590        statement: *mut CassStatement,
5591        index: usize,
5592        value: cass_int64_t,
5593    ) -> CassError;
5594}
5595extern "C" {
5596    #[doc = " Binds a \"bigint\", \"counter\", \"timestamp\" or \"time\" to all values"]
5597    #[doc = " with the specified name."]
5598    #[doc = ""]
5599    #[doc = " This can only be used with statements created by"]
5600    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
5601    #[doc = ""]
5602    #[doc = " @public @memberof CassStatement"]
5603    #[doc = ""]
5604    #[doc = " @param[in] statement"]
5605    #[doc = " @param[in] name"]
5606    #[doc = " @param[in] value"]
5607    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5608    pub fn cass_statement_bind_int64_by_name(
5609        statement: *mut CassStatement,
5610        name: *const ::std::os::raw::c_char,
5611        value: cass_int64_t,
5612    ) -> CassError;
5613}
5614extern "C" {
5615    #[doc = " Same as cass_statement_bind_int64_by_name(), but with lengths for string"]
5616    #[doc = " parameters."]
5617    #[doc = ""]
5618    #[doc = " @public @memberof CassStatement"]
5619    #[doc = ""]
5620    #[doc = " @param[in] statement"]
5621    #[doc = " @param[in] name"]
5622    #[doc = " @param[in] name_length"]
5623    #[doc = " @param[in] value"]
5624    #[doc = " @return same as cass_statement_bind_int64_by_name(0"]
5625    #[doc = ""]
5626    #[doc = " @see cass_statement_bind_int64_by_name()"]
5627    pub fn cass_statement_bind_int64_by_name_n(
5628        statement: *mut CassStatement,
5629        name: *const ::std::os::raw::c_char,
5630        name_length: usize,
5631        value: cass_int64_t,
5632    ) -> CassError;
5633}
5634extern "C" {
5635    #[doc = " Binds a \"float\" to a query or bound statement at the specified index."]
5636    #[doc = ""]
5637    #[doc = " @public @memberof CassStatement"]
5638    #[doc = ""]
5639    #[doc = " @param[in] statement"]
5640    #[doc = " @param[in] index"]
5641    #[doc = " @param[in] value"]
5642    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5643    pub fn cass_statement_bind_float(
5644        statement: *mut CassStatement,
5645        index: usize,
5646        value: cass_float_t,
5647    ) -> CassError;
5648}
5649extern "C" {
5650    #[doc = " Binds a \"float\" to all the values with the specified name."]
5651    #[doc = ""]
5652    #[doc = " This can only be used with statements created by"]
5653    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
5654    #[doc = ""]
5655    #[doc = " @public @memberof CassStatement"]
5656    #[doc = ""]
5657    #[doc = " @param[in] statement"]
5658    #[doc = " @param[in] name"]
5659    #[doc = " @param[in] value"]
5660    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5661    pub fn cass_statement_bind_float_by_name(
5662        statement: *mut CassStatement,
5663        name: *const ::std::os::raw::c_char,
5664        value: cass_float_t,
5665    ) -> CassError;
5666}
5667extern "C" {
5668    #[doc = " Same as cass_statement_bind_float_by_name(), but with lengths for string"]
5669    #[doc = " parameters."]
5670    #[doc = ""]
5671    #[doc = " @public @memberof CassStatement"]
5672    #[doc = ""]
5673    #[doc = " @param[in] statement"]
5674    #[doc = " @param[in] name"]
5675    #[doc = " @param[in] name_length"]
5676    #[doc = " @param[in] value"]
5677    #[doc = " @return same as cass_statement_bind_float_by_name()"]
5678    #[doc = ""]
5679    #[doc = " @see cass_statement_bind_float_by_name()"]
5680    pub fn cass_statement_bind_float_by_name_n(
5681        statement: *mut CassStatement,
5682        name: *const ::std::os::raw::c_char,
5683        name_length: usize,
5684        value: cass_float_t,
5685    ) -> CassError;
5686}
5687extern "C" {
5688    #[doc = " Binds a \"double\" to a query or bound statement at the specified index."]
5689    #[doc = ""]
5690    #[doc = " @public @memberof CassStatement"]
5691    #[doc = ""]
5692    #[doc = " @param[in] statement"]
5693    #[doc = " @param[in] index"]
5694    #[doc = " @param[in] value"]
5695    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5696    pub fn cass_statement_bind_double(
5697        statement: *mut CassStatement,
5698        index: usize,
5699        value: cass_double_t,
5700    ) -> CassError;
5701}
5702extern "C" {
5703    #[doc = " Binds a \"double\" to all the values with the specified name."]
5704    #[doc = ""]
5705    #[doc = " This can only be used with statements created by"]
5706    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
5707    #[doc = ""]
5708    #[doc = " @public @memberof CassStatement"]
5709    #[doc = ""]
5710    #[doc = " @param[in] statement"]
5711    #[doc = " @param[in] name"]
5712    #[doc = " @param[in] value"]
5713    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5714    pub fn cass_statement_bind_double_by_name(
5715        statement: *mut CassStatement,
5716        name: *const ::std::os::raw::c_char,
5717        value: cass_double_t,
5718    ) -> CassError;
5719}
5720extern "C" {
5721    #[doc = " Same as cass_statement_bind_double_by_name(), but with lengths for string"]
5722    #[doc = " parameters."]
5723    #[doc = ""]
5724    #[doc = " @public @memberof CassStatement"]
5725    #[doc = ""]
5726    #[doc = " @param[in] statement"]
5727    #[doc = " @param[in] name"]
5728    #[doc = " @param[in] name_length"]
5729    #[doc = " @param[in] value"]
5730    #[doc = " @return same as cass_statement_bind_double_by_name()"]
5731    #[doc = ""]
5732    #[doc = " @see cass_statement_bind_double_by_name()"]
5733    pub fn cass_statement_bind_double_by_name_n(
5734        statement: *mut CassStatement,
5735        name: *const ::std::os::raw::c_char,
5736        name_length: usize,
5737        value: cass_double_t,
5738    ) -> CassError;
5739}
5740extern "C" {
5741    #[doc = " Binds a \"boolean\" to a query or bound statement at the specified index."]
5742    #[doc = ""]
5743    #[doc = " @public @memberof CassStatement"]
5744    #[doc = ""]
5745    #[doc = " @param[in] statement"]
5746    #[doc = " @param[in] index"]
5747    #[doc = " @param[in] value"]
5748    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5749    pub fn cass_statement_bind_bool(
5750        statement: *mut CassStatement,
5751        index: usize,
5752        value: cass_bool_t,
5753    ) -> CassError;
5754}
5755extern "C" {
5756    #[doc = " Binds a \"boolean\" to all the values with the specified name."]
5757    #[doc = ""]
5758    #[doc = " This can only be used with statements created by"]
5759    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
5760    #[doc = ""]
5761    #[doc = " @public @memberof CassStatement"]
5762    #[doc = ""]
5763    #[doc = " @param[in] statement"]
5764    #[doc = " @param[in] name"]
5765    #[doc = " @param[in] value"]
5766    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5767    pub fn cass_statement_bind_bool_by_name(
5768        statement: *mut CassStatement,
5769        name: *const ::std::os::raw::c_char,
5770        value: cass_bool_t,
5771    ) -> CassError;
5772}
5773extern "C" {
5774    #[doc = " Same as cass_statement_bind_bool_by_name(), but with lengths for string"]
5775    #[doc = " parameters."]
5776    #[doc = ""]
5777    #[doc = " @public @memberof CassStatement"]
5778    #[doc = ""]
5779    #[doc = " @param[in] statement"]
5780    #[doc = " @param[in] name"]
5781    #[doc = " @param[in] name_length"]
5782    #[doc = " @param[in] value"]
5783    #[doc = " @return same as cass_statement_bind_bool_by_name()"]
5784    #[doc = ""]
5785    #[doc = " @see cass_statement_bind_bool_by_name()"]
5786    pub fn cass_statement_bind_bool_by_name_n(
5787        statement: *mut CassStatement,
5788        name: *const ::std::os::raw::c_char,
5789        name_length: usize,
5790        value: cass_bool_t,
5791    ) -> CassError;
5792}
5793extern "C" {
5794    #[doc = " Binds an \"ascii\", \"text\" or \"varchar\" to a query or bound statement"]
5795    #[doc = " at the specified index."]
5796    #[doc = ""]
5797    #[doc = " @public @memberof CassStatement"]
5798    #[doc = ""]
5799    #[doc = " @param[in] statement"]
5800    #[doc = " @param[in] index"]
5801    #[doc = " @param[in] value The value is copied into the statement object; the"]
5802    #[doc = " memory pointed to by this parameter can be freed after this call."]
5803    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5804    pub fn cass_statement_bind_string(
5805        statement: *mut CassStatement,
5806        index: usize,
5807        value: *const ::std::os::raw::c_char,
5808    ) -> CassError;
5809}
5810extern "C" {
5811    #[doc = " Same as cass_statement_bind_string(), but with lengths for string"]
5812    #[doc = " parameters."]
5813    #[doc = ""]
5814    #[doc = " @public @memberof CassStatement"]
5815    #[doc = ""]
5816    #[doc = " @param[in] statement"]
5817    #[doc = " @param[in] index"]
5818    #[doc = " @param[in] value"]
5819    #[doc = " @param[in] value_length"]
5820    #[doc = " @return same as cass_statement_bind_string()"]
5821    #[doc = ""]
5822    #[doc = " @see cass_statement_bind_string()"]
5823    pub fn cass_statement_bind_string_n(
5824        statement: *mut CassStatement,
5825        index: usize,
5826        value: *const ::std::os::raw::c_char,
5827        value_length: usize,
5828    ) -> CassError;
5829}
5830extern "C" {
5831    #[doc = " Binds an \"ascii\", \"text\" or \"varchar\" to all the values"]
5832    #[doc = " with the specified name."]
5833    #[doc = ""]
5834    #[doc = " This can only be used with statements created by"]
5835    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
5836    #[doc = ""]
5837    #[doc = " @public @memberof CassStatement"]
5838    #[doc = ""]
5839    #[doc = " @param[in] statement"]
5840    #[doc = " @param[in] name"]
5841    #[doc = " @param[in] value The value is copied into the statement object; the"]
5842    #[doc = " memory pointed to by this parameter can be freed after this call."]
5843    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5844    pub fn cass_statement_bind_string_by_name(
5845        statement: *mut CassStatement,
5846        name: *const ::std::os::raw::c_char,
5847        value: *const ::std::os::raw::c_char,
5848    ) -> CassError;
5849}
5850extern "C" {
5851    #[doc = " Same as cass_statement_bind_string_by_name(), but with lengths for string"]
5852    #[doc = " parameters."]
5853    #[doc = ""]
5854    #[doc = " @public @memberof CassStatement"]
5855    #[doc = ""]
5856    #[doc = " @param[in] statement"]
5857    #[doc = " @param[in] name"]
5858    #[doc = " @param[in] name_length"]
5859    #[doc = " @param[in] value"]
5860    #[doc = " @param[in] value_length"]
5861    #[doc = " @return same as cass_statement_bind_string_by_name()"]
5862    #[doc = ""]
5863    #[doc = " @see cass_statement_bind_string_by_name()"]
5864    pub fn cass_statement_bind_string_by_name_n(
5865        statement: *mut CassStatement,
5866        name: *const ::std::os::raw::c_char,
5867        name_length: usize,
5868        value: *const ::std::os::raw::c_char,
5869        value_length: usize,
5870    ) -> CassError;
5871}
5872extern "C" {
5873    #[doc = " Binds a \"blob\", \"varint\" or \"custom\" to a query or bound statement at the specified index."]
5874    #[doc = ""]
5875    #[doc = " @public @memberof CassStatement"]
5876    #[doc = ""]
5877    #[doc = " @param[in] statement"]
5878    #[doc = " @param[in] index"]
5879    #[doc = " @param[in] value The value is copied into the statement object; the"]
5880    #[doc = " memory pointed to by this parameter can be freed after this call."]
5881    #[doc = " @param[in] value_size"]
5882    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5883    pub fn cass_statement_bind_bytes(
5884        statement: *mut CassStatement,
5885        index: usize,
5886        value: *const cass_byte_t,
5887        value_size: usize,
5888    ) -> CassError;
5889}
5890extern "C" {
5891    #[doc = " Binds a \"blob\", \"varint\" or \"custom\" to all the values with the"]
5892    #[doc = " specified name."]
5893    #[doc = ""]
5894    #[doc = " This can only be used with statements created by"]
5895    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
5896    #[doc = ""]
5897    #[doc = " @public @memberof CassStatement"]
5898    #[doc = ""]
5899    #[doc = " @param[in] statement"]
5900    #[doc = " @param[in] name"]
5901    #[doc = " @param[in] value The value is copied into the statement object; the"]
5902    #[doc = " memory pointed to by this parameter can be freed after this call."]
5903    #[doc = " @param[in] value_size"]
5904    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5905    pub fn cass_statement_bind_bytes_by_name(
5906        statement: *mut CassStatement,
5907        name: *const ::std::os::raw::c_char,
5908        value: *const cass_byte_t,
5909        value_size: usize,
5910    ) -> CassError;
5911}
5912extern "C" {
5913    #[doc = " Same as cass_statement_bind_bytes_by_name(), but with lengths for string"]
5914    #[doc = " parameters."]
5915    #[doc = ""]
5916    #[doc = " @public @memberof CassStatement"]
5917    #[doc = ""]
5918    #[doc = " @param[in] statement"]
5919    #[doc = " @param[in] name"]
5920    #[doc = " @param[in] name_length"]
5921    #[doc = " @param[in] value"]
5922    #[doc = " @param[in] value_size"]
5923    #[doc = " @return same as cass_statement_bind_bytes_by_name()"]
5924    #[doc = ""]
5925    #[doc = " @see cass_statement_bind_bytes_by_name()"]
5926    pub fn cass_statement_bind_bytes_by_name_n(
5927        statement: *mut CassStatement,
5928        name: *const ::std::os::raw::c_char,
5929        name_length: usize,
5930        value: *const cass_byte_t,
5931        value_size: usize,
5932    ) -> CassError;
5933}
5934extern "C" {
5935    #[doc = " Binds a \"custom\" to a query or bound statement at the specified index."]
5936    #[doc = ""]
5937    #[doc = " @public @memberof CassStatement"]
5938    #[doc = ""]
5939    #[doc = " @param[in] statement"]
5940    #[doc = " @param[in] index"]
5941    #[doc = " @param[in] class_name"]
5942    #[doc = " @param[in] value The value is copied into the statement object; the"]
5943    #[doc = " memory pointed to by this parameter can be freed after this call."]
5944    #[doc = " @param[in] value_size"]
5945    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5946    pub fn cass_statement_bind_custom(
5947        statement: *mut CassStatement,
5948        index: usize,
5949        class_name: *const ::std::os::raw::c_char,
5950        value: *const cass_byte_t,
5951        value_size: usize,
5952    ) -> CassError;
5953}
5954extern "C" {
5955    #[doc = " Same as cass_statement_bind_custom(), but with lengths for string"]
5956    #[doc = " parameters."]
5957    #[doc = ""]
5958    #[doc = " @public @memberof CassStatement"]
5959    #[doc = ""]
5960    #[doc = " @param[in] statement"]
5961    #[doc = " @param[in] index"]
5962    #[doc = " @param[in] class_name"]
5963    #[doc = " @param[in] class_name_length"]
5964    #[doc = " @param[in] value The value is copied into the statement object; the"]
5965    #[doc = " memory pointed to by this parameter can be freed after this call."]
5966    #[doc = " @param[in] value_size"]
5967    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5968    pub fn cass_statement_bind_custom_n(
5969        statement: *mut CassStatement,
5970        index: usize,
5971        class_name: *const ::std::os::raw::c_char,
5972        class_name_length: usize,
5973        value: *const cass_byte_t,
5974        value_size: usize,
5975    ) -> CassError;
5976}
5977extern "C" {
5978    #[doc = " Binds a \"custom\" to all the values with the specified name."]
5979    #[doc = ""]
5980    #[doc = " This can only be used with statements created by"]
5981    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
5982    #[doc = ""]
5983    #[doc = " @public @memberof CassStatement"]
5984    #[doc = ""]
5985    #[doc = " @param[in] statement"]
5986    #[doc = " @param[in] name"]
5987    #[doc = " @param[in] class_name"]
5988    #[doc = " @param[in] value The value is copied into the statement object; the"]
5989    #[doc = " memory pointed to by this parameter can be freed after this call."]
5990    #[doc = " @param[in] value_size"]
5991    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
5992    pub fn cass_statement_bind_custom_by_name(
5993        statement: *mut CassStatement,
5994        name: *const ::std::os::raw::c_char,
5995        class_name: *const ::std::os::raw::c_char,
5996        value: *const cass_byte_t,
5997        value_size: usize,
5998    ) -> CassError;
5999}
6000extern "C" {
6001    #[doc = " Same as cass_statement_bind_custom_by_name(), but with lengths for string"]
6002    #[doc = " parameters."]
6003    #[doc = ""]
6004    #[doc = " @public @memberof CassStatement"]
6005    #[doc = ""]
6006    #[doc = " @param[in] statement"]
6007    #[doc = " @param[in] name"]
6008    #[doc = " @param[in] name_length"]
6009    #[doc = " @param[in] class_name"]
6010    #[doc = " @param[in] class_name_length"]
6011    #[doc = " @param[in] value"]
6012    #[doc = " @param[in] value_size"]
6013    #[doc = " @return same as cass_statement_bind_custom_by_name()"]
6014    #[doc = ""]
6015    #[doc = " @see cass_statement_bind_custom_by_name()"]
6016    pub fn cass_statement_bind_custom_by_name_n(
6017        statement: *mut CassStatement,
6018        name: *const ::std::os::raw::c_char,
6019        name_length: usize,
6020        class_name: *const ::std::os::raw::c_char,
6021        class_name_length: usize,
6022        value: *const cass_byte_t,
6023        value_size: usize,
6024    ) -> CassError;
6025}
6026extern "C" {
6027    #[doc = " Binds a \"uuid\" or \"timeuuid\" to a query or bound statement at the specified index."]
6028    #[doc = ""]
6029    #[doc = " @public @memberof CassStatement"]
6030    #[doc = ""]
6031    #[doc = " @param[in] statement"]
6032    #[doc = " @param[in] index"]
6033    #[doc = " @param[in] value"]
6034    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6035    pub fn cass_statement_bind_uuid(
6036        statement: *mut CassStatement,
6037        index: usize,
6038        value: CassUuid,
6039    ) -> CassError;
6040}
6041extern "C" {
6042    #[doc = " Binds a \"uuid\" or \"timeuuid\" to all the values"]
6043    #[doc = " with the specified name."]
6044    #[doc = ""]
6045    #[doc = " This can only be used with statements created by"]
6046    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
6047    #[doc = ""]
6048    #[doc = " @public @memberof CassStatement"]
6049    #[doc = ""]
6050    #[doc = " @param[in] statement"]
6051    #[doc = " @param[in] name"]
6052    #[doc = " @param[in] value"]
6053    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6054    pub fn cass_statement_bind_uuid_by_name(
6055        statement: *mut CassStatement,
6056        name: *const ::std::os::raw::c_char,
6057        value: CassUuid,
6058    ) -> CassError;
6059}
6060extern "C" {
6061    #[doc = " Same as cass_statement_bind_uuid_by_name(), but with lengths for string"]
6062    #[doc = " parameters."]
6063    #[doc = ""]
6064    #[doc = " @public @memberof CassStatement"]
6065    #[doc = ""]
6066    #[doc = " @param[in] statement"]
6067    #[doc = " @param[in] name"]
6068    #[doc = " @param[in] name_length"]
6069    #[doc = " @param[in] value"]
6070    #[doc = " @return same as cass_statement_bind_uuid_by_name()"]
6071    #[doc = ""]
6072    #[doc = " @see cass_statement_bind_uuid_by_name()"]
6073    pub fn cass_statement_bind_uuid_by_name_n(
6074        statement: *mut CassStatement,
6075        name: *const ::std::os::raw::c_char,
6076        name_length: usize,
6077        value: CassUuid,
6078    ) -> CassError;
6079}
6080extern "C" {
6081    #[doc = " Binds an \"inet\" to a query or bound statement at the specified index."]
6082    #[doc = ""]
6083    #[doc = " @public @memberof CassStatement"]
6084    #[doc = ""]
6085    #[doc = " @param[in] statement"]
6086    #[doc = " @param[in] index"]
6087    #[doc = " @param[in] value"]
6088    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6089    pub fn cass_statement_bind_inet(
6090        statement: *mut CassStatement,
6091        index: usize,
6092        value: CassInet,
6093    ) -> CassError;
6094}
6095extern "C" {
6096    #[doc = " Binds an \"inet\" to all the values with the specified name."]
6097    #[doc = ""]
6098    #[doc = " This can only be used with statements created by"]
6099    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
6100    #[doc = ""]
6101    #[doc = " @public @memberof CassStatement"]
6102    #[doc = ""]
6103    #[doc = " @param[in] statement"]
6104    #[doc = " @param[in] name"]
6105    #[doc = " @param[in] value"]
6106    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6107    pub fn cass_statement_bind_inet_by_name(
6108        statement: *mut CassStatement,
6109        name: *const ::std::os::raw::c_char,
6110        value: CassInet,
6111    ) -> CassError;
6112}
6113extern "C" {
6114    #[doc = " Same as cass_statement_bind_inet_by_name(), but with lengths for string"]
6115    #[doc = " parameters."]
6116    #[doc = ""]
6117    #[doc = " @public @memberof CassStatement"]
6118    #[doc = ""]
6119    #[doc = " @param[in] statement"]
6120    #[doc = " @param[in] name"]
6121    #[doc = " @param[in] name_length"]
6122    #[doc = " @param[in] value"]
6123    #[doc = " @return same as cass_statement_bind_inet_by_name()"]
6124    #[doc = ""]
6125    #[doc = " @see cass_statement_bind_inet_by_name()"]
6126    pub fn cass_statement_bind_inet_by_name_n(
6127        statement: *mut CassStatement,
6128        name: *const ::std::os::raw::c_char,
6129        name_length: usize,
6130        value: CassInet,
6131    ) -> CassError;
6132}
6133extern "C" {
6134    #[doc = " Bind a \"decimal\" to a query or bound statement at the specified index."]
6135    #[doc = ""]
6136    #[doc = " @public @memberof CassStatement"]
6137    #[doc = ""]
6138    #[doc = " @param[in] statement"]
6139    #[doc = " @param[in] index"]
6140    #[doc = " @param[in] varint The value is copied into the statement object; the"]
6141    #[doc = " memory pointed to by this parameter can be freed after this call."]
6142    #[doc = " @param[in] varint_size"]
6143    #[doc = " @param[in] scale"]
6144    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6145    pub fn cass_statement_bind_decimal(
6146        statement: *mut CassStatement,
6147        index: usize,
6148        varint: *const cass_byte_t,
6149        varint_size: usize,
6150        scale: cass_int32_t,
6151    ) -> CassError;
6152}
6153extern "C" {
6154    #[doc = " Binds a \"decimal\" to all the values with the specified name."]
6155    #[doc = ""]
6156    #[doc = " This can only be used with statements created by"]
6157    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
6158    #[doc = ""]
6159    #[doc = " @public @memberof CassStatement"]
6160    #[doc = ""]
6161    #[doc = " @param[in] statement"]
6162    #[doc = " @param[in] name"]
6163    #[doc = " @param[in] varint The value is copied into the statement object; the"]
6164    #[doc = " memory pointed to by this parameter can be freed after this call."]
6165    #[doc = " @param[in] varint_size"]
6166    #[doc = " @param[in] scale"]
6167    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6168    pub fn cass_statement_bind_decimal_by_name(
6169        statement: *mut CassStatement,
6170        name: *const ::std::os::raw::c_char,
6171        varint: *const cass_byte_t,
6172        varint_size: usize,
6173        scale: cass_int32_t,
6174    ) -> CassError;
6175}
6176extern "C" {
6177    #[doc = " Same as cass_statement_bind_decimal_by_name(), but with lengths for string"]
6178    #[doc = " parameters."]
6179    #[doc = ""]
6180    #[doc = " @public @memberof CassStatement"]
6181    #[doc = ""]
6182    #[doc = " @param[in] statement"]
6183    #[doc = " @param[in] name"]
6184    #[doc = " @param[in] name_length"]
6185    #[doc = " @param[in] varint"]
6186    #[doc = " @param[in] varint_size"]
6187    #[doc = " @param[in] scale"]
6188    #[doc = " @return same as cass_statement_bind_decimal_by_name()"]
6189    #[doc = ""]
6190    #[doc = " @see cass_statement_bind_decimal_by_name()"]
6191    pub fn cass_statement_bind_decimal_by_name_n(
6192        statement: *mut CassStatement,
6193        name: *const ::std::os::raw::c_char,
6194        name_length: usize,
6195        varint: *const cass_byte_t,
6196        varint_size: usize,
6197        scale: cass_int32_t,
6198    ) -> CassError;
6199}
6200extern "C" {
6201    #[doc = " Binds a \"duration\" to a query or bound statement at the specified index."]
6202    #[doc = ""]
6203    #[doc = " @cassandra{3.10+}"]
6204    #[doc = ""]
6205    #[doc = " @public @memberof CassStatement"]
6206    #[doc = ""]
6207    #[doc = " @param[in] statement"]
6208    #[doc = " @param[in] index"]
6209    #[doc = " @param[in] months"]
6210    #[doc = " @param[in] days"]
6211    #[doc = " @param[in] nanos"]
6212    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6213    pub fn cass_statement_bind_duration(
6214        statement: *mut CassStatement,
6215        index: usize,
6216        months: cass_int32_t,
6217        days: cass_int32_t,
6218        nanos: cass_int64_t,
6219    ) -> CassError;
6220}
6221extern "C" {
6222    #[doc = " Binds a \"duration\" to all the values with the specified name."]
6223    #[doc = ""]
6224    #[doc = " @cassandra{3.10+}"]
6225    #[doc = ""]
6226    #[doc = " @public @memberof CassStatement"]
6227    #[doc = ""]
6228    #[doc = " @param[in] statement"]
6229    #[doc = " @param[in] name"]
6230    #[doc = " @param[in] months"]
6231    #[doc = " @param[in] days"]
6232    #[doc = " @param[in] nanos"]
6233    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6234    pub fn cass_statement_bind_duration_by_name(
6235        statement: *mut CassStatement,
6236        name: *const ::std::os::raw::c_char,
6237        months: cass_int32_t,
6238        days: cass_int32_t,
6239        nanos: cass_int64_t,
6240    ) -> CassError;
6241}
6242extern "C" {
6243    #[doc = " Same as cass_statement_bind_duration_by_name(), but with lengths for string"]
6244    #[doc = " parameters."]
6245    #[doc = ""]
6246    #[doc = " @cassandra{3.10+}"]
6247    #[doc = ""]
6248    #[doc = " @public @memberof CassStatement"]
6249    #[doc = ""]
6250    #[doc = " @param[in] statement"]
6251    #[doc = " @param[in] name"]
6252    #[doc = " @param[in] name_length"]
6253    #[doc = " @param[in] months"]
6254    #[doc = " @param[in] days"]
6255    #[doc = " @param[in] nanos"]
6256    #[doc = " @return same as cass_statement_bind_duration_by_name()"]
6257    #[doc = ""]
6258    #[doc = " @see cass_statement_bind_duration_by_name()"]
6259    pub fn cass_statement_bind_duration_by_name_n(
6260        statement: *mut CassStatement,
6261        name: *const ::std::os::raw::c_char,
6262        name_length: usize,
6263        months: cass_int32_t,
6264        days: cass_int32_t,
6265        nanos: cass_int64_t,
6266    ) -> CassError;
6267}
6268extern "C" {
6269    #[doc = " Bind a \"list\", \"map\" or \"set\" to a query or bound statement at the"]
6270    #[doc = " specified index."]
6271    #[doc = ""]
6272    #[doc = " @public @memberof CassStatement"]
6273    #[doc = ""]
6274    #[doc = " @param[in] statement"]
6275    #[doc = " @param[in] index"]
6276    #[doc = " @param[in] collection The collection can be freed after this call."]
6277    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6278    pub fn cass_statement_bind_collection(
6279        statement: *mut CassStatement,
6280        index: usize,
6281        collection: *const CassCollection,
6282    ) -> CassError;
6283}
6284extern "C" {
6285    #[doc = " Bind a \"list\", \"map\" or \"set\" to all the values with the"]
6286    #[doc = " specified name."]
6287    #[doc = ""]
6288    #[doc = " This can only be used with statements created by"]
6289    #[doc = " cass_prepared_bind() when using Cassandra 2.0 or earlier."]
6290    #[doc = ""]
6291    #[doc = " @public @memberof CassStatement"]
6292    #[doc = ""]
6293    #[doc = " @param[in] statement"]
6294    #[doc = " @param[in] name"]
6295    #[doc = " @param[in] collection The collection can be freed after this call."]
6296    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6297    pub fn cass_statement_bind_collection_by_name(
6298        statement: *mut CassStatement,
6299        name: *const ::std::os::raw::c_char,
6300        collection: *const CassCollection,
6301    ) -> CassError;
6302}
6303extern "C" {
6304    #[doc = " Same as cass_statement_bind_collection_by_name(), but with lengths for string"]
6305    #[doc = " parameters."]
6306    #[doc = ""]
6307    #[doc = " @public @memberof CassStatement"]
6308    #[doc = ""]
6309    #[doc = " @param[in] statement"]
6310    #[doc = " @param[in] name"]
6311    #[doc = " @param[in] name_length"]
6312    #[doc = " @param[in] collection"]
6313    #[doc = " @return same as cass_statement_bind_collection_by_name()"]
6314    #[doc = ""]
6315    #[doc = " @see cass_statement_bind_collection_by_name()"]
6316    pub fn cass_statement_bind_collection_by_name_n(
6317        statement: *mut CassStatement,
6318        name: *const ::std::os::raw::c_char,
6319        name_length: usize,
6320        collection: *const CassCollection,
6321    ) -> CassError;
6322}
6323extern "C" {
6324    #[doc = " Bind a \"tuple\" to a query or bound statement at the specified index."]
6325    #[doc = ""]
6326    #[doc = " @cassandra{2.1+}"]
6327    #[doc = ""]
6328    #[doc = " @public @memberof CassStatement"]
6329    #[doc = ""]
6330    #[doc = " @param[in] statement"]
6331    #[doc = " @param[in] index"]
6332    #[doc = " @param[in] tuple The tuple can be freed after this call."]
6333    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6334    pub fn cass_statement_bind_tuple(
6335        statement: *mut CassStatement,
6336        index: usize,
6337        tuple: *const CassTuple,
6338    ) -> CassError;
6339}
6340extern "C" {
6341    #[doc = " Bind a \"tuple\" to all the values with the specified name."]
6342    #[doc = ""]
6343    #[doc = " @cassandra{2.1+}"]
6344    #[doc = ""]
6345    #[doc = " @public @memberof CassStatement"]
6346    #[doc = ""]
6347    #[doc = " @param[in] statement"]
6348    #[doc = " @param[in] name"]
6349    #[doc = " @param[in] tuple The tuple can be freed after this call."]
6350    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6351    pub fn cass_statement_bind_tuple_by_name(
6352        statement: *mut CassStatement,
6353        name: *const ::std::os::raw::c_char,
6354        tuple: *const CassTuple,
6355    ) -> CassError;
6356}
6357extern "C" {
6358    #[doc = " Same as cass_statement_bind_tuple_by_name(), but with lengths for string"]
6359    #[doc = " parameters."]
6360    #[doc = ""]
6361    #[doc = " @cassandra{2.1+}"]
6362    #[doc = ""]
6363    #[doc = " @public @memberof CassStatement"]
6364    #[doc = ""]
6365    #[doc = " @param[in] statement"]
6366    #[doc = " @param[in] name"]
6367    #[doc = " @param[in] name_length"]
6368    #[doc = " @param[in] tuple"]
6369    #[doc = " @return same as cass_statement_bind_tuple_by_name()"]
6370    #[doc = ""]
6371    #[doc = " @see cass_statement_bind_tuple_by_name()"]
6372    pub fn cass_statement_bind_tuple_by_name_n(
6373        statement: *mut CassStatement,
6374        name: *const ::std::os::raw::c_char,
6375        name_length: usize,
6376        tuple: *const CassTuple,
6377    ) -> CassError;
6378}
6379extern "C" {
6380    #[doc = " Bind a user defined type to a query or bound statement at the"]
6381    #[doc = " specified index."]
6382    #[doc = ""]
6383    #[doc = " @cassandra{2.1+}"]
6384    #[doc = ""]
6385    #[doc = " @public @memberof CassStatement"]
6386    #[doc = ""]
6387    #[doc = " @param[in] statement"]
6388    #[doc = " @param[in] index"]
6389    #[doc = " @param[in] user_type The user type can be freed after this call."]
6390    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6391    pub fn cass_statement_bind_user_type(
6392        statement: *mut CassStatement,
6393        index: usize,
6394        user_type: *const CassUserType,
6395    ) -> CassError;
6396}
6397extern "C" {
6398    #[doc = " Bind a user defined type to a query or bound statement with the"]
6399    #[doc = " specified name."]
6400    #[doc = ""]
6401    #[doc = " @cassandra{2.1+}"]
6402    #[doc = ""]
6403    #[doc = " @public @memberof CassStatement"]
6404    #[doc = ""]
6405    #[doc = " @param[in] statement"]
6406    #[doc = " @param[in] name"]
6407    #[doc = " @param[in] user_type The user type can be freed after this call."]
6408    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6409    pub fn cass_statement_bind_user_type_by_name(
6410        statement: *mut CassStatement,
6411        name: *const ::std::os::raw::c_char,
6412        user_type: *const CassUserType,
6413    ) -> CassError;
6414}
6415extern "C" {
6416    #[doc = " Same as cass_statement_bind_user_type_by_name(), but with lengths for string"]
6417    #[doc = " parameters."]
6418    #[doc = ""]
6419    #[doc = " @cassandra{2.1+}"]
6420    #[doc = ""]
6421    #[doc = " @public @memberof CassStatement"]
6422    #[doc = ""]
6423    #[doc = " @param[in] statement"]
6424    #[doc = " @param[in] name"]
6425    #[doc = " @param[in] name_length"]
6426    #[doc = " @param[in] user_type"]
6427    #[doc = " @return same as cass_statement_bind_user_type_by_name()"]
6428    #[doc = ""]
6429    #[doc = " @see cass_statement_bind_collection_by_name()"]
6430    pub fn cass_statement_bind_user_type_by_name_n(
6431        statement: *mut CassStatement,
6432        name: *const ::std::os::raw::c_char,
6433        name_length: usize,
6434        user_type: *const CassUserType,
6435    ) -> CassError;
6436}
6437extern "C" {
6438    #[doc = " Frees a prepared instance."]
6439    #[doc = ""]
6440    #[doc = " @public @memberof CassPrepared"]
6441    #[doc = ""]
6442    #[doc = " @param[in] prepared"]
6443    pub fn cass_prepared_free(prepared: *const CassPrepared);
6444}
6445extern "C" {
6446    #[doc = " Creates a bound statement from a pre-prepared statement."]
6447    #[doc = ""]
6448    #[doc = " @public @memberof CassPrepared"]
6449    #[doc = ""]
6450    #[doc = " @param[in] prepared"]
6451    #[doc = " @return Returns a bound statement that must be freed."]
6452    #[doc = ""]
6453    #[doc = " @see cass_statement_free()"]
6454    pub fn cass_prepared_bind(prepared: *const CassPrepared) -> *mut CassStatement;
6455}
6456extern "C" {
6457    #[doc = " Gets the name of a parameter at the specified index."]
6458    #[doc = ""]
6459    #[doc = " @public @memberof CassPrepared"]
6460    #[doc = ""]
6461    #[doc = " @param[in] prepared"]
6462    #[doc = " @param[in] index"]
6463    #[doc = " @param[out] name"]
6464    #[doc = " @param[out] name_length"]
6465    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6466    pub fn cass_prepared_parameter_name(
6467        prepared: *const CassPrepared,
6468        index: usize,
6469        name: *mut *const ::std::os::raw::c_char,
6470        name_length: *mut usize,
6471    ) -> CassError;
6472}
6473extern "C" {
6474    #[doc = " Gets the data type of a parameter at the specified index."]
6475    #[doc = ""]
6476    #[doc = " @public @memberof CassPrepared"]
6477    #[doc = ""]
6478    #[doc = " @param[in] prepared"]
6479    #[doc = " @param[in] index"]
6480    #[doc = " @return Returns a reference to the data type of the parameter. Do not free"]
6481    #[doc = " this reference as it is bound to the lifetime of the prepared."]
6482    pub fn cass_prepared_parameter_data_type(
6483        prepared: *const CassPrepared,
6484        index: usize,
6485    ) -> *const CassDataType;
6486}
6487extern "C" {
6488    #[doc = " Gets the data type of a parameter for the specified name."]
6489    #[doc = ""]
6490    #[doc = " @public @memberof CassPrepared"]
6491    #[doc = ""]
6492    #[doc = " @param[in] prepared"]
6493    #[doc = " @param[in] name"]
6494    #[doc = " @return Returns a reference to the data type of the parameter. Do not free"]
6495    #[doc = " this reference as it is bound to the lifetime of the prepared."]
6496    pub fn cass_prepared_parameter_data_type_by_name(
6497        prepared: *const CassPrepared,
6498        name: *const ::std::os::raw::c_char,
6499    ) -> *const CassDataType;
6500}
6501extern "C" {
6502    #[doc = " Same as cass_prepared_parameter_data_type_by_name(), but with lengths for string"]
6503    #[doc = " parameters."]
6504    #[doc = ""]
6505    #[doc = " @public @memberof CassPrepared"]
6506    #[doc = ""]
6507    #[doc = " @param[in] prepared"]
6508    #[doc = " @param[in] name"]
6509    #[doc = " @param[in] name_length"]
6510    #[doc = " @return Returns a reference to the data type of the parameter. Do not free"]
6511    #[doc = " this reference as it is bound to the lifetime of the prepared."]
6512    #[doc = ""]
6513    #[doc = " @see cass_prepared_parameter_data_type_by_name()"]
6514    pub fn cass_prepared_parameter_data_type_by_name_n(
6515        prepared: *const CassPrepared,
6516        name: *const ::std::os::raw::c_char,
6517        name_length: usize,
6518    ) -> *const CassDataType;
6519}
6520extern "C" {
6521    #[doc = " Creates a new batch statement with batch type."]
6522    #[doc = ""]
6523    #[doc = " @cassandra{2.0+}"]
6524    #[doc = ""]
6525    #[doc = " @public @memberof CassBatch"]
6526    #[doc = ""]
6527    #[doc = " @param[in] type"]
6528    #[doc = " @return Returns a batch statement that must be freed."]
6529    #[doc = ""]
6530    #[doc = " @see cass_batch_free()"]
6531    pub fn cass_batch_new(type_: CassBatchType) -> *mut CassBatch;
6532}
6533extern "C" {
6534    #[doc = " Frees a batch instance. Batches can be immediately freed after being"]
6535    #[doc = " executed."]
6536    #[doc = ""]
6537    #[doc = " @cassandra{2.0+}"]
6538    #[doc = ""]
6539    #[doc = " @public @memberof CassBatch"]
6540    #[doc = ""]
6541    #[doc = " @param[in] batch"]
6542    pub fn cass_batch_free(batch: *mut CassBatch);
6543}
6544extern "C" {
6545    #[doc = " Sets the batch's keyspace. When using protocol v5 or greater it overrides"]
6546    #[doc = " the session's keyspace for the batch."]
6547    #[doc = ""]
6548    #[doc = " <b>Note:</b> If not set explicitly then the batch will inherit the keyspace"]
6549    #[doc = " of the first child statement with a non-empty keyspace."]
6550    #[doc = ""]
6551    #[doc = " @public @memberof CassBatch"]
6552    #[doc = ""]
6553    #[doc = " @param[in] batch"]
6554    #[doc = " @param[in] keyspace"]
6555    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6556    pub fn cass_batch_set_keyspace(
6557        batch: *mut CassBatch,
6558        keyspace: *const ::std::os::raw::c_char,
6559    ) -> CassError;
6560}
6561extern "C" {
6562    #[doc = " Same as cass_batch_set_keyspace(), but with lengths for string"]
6563    #[doc = " parameters."]
6564    #[doc = ""]
6565    #[doc = " @public @memberof CassBatch"]
6566    #[doc = ""]
6567    #[doc = " @param[in] batch"]
6568    #[doc = " @param[in] keyspace"]
6569    #[doc = " @param[in] keyspace_length"]
6570    #[doc = " @return same as cass_batch_set_keyspace()"]
6571    #[doc = ""]
6572    #[doc = " @see cass_batch_set_keyspace()"]
6573    pub fn cass_batch_set_keyspace_n(
6574        batch: *mut CassBatch,
6575        keyspace: *const ::std::os::raw::c_char,
6576        keyspace_length: usize,
6577    ) -> CassError;
6578}
6579extern "C" {
6580    #[doc = " Sets the batch's consistency level"]
6581    #[doc = ""]
6582    #[doc = " @cassandra{2.0+}"]
6583    #[doc = ""]
6584    #[doc = " @public @memberof CassBatch"]
6585    #[doc = ""]
6586    #[doc = " @param[in] batch"]
6587    #[doc = " @param[in] consistency The batch's write consistency."]
6588    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6589    pub fn cass_batch_set_consistency(
6590        batch: *mut CassBatch,
6591        consistency: CassConsistency,
6592    ) -> CassError;
6593}
6594extern "C" {
6595    #[doc = " Sets the batch's serial consistency level."]
6596    #[doc = ""]
6597    #[doc = " @cassandra{2.0+}"]
6598    #[doc = ""]
6599    #[doc = " <b>Default:</b> Not set"]
6600    #[doc = ""]
6601    #[doc = " @public @memberof CassBatch"]
6602    #[doc = ""]
6603    #[doc = " @param[in] batch"]
6604    #[doc = " @param[in] serial_consistency"]
6605    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6606    pub fn cass_batch_set_serial_consistency(
6607        batch: *mut CassBatch,
6608        serial_consistency: CassConsistency,
6609    ) -> CassError;
6610}
6611extern "C" {
6612    #[doc = " Sets the batch's timestamp."]
6613    #[doc = ""]
6614    #[doc = " @cassandra{2.1+}"]
6615    #[doc = ""]
6616    #[doc = " @public @memberof CassBatch"]
6617    #[doc = ""]
6618    #[doc = " @param[in] batch"]
6619    #[doc = " @param[in] timestamp"]
6620    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6621    pub fn cass_batch_set_timestamp(batch: *mut CassBatch, timestamp: cass_int64_t) -> CassError;
6622}
6623extern "C" {
6624    #[doc = " Sets the batch's timeout for waiting for a response from a node."]
6625    #[doc = ""]
6626    #[doc = " <b>Default:</b> Disabled (use the cluster-level request timeout)"]
6627    #[doc = ""]
6628    #[doc = " @public @memberof CassBatch"]
6629    #[doc = ""]
6630    #[doc = " @param[in] batch"]
6631    #[doc = " @param[in] timeout_ms Request timeout in milliseconds. Use 0 for no timeout"]
6632    #[doc = " or CASS_UINT64_MAX to disable (to use the cluster-level request timeout)."]
6633    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6634    #[doc = ""]
6635    #[doc = " @see cass_cluster_set_request_timeout()"]
6636    pub fn cass_batch_set_request_timeout(
6637        batch: *mut CassBatch,
6638        timeout_ms: cass_uint64_t,
6639    ) -> CassError;
6640}
6641extern "C" {
6642    #[doc = " Sets whether the statements in a batch are idempotent. Idempotent batches"]
6643    #[doc = " are able to be automatically retried after timeouts/errors and can be"]
6644    #[doc = " speculatively executed."]
6645    #[doc = ""]
6646    #[doc = " @public @memberof CassBatch"]
6647    #[doc = ""]
6648    #[doc = " @param[in] batch"]
6649    #[doc = " @param[in] is_idempotent"]
6650    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6651    #[doc = ""]
6652    #[doc = " @see cass_cluster_set_constant_speculative_execution_policy()"]
6653    #[doc = " @see cass_execution_profile_set_constant_speculative_execution_policy()"]
6654    pub fn cass_batch_set_is_idempotent(
6655        batch: *mut CassBatch,
6656        is_idempotent: cass_bool_t,
6657    ) -> CassError;
6658}
6659extern "C" {
6660    #[doc = " Sets the batch's retry policy."]
6661    #[doc = ""]
6662    #[doc = " @cassandra{2.0+}"]
6663    #[doc = ""]
6664    #[doc = " @public @memberof CassBatch"]
6665    #[doc = ""]
6666    #[doc = " @param[in] batch"]
6667    #[doc = " @param[in] retry_policy"]
6668    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6669    pub fn cass_batch_set_retry_policy(
6670        batch: *mut CassBatch,
6671        retry_policy: *mut CassRetryPolicy,
6672    ) -> CassError;
6673}
6674extern "C" {
6675    #[doc = " Sets the batch's custom payload."]
6676    #[doc = ""]
6677    #[doc = " @cassandra{2.2+}"]
6678    #[doc = ""]
6679    #[doc = " @public @memberof CassBatch"]
6680    #[doc = ""]
6681    #[doc = " @param[in] batch"]
6682    #[doc = " @param[in] payload"]
6683    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6684    pub fn cass_batch_set_custom_payload(
6685        batch: *mut CassBatch,
6686        payload: *const CassCustomPayload,
6687    ) -> CassError;
6688}
6689extern "C" {
6690    #[doc = " Sets whether the batch should use tracing."]
6691    #[doc = ""]
6692    #[doc = " @cassandra{2.2+}"]
6693    #[doc = ""]
6694    #[doc = " @public @memberof CassStatement"]
6695    #[doc = ""]
6696    #[doc = " @param[in] batch"]
6697    #[doc = " @param[in] enabled"]
6698    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6699    pub fn cass_batch_set_tracing(batch: *mut CassBatch, enabled: cass_bool_t) -> CassError;
6700}
6701extern "C" {
6702    #[doc = " Adds a statement to a batch."]
6703    #[doc = ""]
6704    #[doc = " @cassandra{2.0+}"]
6705    #[doc = ""]
6706    #[doc = " @public @memberof CassBatch"]
6707    #[doc = ""]
6708    #[doc = " @param[in] batch"]
6709    #[doc = " @param[in] statement"]
6710    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6711    pub fn cass_batch_add_statement(
6712        batch: *mut CassBatch,
6713        statement: *mut CassStatement,
6714    ) -> CassError;
6715}
6716extern "C" {
6717    #[doc = " Sets the execution profile to execute the batch with."]
6718    #[doc = ""]
6719    #[doc = " <b>Note:</b> NULL or empty string will clear execution profile from batch"]
6720    #[doc = ""]
6721    #[doc = " @public @memberof CassBatch"]
6722    #[doc = ""]
6723    #[doc = " @param[in] batch"]
6724    #[doc = " @param[in] name"]
6725    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6726    #[doc = ""]
6727    #[doc = " @see cass_cluster_set_execution_profile()"]
6728    pub fn cass_batch_set_execution_profile(
6729        batch: *mut CassBatch,
6730        name: *const ::std::os::raw::c_char,
6731    ) -> CassError;
6732}
6733extern "C" {
6734    #[doc = " Same as cass_batch_set_execution_profile(), but with lengths for string"]
6735    #[doc = " parameters."]
6736    #[doc = ""]
6737    #[doc = " @public @memberof CassBatch"]
6738    #[doc = ""]
6739    #[doc = " @param[in] batch"]
6740    #[doc = " @param[in] name"]
6741    #[doc = " @param[in] name_length"]
6742    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6743    #[doc = ""]
6744    #[doc = " @see cass_batch_set_execution_profile()"]
6745    pub fn cass_batch_set_execution_profile_n(
6746        batch: *mut CassBatch,
6747        name: *const ::std::os::raw::c_char,
6748        name_length: usize,
6749    ) -> CassError;
6750}
6751extern "C" {
6752    #[doc = " Creates a new data type with value type."]
6753    #[doc = ""]
6754    #[doc = " @public @memberof CassDataType"]
6755    #[doc = ""]
6756    #[doc = " @param[in] type"]
6757    #[doc = " @return Returns a data type that must be freed."]
6758    #[doc = ""]
6759    #[doc = " @see cass_data_type_free()"]
6760    pub fn cass_data_type_new(type_: CassValueType) -> *mut CassDataType;
6761}
6762extern "C" {
6763    #[doc = " Creates a new data type from an existing data type."]
6764    #[doc = ""]
6765    #[doc = " @public @memberof CassDataType"]
6766    #[doc = ""]
6767    #[doc = " @param[in] data_type"]
6768    #[doc = " @return Returns a data type that must be freed."]
6769    #[doc = ""]
6770    #[doc = " @see cass_data_type_free()"]
6771    pub fn cass_data_type_new_from_existing(data_type: *const CassDataType) -> *mut CassDataType;
6772}
6773extern "C" {
6774    #[doc = " Creates a new tuple data type."]
6775    #[doc = ""]
6776    #[doc = " @cassandra{2.1+}"]
6777    #[doc = ""]
6778    #[doc = " @public @memberof CassDataType"]
6779    #[doc = ""]
6780    #[doc = " @param[in] item_count The number of items in the tuple"]
6781    #[doc = " @return Returns a data type that must be freed."]
6782    #[doc = ""]
6783    #[doc = " @see cass_data_type_free()"]
6784    pub fn cass_data_type_new_tuple(item_count: usize) -> *mut CassDataType;
6785}
6786extern "C" {
6787    #[doc = " Creates a new UDT (user defined type) data type."]
6788    #[doc = ""]
6789    #[doc = " @cassandra{2.1+}"]
6790    #[doc = ""]
6791    #[doc = " @public @memberof CassDataType"]
6792    #[doc = ""]
6793    #[doc = " @param[in] field_count The number of fields in the UDT"]
6794    #[doc = " @return Returns a data type that must be freed."]
6795    #[doc = ""]
6796    #[doc = " @see cass_data_type_free()"]
6797    pub fn cass_data_type_new_udt(field_count: usize) -> *mut CassDataType;
6798}
6799extern "C" {
6800    #[doc = " Frees a data type instance."]
6801    #[doc = ""]
6802    #[doc = " @public @memberof CassDataType"]
6803    #[doc = ""]
6804    #[doc = " @param[in] data_type"]
6805    pub fn cass_data_type_free(data_type: *mut CassDataType);
6806}
6807extern "C" {
6808    #[doc = " Gets the value type of the specified data type."]
6809    #[doc = ""]
6810    #[doc = " @param[in] data_type"]
6811    #[doc = " @return The value type"]
6812    pub fn cass_data_type_type(data_type: *const CassDataType) -> CassValueType;
6813}
6814extern "C" {
6815    #[doc = " Gets whether a data type is frozen."]
6816    #[doc = ""]
6817    #[doc = " @cassandra{2.1+}"]
6818    #[doc = ""]
6819    #[doc = " @param[in] data_type"]
6820    #[doc = " @return cass_true if the data type is frozen, otherwise cass_false."]
6821    pub fn cass_data_type_is_frozen(data_type: *const CassDataType) -> cass_bool_t;
6822}
6823extern "C" {
6824    #[doc = " Gets the type name of a UDT data type."]
6825    #[doc = ""]
6826    #[doc = " <b>Note:</b> Only valid for UDT data types."]
6827    #[doc = ""]
6828    #[doc = " @param[in] data_type"]
6829    #[doc = " @param[out] type_name"]
6830    #[doc = " @param[out] type_name_length"]
6831    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6832    pub fn cass_data_type_type_name(
6833        data_type: *const CassDataType,
6834        type_name: *mut *const ::std::os::raw::c_char,
6835        type_name_length: *mut usize,
6836    ) -> CassError;
6837}
6838extern "C" {
6839    #[doc = " Sets the type name of a UDT data type."]
6840    #[doc = ""]
6841    #[doc = " <b>Note:</b> Only valid for UDT data types."]
6842    #[doc = ""]
6843    #[doc = " @param[in] data_type"]
6844    #[doc = " @param[in] type_name"]
6845    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6846    pub fn cass_data_type_set_type_name(
6847        data_type: *mut CassDataType,
6848        type_name: *const ::std::os::raw::c_char,
6849    ) -> CassError;
6850}
6851extern "C" {
6852    #[doc = " Same as cass_data_type_set_type_name(), but with lengths for string"]
6853    #[doc = " parameters."]
6854    #[doc = ""]
6855    #[doc = " @public @memberof CassDataType"]
6856    #[doc = ""]
6857    #[doc = " @param[in] data_type"]
6858    #[doc = " @param[in] type_name"]
6859    #[doc = " @param[in] type_name_length"]
6860    #[doc = " @return Returns a data type that must be freed."]
6861    pub fn cass_data_type_set_type_name_n(
6862        data_type: *mut CassDataType,
6863        type_name: *const ::std::os::raw::c_char,
6864        type_name_length: usize,
6865    ) -> CassError;
6866}
6867extern "C" {
6868    #[doc = " Gets the type name of a UDT data type."]
6869    #[doc = ""]
6870    #[doc = " <b>Note:</b> Only valid for UDT data types."]
6871    #[doc = ""]
6872    #[doc = " @cassandra{2.1+}"]
6873    #[doc = ""]
6874    #[doc = " @param[in] data_type"]
6875    #[doc = " @param[out] keyspace"]
6876    #[doc = " @param[out] keyspace_length"]
6877    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6878    pub fn cass_data_type_keyspace(
6879        data_type: *const CassDataType,
6880        keyspace: *mut *const ::std::os::raw::c_char,
6881        keyspace_length: *mut usize,
6882    ) -> CassError;
6883}
6884extern "C" {
6885    #[doc = " Sets the keyspace of a UDT data type."]
6886    #[doc = ""]
6887    #[doc = " <b>Note:</b> Only valid for UDT data types."]
6888    #[doc = ""]
6889    #[doc = " @cassandra{2.1+}"]
6890    #[doc = ""]
6891    #[doc = " @param[in] data_type"]
6892    #[doc = " @param[in] keyspace"]
6893    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6894    pub fn cass_data_type_set_keyspace(
6895        data_type: *mut CassDataType,
6896        keyspace: *const ::std::os::raw::c_char,
6897    ) -> CassError;
6898}
6899extern "C" {
6900    #[doc = " Same as cass_data_type_set_keyspace(), but with lengths for string"]
6901    #[doc = " parameters."]
6902    #[doc = ""]
6903    #[doc = " @cassandra{2.1+}"]
6904    #[doc = ""]
6905    #[doc = " @public @memberof CassDataType"]
6906    #[doc = ""]
6907    #[doc = " @param[in] data_type"]
6908    #[doc = " @param[in] keyspace"]
6909    #[doc = " @param[in] keyspace_length"]
6910    #[doc = " @return Returns a data type that must be freed."]
6911    pub fn cass_data_type_set_keyspace_n(
6912        data_type: *mut CassDataType,
6913        keyspace: *const ::std::os::raw::c_char,
6914        keyspace_length: usize,
6915    ) -> CassError;
6916}
6917extern "C" {
6918    #[doc = " Gets the class name of a custom data type."]
6919    #[doc = ""]
6920    #[doc = " <b>Note:</b> Only valid for custom data types."]
6921    #[doc = ""]
6922    #[doc = " @param[in] data_type"]
6923    #[doc = " @param[out] class_name"]
6924    #[doc = " @param[out] class_name_length"]
6925    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6926    pub fn cass_data_type_class_name(
6927        data_type: *const CassDataType,
6928        class_name: *mut *const ::std::os::raw::c_char,
6929        class_name_length: *mut usize,
6930    ) -> CassError;
6931}
6932extern "C" {
6933    #[doc = " Sets the class name of a custom data type."]
6934    #[doc = ""]
6935    #[doc = " <b>Note:</b> Only valid for custom data types."]
6936    #[doc = ""]
6937    #[doc = " @param[in] data_type"]
6938    #[doc = " @param[in] class_name"]
6939    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
6940    pub fn cass_data_type_set_class_name(
6941        data_type: *mut CassDataType,
6942        class_name: *const ::std::os::raw::c_char,
6943    ) -> CassError;
6944}
6945extern "C" {
6946    #[doc = " Same as cass_data_type_set_class_name(), but with lengths for string"]
6947    #[doc = " parameters."]
6948    #[doc = ""]
6949    #[doc = " @public @memberof CassDataType"]
6950    #[doc = ""]
6951    #[doc = " @param[in] data_type"]
6952    #[doc = " @param[in] class_name"]
6953    #[doc = " @param[in] class_name_length"]
6954    #[doc = " @return Returns a data type that must be freed."]
6955    pub fn cass_data_type_set_class_name_n(
6956        data_type: *mut CassDataType,
6957        class_name: *const ::std::os::raw::c_char,
6958        class_name_length: usize,
6959    ) -> CassError;
6960}
6961extern "C" {
6962    #[doc = " Gets the sub-data type count of a UDT (user defined type), tuple"]
6963    #[doc = " or collection."]
6964    #[doc = ""]
6965    #[doc = " <b>Note:</b> Only valid for UDT, tuple and collection data types."]
6966    #[doc = ""]
6967    #[doc = " @param[in] data_type"]
6968    #[doc = " @return Returns the number of sub-data types"]
6969    pub fn cass_data_type_sub_type_count(data_type: *const CassDataType) -> usize;
6970}
6971extern "C" {
6972    pub fn cass_data_sub_type_count(data_type: *const CassDataType) -> usize;
6973}
6974extern "C" {
6975    #[doc = " Gets the sub-data type of a UDT (user defined type), tuple or collection at"]
6976    #[doc = " the specified index."]
6977    #[doc = ""]
6978    #[doc = " <b>Note:</b> Only valid for UDT, tuple and collection data types."]
6979    #[doc = ""]
6980    #[doc = " @param[in] data_type"]
6981    #[doc = " @param[in] index"]
6982    #[doc = " @return Returns a reference to a child data type. Do not free this"]
6983    #[doc = " reference as it is bound to the lifetime of the parent data type. NULL"]
6984    #[doc = " is returned if the index is out of range."]
6985    pub fn cass_data_type_sub_data_type(
6986        data_type: *const CassDataType,
6987        index: usize,
6988    ) -> *const CassDataType;
6989}
6990extern "C" {
6991    #[doc = " Gets the sub-data type of a UDT (user defined type) at the specified index."]
6992    #[doc = ""]
6993    #[doc = " <b>Note:</b> Only valid for UDT data types."]
6994    #[doc = ""]
6995    #[doc = " @cassandra{2.1+}"]
6996    #[doc = ""]
6997    #[doc = " @param[in] data_type"]
6998    #[doc = " @param[in] name"]
6999    #[doc = " @return Returns a reference to a child data type. Do not free this"]
7000    #[doc = " reference as it is bound to the lifetime of the parent data type. NULL"]
7001    #[doc = " is returned if the name doesn't exist."]
7002    pub fn cass_data_type_sub_data_type_by_name(
7003        data_type: *const CassDataType,
7004        name: *const ::std::os::raw::c_char,
7005    ) -> *const CassDataType;
7006}
7007extern "C" {
7008    #[doc = " Same as cass_data_type_sub_data_type_by_name(), but with lengths for string"]
7009    #[doc = " parameters."]
7010    #[doc = ""]
7011    #[doc = " @cassandra{2.1+}"]
7012    #[doc = ""]
7013    #[doc = " @public @memberof CassDataType"]
7014    #[doc = ""]
7015    #[doc = " @param[in] data_type"]
7016    #[doc = " @param[in] name"]
7017    #[doc = " @param[in] name_length"]
7018    #[doc = " @return Returns a reference to a child data type. Do not free this"]
7019    #[doc = " reference as it is bound to the lifetime of the parent data type. NULL"]
7020    #[doc = " is returned if the name doesn't exist."]
7021    pub fn cass_data_type_sub_data_type_by_name_n(
7022        data_type: *const CassDataType,
7023        name: *const ::std::os::raw::c_char,
7024        name_length: usize,
7025    ) -> *const CassDataType;
7026}
7027extern "C" {
7028    #[doc = " Gets the sub-type name of a UDT (user defined type) at the specified index."]
7029    #[doc = ""]
7030    #[doc = " @cassandra{2.1+}"]
7031    #[doc = ""]
7032    #[doc = " <b>Note:</b> Only valid for UDT data types."]
7033    #[doc = ""]
7034    #[doc = " @param[in] data_type"]
7035    #[doc = " @param[in] index"]
7036    #[doc = " @param[out] name"]
7037    #[doc = " @param[out] name_length"]
7038    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7039    pub fn cass_data_type_sub_type_name(
7040        data_type: *const CassDataType,
7041        index: usize,
7042        name: *mut *const ::std::os::raw::c_char,
7043        name_length: *mut usize,
7044    ) -> CassError;
7045}
7046extern "C" {
7047    #[doc = " Adds a sub-data type to a tuple or collection."]
7048    #[doc = ""]
7049    #[doc = " <b>Note:</b> Only valid for tuple and collection data types."]
7050    #[doc = ""]
7051    #[doc = " @param[in] data_type"]
7052    #[doc = " @param[in] sub_data_type"]
7053    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7054    pub fn cass_data_type_add_sub_type(
7055        data_type: *mut CassDataType,
7056        sub_data_type: *const CassDataType,
7057    ) -> CassError;
7058}
7059extern "C" {
7060    #[doc = " Adds a sub-data type to a UDT (user defined type)."]
7061    #[doc = ""]
7062    #[doc = " <b>Note:</b> Only valid for UDT data types."]
7063    #[doc = ""]
7064    #[doc = " @cassandra{2.1+}"]
7065    #[doc = ""]
7066    #[doc = " @param[in] data_type"]
7067    #[doc = " @param[in] name"]
7068    #[doc = " @param[in] sub_data_type"]
7069    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7070    pub fn cass_data_type_add_sub_type_by_name(
7071        data_type: *mut CassDataType,
7072        name: *const ::std::os::raw::c_char,
7073        sub_data_type: *const CassDataType,
7074    ) -> CassError;
7075}
7076extern "C" {
7077    #[doc = " Same as cass_data_type_add_sub_type_by_name(), but with lengths for string"]
7078    #[doc = " parameters."]
7079    #[doc = ""]
7080    #[doc = " <b>Note:</b> Only valid for UDT data types."]
7081    #[doc = ""]
7082    #[doc = " @cassandra{2.1+}"]
7083    #[doc = ""]
7084    #[doc = " @param[in] data_type"]
7085    #[doc = " @param[in] name"]
7086    #[doc = " @param[in] name_length"]
7087    #[doc = " @param[in] sub_data_type"]
7088    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7089    pub fn cass_data_type_add_sub_type_by_name_n(
7090        data_type: *mut CassDataType,
7091        name: *const ::std::os::raw::c_char,
7092        name_length: usize,
7093        sub_data_type: *const CassDataType,
7094    ) -> CassError;
7095}
7096extern "C" {
7097    #[doc = " Adds a sub-data type to a tuple or collection using a value type."]
7098    #[doc = ""]
7099    #[doc = " <b>Note:</b> Only valid for tuple and collection data types."]
7100    #[doc = ""]
7101    #[doc = " @param[in] data_type"]
7102    #[doc = " @param[in] sub_value_type"]
7103    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7104    pub fn cass_data_type_add_sub_value_type(
7105        data_type: *mut CassDataType,
7106        sub_value_type: CassValueType,
7107    ) -> CassError;
7108}
7109extern "C" {
7110    #[doc = " Adds a sub-data type to a UDT (user defined type) using a value type."]
7111    #[doc = ""]
7112    #[doc = " <b>Note:</b> Only valid for UDT data types."]
7113    #[doc = ""]
7114    #[doc = " @cassandra{2.1+}"]
7115    #[doc = ""]
7116    #[doc = " @param[in] data_type"]
7117    #[doc = " @param[in] name"]
7118    #[doc = " @param[in] sub_value_type"]
7119    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7120    pub fn cass_data_type_add_sub_value_type_by_name(
7121        data_type: *mut CassDataType,
7122        name: *const ::std::os::raw::c_char,
7123        sub_value_type: CassValueType,
7124    ) -> CassError;
7125}
7126extern "C" {
7127    #[doc = " Same as cass_data_type_add_sub_value_type_by_name(), but with lengths for string"]
7128    #[doc = " parameters."]
7129    #[doc = ""]
7130    #[doc = " <b>Note:</b> Only valid for UDT data types."]
7131    #[doc = ""]
7132    #[doc = " @cassandra{2.1+}"]
7133    #[doc = ""]
7134    #[doc = " @param[in] data_type"]
7135    #[doc = " @param[in] name"]
7136    #[doc = " @param[in] name_length"]
7137    #[doc = " @param[in] sub_value_type"]
7138    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7139    pub fn cass_data_type_add_sub_value_type_by_name_n(
7140        data_type: *mut CassDataType,
7141        name: *const ::std::os::raw::c_char,
7142        name_length: usize,
7143        sub_value_type: CassValueType,
7144    ) -> CassError;
7145}
7146extern "C" {
7147    #[doc = " Creates a new collection."]
7148    #[doc = ""]
7149    #[doc = " @public @memberof CassCollection"]
7150    #[doc = ""]
7151    #[doc = " @param[in] type"]
7152    #[doc = " @param[in] item_count The approximate number of items in the collection."]
7153    #[doc = " @return Returns a collection that must be freed."]
7154    #[doc = ""]
7155    #[doc = " @see cass_collection_free()"]
7156    pub fn cass_collection_new(type_: CassCollectionType, item_count: usize)
7157        -> *mut CassCollection;
7158}
7159extern "C" {
7160    #[doc = " Creates a new collection from an existing data type."]
7161    #[doc = ""]
7162    #[doc = " @public @memberof CassCollection"]
7163    #[doc = ""]
7164    #[doc = " @param[in] data_type"]
7165    #[doc = " @param[in] item_count The approximate number of items in the collection."]
7166    #[doc = " @return Returns a collection that must be freed."]
7167    #[doc = ""]
7168    #[doc = " @see cass_collection_free();"]
7169    pub fn cass_collection_new_from_data_type(
7170        data_type: *const CassDataType,
7171        item_count: usize,
7172    ) -> *mut CassCollection;
7173}
7174extern "C" {
7175    #[doc = " Frees a collection instance."]
7176    #[doc = ""]
7177    #[doc = " @public @memberof CassCollection"]
7178    #[doc = ""]
7179    #[doc = " @param[in] collection"]
7180    pub fn cass_collection_free(collection: *mut CassCollection);
7181}
7182extern "C" {
7183    #[doc = " Gets the data type of a collection."]
7184    #[doc = ""]
7185    #[doc = " @param[in] collection"]
7186    #[doc = " @return Returns a reference to the data type of the collection. Do not free"]
7187    #[doc = " this reference as it is bound to the lifetime of the collection."]
7188    pub fn cass_collection_data_type(collection: *const CassCollection) -> *const CassDataType;
7189}
7190extern "C" {
7191    #[doc = " Appends a \"tinyint\" to the collection."]
7192    #[doc = ""]
7193    #[doc = " @cassandra{2.2+}"]
7194    #[doc = ""]
7195    #[doc = " @public @memberof CassCollection"]
7196    #[doc = ""]
7197    #[doc = " @param[in] collection"]
7198    #[doc = " @param[in] value"]
7199    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7200    pub fn cass_collection_append_int8(
7201        collection: *mut CassCollection,
7202        value: cass_int8_t,
7203    ) -> CassError;
7204}
7205extern "C" {
7206    #[doc = " Appends an \"smallint\" to the collection."]
7207    #[doc = ""]
7208    #[doc = " @cassandra{2.2+}"]
7209    #[doc = ""]
7210    #[doc = " @public @memberof CassCollection"]
7211    #[doc = ""]
7212    #[doc = " @param[in] collection"]
7213    #[doc = " @param[in] value"]
7214    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7215    pub fn cass_collection_append_int16(
7216        collection: *mut CassCollection,
7217        value: cass_int16_t,
7218    ) -> CassError;
7219}
7220extern "C" {
7221    #[doc = " Appends an \"int\" to the collection."]
7222    #[doc = ""]
7223    #[doc = " @public @memberof CassCollection"]
7224    #[doc = ""]
7225    #[doc = " @param[in] collection"]
7226    #[doc = " @param[in] value"]
7227    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7228    pub fn cass_collection_append_int32(
7229        collection: *mut CassCollection,
7230        value: cass_int32_t,
7231    ) -> CassError;
7232}
7233extern "C" {
7234    #[doc = " Appends a \"date\" to the collection."]
7235    #[doc = ""]
7236    #[doc = " @cassandra{2.2+}"]
7237    #[doc = ""]
7238    #[doc = " @public @memberof CassCollection"]
7239    #[doc = ""]
7240    #[doc = " @param[in] collection"]
7241    #[doc = " @param[in] value"]
7242    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7243    pub fn cass_collection_append_uint32(
7244        collection: *mut CassCollection,
7245        value: cass_uint32_t,
7246    ) -> CassError;
7247}
7248extern "C" {
7249    #[doc = " Appends a \"bigint\", \"counter\", \"timestamp\" or \"time\" to the"]
7250    #[doc = " collection."]
7251    #[doc = ""]
7252    #[doc = " @public @memberof CassCollection"]
7253    #[doc = ""]
7254    #[doc = " @param[in] collection"]
7255    #[doc = " @param[in] value"]
7256    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7257    pub fn cass_collection_append_int64(
7258        collection: *mut CassCollection,
7259        value: cass_int64_t,
7260    ) -> CassError;
7261}
7262extern "C" {
7263    #[doc = " Appends a \"float\" to the collection."]
7264    #[doc = ""]
7265    #[doc = " @public @memberof CassCollection"]
7266    #[doc = ""]
7267    #[doc = " @param[in] collection"]
7268    #[doc = " @param[in] value"]
7269    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7270    pub fn cass_collection_append_float(
7271        collection: *mut CassCollection,
7272        value: cass_float_t,
7273    ) -> CassError;
7274}
7275extern "C" {
7276    #[doc = " Appends a \"double\" to the collection."]
7277    #[doc = ""]
7278    #[doc = " @public @memberof CassCollection"]
7279    #[doc = ""]
7280    #[doc = " @param[in] collection"]
7281    #[doc = " @param[in] value"]
7282    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7283    pub fn cass_collection_append_double(
7284        collection: *mut CassCollection,
7285        value: cass_double_t,
7286    ) -> CassError;
7287}
7288extern "C" {
7289    #[doc = " Appends a \"boolean\" to the collection."]
7290    #[doc = ""]
7291    #[doc = " @public @memberof CassCollection"]
7292    #[doc = ""]
7293    #[doc = " @param[in] collection"]
7294    #[doc = " @param[in] value"]
7295    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7296    pub fn cass_collection_append_bool(
7297        collection: *mut CassCollection,
7298        value: cass_bool_t,
7299    ) -> CassError;
7300}
7301extern "C" {
7302    #[doc = " Appends an \"ascii\", \"text\" or \"varchar\" to the collection."]
7303    #[doc = ""]
7304    #[doc = " @public @memberof CassCollection"]
7305    #[doc = ""]
7306    #[doc = " @param[in] collection"]
7307    #[doc = " @param[in] value The value is copied into the collection object; the"]
7308    #[doc = " memory pointed to by this parameter can be freed after this call."]
7309    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7310    pub fn cass_collection_append_string(
7311        collection: *mut CassCollection,
7312        value: *const ::std::os::raw::c_char,
7313    ) -> CassError;
7314}
7315extern "C" {
7316    #[doc = " Same as cass_collection_append_string(), but with lengths for string"]
7317    #[doc = " parameters."]
7318    #[doc = ""]
7319    #[doc = " @public @memberof CassCollection"]
7320    #[doc = ""]
7321    #[doc = " @param[in] collection"]
7322    #[doc = " @param[in] value"]
7323    #[doc = " @param[in] value_length"]
7324    #[doc = " @return same as cass_collection_append_string()"]
7325    #[doc = ""]
7326    #[doc = " @see cass_collection_append_string();"]
7327    pub fn cass_collection_append_string_n(
7328        collection: *mut CassCollection,
7329        value: *const ::std::os::raw::c_char,
7330        value_length: usize,
7331    ) -> CassError;
7332}
7333extern "C" {
7334    #[doc = " Appends a \"blob\", \"varint\" or \"custom\" to the collection."]
7335    #[doc = ""]
7336    #[doc = " @public @memberof CassCollection"]
7337    #[doc = ""]
7338    #[doc = " @param[in] collection"]
7339    #[doc = " @param[in] value The value is copied into the collection object; the"]
7340    #[doc = " memory pointed to by this parameter can be freed after this call."]
7341    #[doc = " @param[in] value_size"]
7342    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7343    pub fn cass_collection_append_bytes(
7344        collection: *mut CassCollection,
7345        value: *const cass_byte_t,
7346        value_size: usize,
7347    ) -> CassError;
7348}
7349extern "C" {
7350    #[doc = " Appends a \"custom\" to the collection."]
7351    #[doc = ""]
7352    #[doc = " @public @memberof CassCollection"]
7353    #[doc = ""]
7354    #[doc = " @param[in] collection"]
7355    #[doc = " @param[in] class_name"]
7356    #[doc = " @param[in] value The value is copied into the collection object; the"]
7357    #[doc = " memory pointed to by this parameter can be freed after this call."]
7358    #[doc = " @param[in] value_size"]
7359    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7360    pub fn cass_collection_append_custom(
7361        collection: *mut CassCollection,
7362        class_name: *const ::std::os::raw::c_char,
7363        value: *const cass_byte_t,
7364        value_size: usize,
7365    ) -> CassError;
7366}
7367extern "C" {
7368    #[doc = " Same as cass_collection_append_custom(), but with lengths for string"]
7369    #[doc = " parameters."]
7370    #[doc = ""]
7371    #[doc = " @public @memberof CassCollection"]
7372    #[doc = ""]
7373    #[doc = " @param[in] collection"]
7374    #[doc = " @param[in] class_name"]
7375    #[doc = " @param[in] class_name_length"]
7376    #[doc = " @param[in] value"]
7377    #[doc = " @param[in] value_size"]
7378    #[doc = " @return same as cass_collection_append_custom()"]
7379    #[doc = ""]
7380    #[doc = " @see cass_collection_append_custom()"]
7381    pub fn cass_collection_append_custom_n(
7382        collection: *mut CassCollection,
7383        class_name: *const ::std::os::raw::c_char,
7384        class_name_length: usize,
7385        value: *const cass_byte_t,
7386        value_size: usize,
7387    ) -> CassError;
7388}
7389extern "C" {
7390    #[doc = " Appends a \"uuid\" or \"timeuuid\"  to the collection."]
7391    #[doc = ""]
7392    #[doc = " @public @memberof CassCollection"]
7393    #[doc = ""]
7394    #[doc = " @param[in] collection"]
7395    #[doc = " @param[in] value"]
7396    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7397    pub fn cass_collection_append_uuid(
7398        collection: *mut CassCollection,
7399        value: CassUuid,
7400    ) -> CassError;
7401}
7402extern "C" {
7403    #[doc = " Appends an \"inet\" to the collection."]
7404    #[doc = ""]
7405    #[doc = " @public @memberof CassCollection"]
7406    #[doc = ""]
7407    #[doc = " @param[in] collection"]
7408    #[doc = " @param[in] value"]
7409    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7410    pub fn cass_collection_append_inet(
7411        collection: *mut CassCollection,
7412        value: CassInet,
7413    ) -> CassError;
7414}
7415extern "C" {
7416    #[doc = " Appends a \"decimal\" to the collection."]
7417    #[doc = ""]
7418    #[doc = " @public @memberof CassCollection"]
7419    #[doc = ""]
7420    #[doc = " @param[in] collection"]
7421    #[doc = " @param[in] varint The value is copied into the collection object; the"]
7422    #[doc = " memory pointed to by this parameter can be freed after this call."]
7423    #[doc = " @param[in] varint_size"]
7424    #[doc = " @param[in] scale"]
7425    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7426    pub fn cass_collection_append_decimal(
7427        collection: *mut CassCollection,
7428        varint: *const cass_byte_t,
7429        varint_size: usize,
7430        scale: cass_int32_t,
7431    ) -> CassError;
7432}
7433extern "C" {
7434    #[doc = " Appends a \"duration\" to the collection."]
7435    #[doc = ""]
7436    #[doc = " @cassandra{3.10+}"]
7437    #[doc = ""]
7438    #[doc = " @public @memberof CassCollection"]
7439    #[doc = ""]
7440    #[doc = " @param[in] collection"]
7441    #[doc = " @param[in] months"]
7442    #[doc = " @param[in] days"]
7443    #[doc = " @param[in] nanos"]
7444    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7445    pub fn cass_collection_append_duration(
7446        collection: *mut CassCollection,
7447        months: cass_int32_t,
7448        days: cass_int32_t,
7449        nanos: cass_int64_t,
7450    ) -> CassError;
7451}
7452extern "C" {
7453    #[doc = " Appends a \"list\", \"map\" or \"set\" to the collection."]
7454    #[doc = ""]
7455    #[doc = " @cassandra{2.1+}"]
7456    #[doc = ""]
7457    #[doc = " @public @memberof CassCollection"]
7458    #[doc = ""]
7459    #[doc = " @param[in] collection"]
7460    #[doc = " @param[in] value"]
7461    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7462    pub fn cass_collection_append_collection(
7463        collection: *mut CassCollection,
7464        value: *const CassCollection,
7465    ) -> CassError;
7466}
7467extern "C" {
7468    #[doc = " Appends a \"tuple\" to the collection."]
7469    #[doc = ""]
7470    #[doc = " @cassandra{2.1+}"]
7471    #[doc = ""]
7472    #[doc = " @public @memberof CassCollection"]
7473    #[doc = ""]
7474    #[doc = " @param[in] collection"]
7475    #[doc = " @param[in] value"]
7476    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7477    pub fn cass_collection_append_tuple(
7478        collection: *mut CassCollection,
7479        value: *const CassTuple,
7480    ) -> CassError;
7481}
7482extern "C" {
7483    #[doc = " Appends a \"udt\" to the collection."]
7484    #[doc = ""]
7485    #[doc = " @cassandra{2.1+}"]
7486    #[doc = ""]
7487    #[doc = " @public @memberof CassCollection"]
7488    #[doc = ""]
7489    #[doc = " @param[in] collection"]
7490    #[doc = " @param[in] value"]
7491    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7492    pub fn cass_collection_append_user_type(
7493        collection: *mut CassCollection,
7494        value: *const CassUserType,
7495    ) -> CassError;
7496}
7497extern "C" {
7498    #[doc = " Creates a new tuple."]
7499    #[doc = ""]
7500    #[doc = " @cassandra{2.1+}"]
7501    #[doc = ""]
7502    #[doc = " @public @memberof CassTuple"]
7503    #[doc = ""]
7504    #[doc = " @param[in] item_count The number of items in the tuple."]
7505    #[doc = " @return Returns a tuple that must be freed."]
7506    #[doc = ""]
7507    #[doc = " @see cass_tuple_free()"]
7508    pub fn cass_tuple_new(item_count: usize) -> *mut CassTuple;
7509}
7510extern "C" {
7511    #[doc = " Creates a new tuple from an existing data type."]
7512    #[doc = ""]
7513    #[doc = " @cassandra{2.1+}"]
7514    #[doc = ""]
7515    #[doc = " @public @memberof CassTuple"]
7516    #[doc = ""]
7517    #[doc = " @param[in] data_type"]
7518    #[doc = " @return Returns a tuple that must be freed."]
7519    #[doc = ""]
7520    #[doc = " @see cass_tuple_free();"]
7521    pub fn cass_tuple_new_from_data_type(data_type: *const CassDataType) -> *mut CassTuple;
7522}
7523extern "C" {
7524    #[doc = " Frees a tuple instance."]
7525    #[doc = ""]
7526    #[doc = " @cassandra{2.1+}"]
7527    #[doc = ""]
7528    #[doc = " @public @memberof CassTuple"]
7529    #[doc = ""]
7530    #[doc = " @param[in] tuple"]
7531    pub fn cass_tuple_free(tuple: *mut CassTuple);
7532}
7533extern "C" {
7534    #[doc = " Gets the data type of a tuple."]
7535    #[doc = ""]
7536    #[doc = " @cassandra{2.1+}"]
7537    #[doc = ""]
7538    #[doc = " @param[in] tuple"]
7539    #[doc = " @return Returns a reference to the data type of the tuple. Do not free"]
7540    #[doc = " this reference as it is bound to the lifetime of the tuple."]
7541    pub fn cass_tuple_data_type(tuple: *const CassTuple) -> *const CassDataType;
7542}
7543extern "C" {
7544    #[doc = " Sets an null in a tuple at the specified index."]
7545    #[doc = ""]
7546    #[doc = " @cassandra{2.1+}"]
7547    #[doc = ""]
7548    #[doc = " @public @memberof CassTuple"]
7549    #[doc = ""]
7550    #[doc = " @param[in] tuple"]
7551    #[doc = " @param[in] index"]
7552    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7553    pub fn cass_tuple_set_null(tuple: *mut CassTuple, index: usize) -> CassError;
7554}
7555extern "C" {
7556    #[doc = " Sets a \"tinyint\" in a tuple at the specified index."]
7557    #[doc = ""]
7558    #[doc = " @cassandra{2.2+}"]
7559    #[doc = ""]
7560    #[doc = " @public @memberof CassTuple"]
7561    #[doc = ""]
7562    #[doc = " @param[in] tuple"]
7563    #[doc = " @param[in] index"]
7564    #[doc = " @param[in] value"]
7565    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7566    pub fn cass_tuple_set_int8(
7567        tuple: *mut CassTuple,
7568        index: usize,
7569        value: cass_int8_t,
7570    ) -> CassError;
7571}
7572extern "C" {
7573    #[doc = " Sets an \"smallint\" in a tuple at the specified index."]
7574    #[doc = ""]
7575    #[doc = " @cassandra{2.2+}"]
7576    #[doc = ""]
7577    #[doc = " @public @memberof CassTuple"]
7578    #[doc = ""]
7579    #[doc = " @param[in] tuple"]
7580    #[doc = " @param[in] index"]
7581    #[doc = " @param[in] value"]
7582    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7583    pub fn cass_tuple_set_int16(
7584        tuple: *mut CassTuple,
7585        index: usize,
7586        value: cass_int16_t,
7587    ) -> CassError;
7588}
7589extern "C" {
7590    #[doc = " Sets an \"int\" in a tuple at the specified index."]
7591    #[doc = ""]
7592    #[doc = " @cassandra{2.1+}"]
7593    #[doc = ""]
7594    #[doc = " @public @memberof CassTuple"]
7595    #[doc = ""]
7596    #[doc = " @param[in] tuple"]
7597    #[doc = " @param[in] index"]
7598    #[doc = " @param[in] value"]
7599    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7600    pub fn cass_tuple_set_int32(
7601        tuple: *mut CassTuple,
7602        index: usize,
7603        value: cass_int32_t,
7604    ) -> CassError;
7605}
7606extern "C" {
7607    #[doc = " Sets a \"date\" in a tuple at the specified index."]
7608    #[doc = ""]
7609    #[doc = " @cassandra{2.2+}"]
7610    #[doc = ""]
7611    #[doc = " @public @memberof CassTuple"]
7612    #[doc = ""]
7613    #[doc = " @param[in] tuple"]
7614    #[doc = " @param[in] index"]
7615    #[doc = " @param[in] value"]
7616    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7617    pub fn cass_tuple_set_uint32(
7618        tuple: *mut CassTuple,
7619        index: usize,
7620        value: cass_uint32_t,
7621    ) -> CassError;
7622}
7623extern "C" {
7624    #[doc = " Sets a \"bigint\", \"counter\", \"timestamp\" or \"time\" in a tuple at the"]
7625    #[doc = " specified index."]
7626    #[doc = ""]
7627    #[doc = " @cassandra{2.1+}"]
7628    #[doc = ""]
7629    #[doc = " @public @memberof CassTuple"]
7630    #[doc = ""]
7631    #[doc = " @param[in] tuple"]
7632    #[doc = " @param[in] index"]
7633    #[doc = " @param[in] value"]
7634    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7635    pub fn cass_tuple_set_int64(
7636        tuple: *mut CassTuple,
7637        index: usize,
7638        value: cass_int64_t,
7639    ) -> CassError;
7640}
7641extern "C" {
7642    #[doc = " Sets a \"float\" in a tuple at the specified index."]
7643    #[doc = ""]
7644    #[doc = " @cassandra{2.1+}"]
7645    #[doc = ""]
7646    #[doc = " @public @memberof CassTuple"]
7647    #[doc = ""]
7648    #[doc = " @param[in] tuple"]
7649    #[doc = " @param[in] index"]
7650    #[doc = " @param[in] value"]
7651    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7652    pub fn cass_tuple_set_float(
7653        tuple: *mut CassTuple,
7654        index: usize,
7655        value: cass_float_t,
7656    ) -> CassError;
7657}
7658extern "C" {
7659    #[doc = " Sets a \"double\" in a tuple at the specified index."]
7660    #[doc = ""]
7661    #[doc = " @cassandra{2.1+}"]
7662    #[doc = ""]
7663    #[doc = " @public @memberof CassTuple"]
7664    #[doc = ""]
7665    #[doc = " @param[in] tuple"]
7666    #[doc = " @param[in] index"]
7667    #[doc = " @param[in] value"]
7668    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7669    pub fn cass_tuple_set_double(
7670        tuple: *mut CassTuple,
7671        index: usize,
7672        value: cass_double_t,
7673    ) -> CassError;
7674}
7675extern "C" {
7676    #[doc = " Sets a \"boolean\" in a tuple at the specified index."]
7677    #[doc = ""]
7678    #[doc = " @cassandra{2.1+}"]
7679    #[doc = ""]
7680    #[doc = " @public @memberof CassTuple"]
7681    #[doc = ""]
7682    #[doc = " @param[in] tuple"]
7683    #[doc = " @param[in] index"]
7684    #[doc = " @param[in] value"]
7685    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7686    pub fn cass_tuple_set_bool(
7687        tuple: *mut CassTuple,
7688        index: usize,
7689        value: cass_bool_t,
7690    ) -> CassError;
7691}
7692extern "C" {
7693    #[doc = " Sets an \"ascii\", \"text\" or \"varchar\" in a tuple at the specified index."]
7694    #[doc = ""]
7695    #[doc = " @cassandra{2.1+}"]
7696    #[doc = ""]
7697    #[doc = " @public @memberof CassTuple"]
7698    #[doc = ""]
7699    #[doc = " @param[in] tuple"]
7700    #[doc = " @param[in] index"]
7701    #[doc = " @param[in] value The value is copied into the tuple object; the"]
7702    #[doc = " memory pointed to by this parameter can be freed after this call."]
7703    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7704    pub fn cass_tuple_set_string(
7705        tuple: *mut CassTuple,
7706        index: usize,
7707        value: *const ::std::os::raw::c_char,
7708    ) -> CassError;
7709}
7710extern "C" {
7711    #[doc = " Same as cass_tuple_set_string(), but with lengths for string"]
7712    #[doc = " parameters."]
7713    #[doc = ""]
7714    #[doc = " @cassandra{2.1+}"]
7715    #[doc = ""]
7716    #[doc = " @public @memberof CassTuple"]
7717    #[doc = ""]
7718    #[doc = " @param[in] tuple"]
7719    #[doc = " @param[in] index"]
7720    #[doc = " @param[in] value"]
7721    #[doc = " @param[in] value_length"]
7722    #[doc = " @return same as cass_tuple_set_string()"]
7723    #[doc = ""]
7724    #[doc = " @see cass_tuple_set_string();"]
7725    pub fn cass_tuple_set_string_n(
7726        tuple: *mut CassTuple,
7727        index: usize,
7728        value: *const ::std::os::raw::c_char,
7729        value_length: usize,
7730    ) -> CassError;
7731}
7732extern "C" {
7733    #[doc = " Sets a \"blob\", \"varint\" or \"custom\" in a tuple at the specified index."]
7734    #[doc = ""]
7735    #[doc = " @cassandra{2.1+}"]
7736    #[doc = ""]
7737    #[doc = " @public @memberof CassTuple"]
7738    #[doc = ""]
7739    #[doc = " @param[in] tuple"]
7740    #[doc = " @param[in] index"]
7741    #[doc = " @param[in] value The value is copied into the tuple object; the"]
7742    #[doc = " memory pointed to by this parameter can be freed after this call."]
7743    #[doc = " @param[in] value_size"]
7744    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7745    pub fn cass_tuple_set_bytes(
7746        tuple: *mut CassTuple,
7747        index: usize,
7748        value: *const cass_byte_t,
7749        value_size: usize,
7750    ) -> CassError;
7751}
7752extern "C" {
7753    #[doc = " Sets a \"custom\" in a tuple at the specified index."]
7754    #[doc = ""]
7755    #[doc = " @public @memberof CassTuple"]
7756    #[doc = ""]
7757    #[doc = " @param[in] tuple"]
7758    #[doc = " @param[in] index"]
7759    #[doc = " @param[in] class_name"]
7760    #[doc = " @param[in] value The value is copied into the tuple object; the"]
7761    #[doc = " memory pointed to by this parameter can be freed after this call."]
7762    #[doc = " @param[in] value_size"]
7763    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7764    pub fn cass_tuple_set_custom(
7765        tuple: *mut CassTuple,
7766        index: usize,
7767        class_name: *const ::std::os::raw::c_char,
7768        value: *const cass_byte_t,
7769        value_size: usize,
7770    ) -> CassError;
7771}
7772extern "C" {
7773    #[doc = " Same as cass_tuple_set_custom(), but with lengths for string"]
7774    #[doc = " parameters."]
7775    #[doc = ""]
7776    #[doc = " @public @memberof CassTuple"]
7777    #[doc = ""]
7778    #[doc = " @param[in] tuple"]
7779    #[doc = " @param[in] index"]
7780    #[doc = " @param[in] class_name"]
7781    #[doc = " @param[in] class_name_length"]
7782    #[doc = " @param[in] value"]
7783    #[doc = " @param[in] value_size"]
7784    #[doc = " @return same as cass_tuple_set_custom()"]
7785    #[doc = ""]
7786    #[doc = " @see cass_tuple_set_custom()"]
7787    pub fn cass_tuple_set_custom_n(
7788        tuple: *mut CassTuple,
7789        index: usize,
7790        class_name: *const ::std::os::raw::c_char,
7791        class_name_length: usize,
7792        value: *const cass_byte_t,
7793        value_size: usize,
7794    ) -> CassError;
7795}
7796extern "C" {
7797    #[doc = " Sets a \"uuid\" or \"timeuuid\" in a tuple at the specified index."]
7798    #[doc = ""]
7799    #[doc = " @cassandra{2.1+}"]
7800    #[doc = ""]
7801    #[doc = " @public @memberof CassTuple"]
7802    #[doc = ""]
7803    #[doc = " @param[in] tuple"]
7804    #[doc = " @param[in] index"]
7805    #[doc = " @param[in] value"]
7806    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7807    pub fn cass_tuple_set_uuid(tuple: *mut CassTuple, index: usize, value: CassUuid) -> CassError;
7808}
7809extern "C" {
7810    #[doc = " Sets an \"inet\" in a tuple at the specified index."]
7811    #[doc = ""]
7812    #[doc = " @cassandra{2.1+}"]
7813    #[doc = ""]
7814    #[doc = " @public @memberof CassTuple"]
7815    #[doc = ""]
7816    #[doc = " @param[in] tuple"]
7817    #[doc = " @param[in] index"]
7818    #[doc = " @param[in] value"]
7819    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7820    pub fn cass_tuple_set_inet(tuple: *mut CassTuple, index: usize, value: CassInet) -> CassError;
7821}
7822extern "C" {
7823    #[doc = " Sets a \"decimal\" in a tuple at the specified index."]
7824    #[doc = ""]
7825    #[doc = " @cassandra{2.1+}"]
7826    #[doc = ""]
7827    #[doc = " @public @memberof CassTuple"]
7828    #[doc = ""]
7829    #[doc = " @param[in] tuple"]
7830    #[doc = " @param[in] index"]
7831    #[doc = " @param[in] varint The value is copied into the tuple object; the"]
7832    #[doc = " memory pointed to by this parameter can be freed after this call."]
7833    #[doc = " @param[in] varint_size"]
7834    #[doc = " @param[in] scale"]
7835    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7836    pub fn cass_tuple_set_decimal(
7837        tuple: *mut CassTuple,
7838        index: usize,
7839        varint: *const cass_byte_t,
7840        varint_size: usize,
7841        scale: cass_int32_t,
7842    ) -> CassError;
7843}
7844extern "C" {
7845    #[doc = " Sets a \"duration\" in a tuple at the specified index."]
7846    #[doc = ""]
7847    #[doc = " @cassandra{3.10+}"]
7848    #[doc = ""]
7849    #[doc = " @public @memberof CassTuple"]
7850    #[doc = ""]
7851    #[doc = " @param[in] tuple"]
7852    #[doc = " @param[in] index"]
7853    #[doc = " @param[in] months"]
7854    #[doc = " @param[in] days"]
7855    #[doc = " @param[in] nanos"]
7856    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7857    pub fn cass_tuple_set_duration(
7858        tuple: *mut CassTuple,
7859        index: usize,
7860        months: cass_int32_t,
7861        days: cass_int32_t,
7862        nanos: cass_int64_t,
7863    ) -> CassError;
7864}
7865extern "C" {
7866    #[doc = " Sets a \"list\", \"map\" or \"set\" in a tuple at the specified index."]
7867    #[doc = ""]
7868    #[doc = " @cassandra{2.1+}"]
7869    #[doc = ""]
7870    #[doc = " @public @memberof CassTuple"]
7871    #[doc = ""]
7872    #[doc = " @param[in] tuple"]
7873    #[doc = " @param[in] index"]
7874    #[doc = " @param[in] value"]
7875    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7876    pub fn cass_tuple_set_collection(
7877        tuple: *mut CassTuple,
7878        index: usize,
7879        value: *const CassCollection,
7880    ) -> CassError;
7881}
7882extern "C" {
7883    #[doc = " Sets a \"tuple\" in a tuple at the specified index."]
7884    #[doc = ""]
7885    #[doc = " @cassandra{2.1+}"]
7886    #[doc = ""]
7887    #[doc = " @public @memberof CassTuple"]
7888    #[doc = ""]
7889    #[doc = " @param[in] tuple"]
7890    #[doc = " @param[in] index"]
7891    #[doc = " @param[in] value"]
7892    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7893    pub fn cass_tuple_set_tuple(
7894        tuple: *mut CassTuple,
7895        index: usize,
7896        value: *const CassTuple,
7897    ) -> CassError;
7898}
7899extern "C" {
7900    #[doc = " Sets a \"udt\" in a tuple at the specified index."]
7901    #[doc = ""]
7902    #[doc = " @cassandra{2.1+}"]
7903    #[doc = ""]
7904    #[doc = " @public @memberof CassTuple"]
7905    #[doc = ""]
7906    #[doc = " @param[in] tuple"]
7907    #[doc = " @param[in] index"]
7908    #[doc = " @param[in] value"]
7909    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7910    pub fn cass_tuple_set_user_type(
7911        tuple: *mut CassTuple,
7912        index: usize,
7913        value: *const CassUserType,
7914    ) -> CassError;
7915}
7916extern "C" {
7917    #[doc = " Creates a new user defined type from existing data type;"]
7918    #[doc = ""]
7919    #[doc = " @cassandra{2.1+}"]
7920    #[doc = ""]
7921    #[doc = " @public @memberof CassUserType"]
7922    #[doc = ""]
7923    #[doc = " @param[in] data_type"]
7924    #[doc = " @return Returns a user defined type that must be freed. NULL is returned if"]
7925    #[doc = " the data type is not a user defined type."]
7926    #[doc = ""]
7927    #[doc = " @see cass_user_type_free()"]
7928    pub fn cass_user_type_new_from_data_type(data_type: *const CassDataType) -> *mut CassUserType;
7929}
7930extern "C" {
7931    #[doc = " Frees a user defined type instance."]
7932    #[doc = ""]
7933    #[doc = " @cassandra{2.1+}"]
7934    #[doc = ""]
7935    #[doc = " @public @memberof CassUserType"]
7936    #[doc = ""]
7937    #[doc = " @param[in] user_type"]
7938    pub fn cass_user_type_free(user_type: *mut CassUserType);
7939}
7940extern "C" {
7941    #[doc = " Gets the data type of a user defined type."]
7942    #[doc = ""]
7943    #[doc = " @cassandra{2.1+}"]
7944    #[doc = ""]
7945    #[doc = " @param[in] user_type"]
7946    #[doc = " @return Returns a reference to the data type of the user defined type."]
7947    #[doc = " Do not free this reference as it is bound to the lifetime of the"]
7948    #[doc = " user defined type."]
7949    pub fn cass_user_type_data_type(user_type: *const CassUserType) -> *const CassDataType;
7950}
7951extern "C" {
7952    #[doc = " Sets a null in a user defined type at the specified index."]
7953    #[doc = ""]
7954    #[doc = " @cassandra{2.1+}"]
7955    #[doc = ""]
7956    #[doc = " @public @memberof CassUserType"]
7957    #[doc = ""]
7958    #[doc = " @param[in] user_type"]
7959    #[doc = " @param[in] index"]
7960    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7961    pub fn cass_user_type_set_null(user_type: *mut CassUserType, index: usize) -> CassError;
7962}
7963extern "C" {
7964    #[doc = " Sets a null in a user defined type at the specified name."]
7965    #[doc = ""]
7966    #[doc = " @cassandra{2.1+}"]
7967    #[doc = ""]
7968    #[doc = " @public @memberof CassUserType"]
7969    #[doc = ""]
7970    #[doc = " @param[in] user_type"]
7971    #[doc = " @param[in] name"]
7972    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
7973    pub fn cass_user_type_set_null_by_name(
7974        user_type: *mut CassUserType,
7975        name: *const ::std::os::raw::c_char,
7976    ) -> CassError;
7977}
7978extern "C" {
7979    #[doc = " Same as cass_user_type_set_null_by_name(), but with lengths for string"]
7980    #[doc = " parameters."]
7981    #[doc = ""]
7982    #[doc = " @cassandra{2.1+}"]
7983    #[doc = ""]
7984    #[doc = " @public @memberof CassUserType"]
7985    #[doc = ""]
7986    #[doc = " @param[in] user_type"]
7987    #[doc = " @param[in] name"]
7988    #[doc = " @param[in] name_length"]
7989    #[doc = " @return same as cass_user_type_set_null_by_name()"]
7990    #[doc = ""]
7991    #[doc = " @see cass_user_type_set_null_by_name()"]
7992    pub fn cass_user_type_set_null_by_name_n(
7993        user_type: *mut CassUserType,
7994        name: *const ::std::os::raw::c_char,
7995        name_length: usize,
7996    ) -> CassError;
7997}
7998extern "C" {
7999    #[doc = " Sets a \"tinyint\" in a user defined type at the specified index."]
8000    #[doc = ""]
8001    #[doc = " @cassandra{2.2+}"]
8002    #[doc = ""]
8003    #[doc = " @public @memberof CassUserType"]
8004    #[doc = ""]
8005    #[doc = " @param[in] user_type"]
8006    #[doc = " @param[in] index"]
8007    #[doc = " @param[in] value"]
8008    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8009    pub fn cass_user_type_set_int8(
8010        user_type: *mut CassUserType,
8011        index: usize,
8012        value: cass_int8_t,
8013    ) -> CassError;
8014}
8015extern "C" {
8016    #[doc = " Sets a \"tinyint\" in a user defined type at the specified name."]
8017    #[doc = ""]
8018    #[doc = " @cassandra{2.2+}"]
8019    #[doc = ""]
8020    #[doc = " @public @memberof CassUserType"]
8021    #[doc = ""]
8022    #[doc = " @param[in] user_type"]
8023    #[doc = " @param[in] name"]
8024    #[doc = " @param[in] value"]
8025    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8026    pub fn cass_user_type_set_int8_by_name(
8027        user_type: *mut CassUserType,
8028        name: *const ::std::os::raw::c_char,
8029        value: cass_int8_t,
8030    ) -> CassError;
8031}
8032extern "C" {
8033    #[doc = " Same as cass_user_type_set_int8_by_name(), but with lengths for string"]
8034    #[doc = " parameters."]
8035    #[doc = ""]
8036    #[doc = " @cassandra{2.2+}"]
8037    #[doc = ""]
8038    #[doc = " @public @memberof CassUserType"]
8039    #[doc = ""]
8040    #[doc = " @param[in] user_type"]
8041    #[doc = " @param[in] name"]
8042    #[doc = " @param[in] name_length"]
8043    #[doc = " @param[in] value"]
8044    #[doc = " @return same as cass_user_type_set_int8_by_name()"]
8045    #[doc = ""]
8046    #[doc = " @see cass_user_type_set_int8_by_name()"]
8047    pub fn cass_user_type_set_int8_by_name_n(
8048        user_type: *mut CassUserType,
8049        name: *const ::std::os::raw::c_char,
8050        name_length: usize,
8051        value: cass_int8_t,
8052    ) -> CassError;
8053}
8054extern "C" {
8055    #[doc = " Sets an \"smallint\" in a user defined type at the specified index."]
8056    #[doc = ""]
8057    #[doc = " @cassandra{2.2+}"]
8058    #[doc = ""]
8059    #[doc = " @public @memberof CassUserType"]
8060    #[doc = ""]
8061    #[doc = " @param[in] user_type"]
8062    #[doc = " @param[in] index"]
8063    #[doc = " @param[in] value"]
8064    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8065    pub fn cass_user_type_set_int16(
8066        user_type: *mut CassUserType,
8067        index: usize,
8068        value: cass_int16_t,
8069    ) -> CassError;
8070}
8071extern "C" {
8072    #[doc = " Sets an \"smallint\" in a user defined type at the specified name."]
8073    #[doc = ""]
8074    #[doc = " @cassandra{2.2+}"]
8075    #[doc = ""]
8076    #[doc = " @public @memberof CassUserType"]
8077    #[doc = ""]
8078    #[doc = " @param[in] user_type"]
8079    #[doc = " @param[in] name"]
8080    #[doc = " @param[in] value"]
8081    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8082    pub fn cass_user_type_set_int16_by_name(
8083        user_type: *mut CassUserType,
8084        name: *const ::std::os::raw::c_char,
8085        value: cass_int16_t,
8086    ) -> CassError;
8087}
8088extern "C" {
8089    #[doc = " Same as cass_user_type_set_int16_by_name(), but with lengths for string"]
8090    #[doc = " parameters."]
8091    #[doc = ""]
8092    #[doc = " @cassandra{2.2+}"]
8093    #[doc = ""]
8094    #[doc = " @public @memberof CassUserType"]
8095    #[doc = ""]
8096    #[doc = " @param[in] user_type"]
8097    #[doc = " @param[in] name"]
8098    #[doc = " @param[in] name_length"]
8099    #[doc = " @param[in] value"]
8100    #[doc = " @return same as cass_user_type_set_int16_by_name()"]
8101    #[doc = ""]
8102    #[doc = " @see cass_user_type_set_int16_by_name()"]
8103    pub fn cass_user_type_set_int16_by_name_n(
8104        user_type: *mut CassUserType,
8105        name: *const ::std::os::raw::c_char,
8106        name_length: usize,
8107        value: cass_int16_t,
8108    ) -> CassError;
8109}
8110extern "C" {
8111    #[doc = " Sets an \"int\" in a user defined type at the specified index."]
8112    #[doc = ""]
8113    #[doc = " @cassandra{2.1+}"]
8114    #[doc = ""]
8115    #[doc = " @public @memberof CassUserType"]
8116    #[doc = ""]
8117    #[doc = " @param[in] user_type"]
8118    #[doc = " @param[in] index"]
8119    #[doc = " @param[in] value"]
8120    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8121    pub fn cass_user_type_set_int32(
8122        user_type: *mut CassUserType,
8123        index: usize,
8124        value: cass_int32_t,
8125    ) -> CassError;
8126}
8127extern "C" {
8128    #[doc = " Sets an \"int\" in a user defined type at the specified name."]
8129    #[doc = ""]
8130    #[doc = " @cassandra{2.1+}"]
8131    #[doc = ""]
8132    #[doc = " @public @memberof CassUserType"]
8133    #[doc = ""]
8134    #[doc = " @param[in] user_type"]
8135    #[doc = " @param[in] name"]
8136    #[doc = " @param[in] value"]
8137    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8138    pub fn cass_user_type_set_int32_by_name(
8139        user_type: *mut CassUserType,
8140        name: *const ::std::os::raw::c_char,
8141        value: cass_int32_t,
8142    ) -> CassError;
8143}
8144extern "C" {
8145    #[doc = " Same as cass_user_type_set_int32_by_name(), but with lengths for string"]
8146    #[doc = " parameters."]
8147    #[doc = ""]
8148    #[doc = " @cassandra{2.1+}"]
8149    #[doc = ""]
8150    #[doc = " @public @memberof CassUserType"]
8151    #[doc = ""]
8152    #[doc = " @param[in] user_type"]
8153    #[doc = " @param[in] name"]
8154    #[doc = " @param[in] name_length"]
8155    #[doc = " @param[in] value"]
8156    #[doc = " @return same as cass_user_type_set_int32_by_name()"]
8157    #[doc = ""]
8158    #[doc = " @see cass_user_type_set_int32_by_name()"]
8159    pub fn cass_user_type_set_int32_by_name_n(
8160        user_type: *mut CassUserType,
8161        name: *const ::std::os::raw::c_char,
8162        name_length: usize,
8163        value: cass_int32_t,
8164    ) -> CassError;
8165}
8166extern "C" {
8167    #[doc = " Sets a \"date\" in a user defined type at the specified index."]
8168    #[doc = ""]
8169    #[doc = " @cassandra{2.2+}"]
8170    #[doc = ""]
8171    #[doc = " @public @memberof CassUserType"]
8172    #[doc = ""]
8173    #[doc = " @param[in] user_type"]
8174    #[doc = " @param[in] index"]
8175    #[doc = " @param[in] value"]
8176    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8177    pub fn cass_user_type_set_uint32(
8178        user_type: *mut CassUserType,
8179        index: usize,
8180        value: cass_uint32_t,
8181    ) -> CassError;
8182}
8183extern "C" {
8184    #[doc = " Sets a \"date\" in a user defined type at the specified name."]
8185    #[doc = ""]
8186    #[doc = " @cassandra{2.2+}"]
8187    #[doc = ""]
8188    #[doc = " @public @memberof CassUserType"]
8189    #[doc = ""]
8190    #[doc = " @param[in] user_type"]
8191    #[doc = " @param[in] name"]
8192    #[doc = " @param[in] value"]
8193    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8194    pub fn cass_user_type_set_uint32_by_name(
8195        user_type: *mut CassUserType,
8196        name: *const ::std::os::raw::c_char,
8197        value: cass_uint32_t,
8198    ) -> CassError;
8199}
8200extern "C" {
8201    #[doc = " Same as cass_user_type_set_uint32_by_name(), but with lengths for string"]
8202    #[doc = " parameters."]
8203    #[doc = ""]
8204    #[doc = " @cassandra{2.2+}"]
8205    #[doc = ""]
8206    #[doc = " @public @memberof CassUserType"]
8207    #[doc = ""]
8208    #[doc = " @param[in] user_type"]
8209    #[doc = " @param[in] name"]
8210    #[doc = " @param[in] name_length"]
8211    #[doc = " @param[in] value"]
8212    #[doc = " @return same as cass_user_type_set_uint32_by_name()"]
8213    #[doc = ""]
8214    #[doc = " @see cass_user_type_set_uint32_by_name()"]
8215    pub fn cass_user_type_set_uint32_by_name_n(
8216        user_type: *mut CassUserType,
8217        name: *const ::std::os::raw::c_char,
8218        name_length: usize,
8219        value: cass_uint32_t,
8220    ) -> CassError;
8221}
8222extern "C" {
8223    #[doc = " Sets an \"bigint\", \"counter\", \"timestamp\" or \"time\" in a"]
8224    #[doc = " user defined type at the specified index."]
8225    #[doc = ""]
8226    #[doc = " @cassandra{2.1+}"]
8227    #[doc = ""]
8228    #[doc = " @public @memberof CassUserType"]
8229    #[doc = ""]
8230    #[doc = " @param[in] user_type"]
8231    #[doc = " @param[in] index"]
8232    #[doc = " @param[in] value"]
8233    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8234    pub fn cass_user_type_set_int64(
8235        user_type: *mut CassUserType,
8236        index: usize,
8237        value: cass_int64_t,
8238    ) -> CassError;
8239}
8240extern "C" {
8241    #[doc = " Sets an \"bigint\", \"counter\", \"timestamp\" or \"time\" in a"]
8242    #[doc = " user defined type at the specified name."]
8243    #[doc = ""]
8244    #[doc = " @cassandra{2.1+}"]
8245    #[doc = ""]
8246    #[doc = " @public @memberof CassUserType"]
8247    #[doc = ""]
8248    #[doc = " @param[in] user_type"]
8249    #[doc = " @param[in] name"]
8250    #[doc = " @param[in] value"]
8251    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8252    pub fn cass_user_type_set_int64_by_name(
8253        user_type: *mut CassUserType,
8254        name: *const ::std::os::raw::c_char,
8255        value: cass_int64_t,
8256    ) -> CassError;
8257}
8258extern "C" {
8259    #[doc = " Same as cass_user_type_set_int64_by_name(), but with lengths for string"]
8260    #[doc = " parameters."]
8261    #[doc = ""]
8262    #[doc = " @cassandra{2.1+}"]
8263    #[doc = ""]
8264    #[doc = " @public @memberof CassUserType"]
8265    #[doc = ""]
8266    #[doc = " @param[in] user_type"]
8267    #[doc = " @param[in] name"]
8268    #[doc = " @param[in] name_length"]
8269    #[doc = " @param[in] value"]
8270    #[doc = " @return same as cass_user_type_set_int64_by_name()"]
8271    #[doc = ""]
8272    #[doc = " @see cass_user_type_set_int64_by_name()"]
8273    pub fn cass_user_type_set_int64_by_name_n(
8274        user_type: *mut CassUserType,
8275        name: *const ::std::os::raw::c_char,
8276        name_length: usize,
8277        value: cass_int64_t,
8278    ) -> CassError;
8279}
8280extern "C" {
8281    #[doc = " Sets a \"float\" in a user defined type at the specified index."]
8282    #[doc = ""]
8283    #[doc = " @cassandra{2.1+}"]
8284    #[doc = ""]
8285    #[doc = " @public @memberof CassUserType"]
8286    #[doc = ""]
8287    #[doc = " @param[in] user_type"]
8288    #[doc = " @param[in] index"]
8289    #[doc = " @param[in] value"]
8290    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8291    pub fn cass_user_type_set_float(
8292        user_type: *mut CassUserType,
8293        index: usize,
8294        value: cass_float_t,
8295    ) -> CassError;
8296}
8297extern "C" {
8298    #[doc = " Sets a \"float\" in a user defined type at the specified name."]
8299    #[doc = ""]
8300    #[doc = " @cassandra{2.1+}"]
8301    #[doc = ""]
8302    #[doc = " @public @memberof CassUserType"]
8303    #[doc = ""]
8304    #[doc = " @param[in] user_type"]
8305    #[doc = " @param[in] name"]
8306    #[doc = " @param[in] value"]
8307    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8308    pub fn cass_user_type_set_float_by_name(
8309        user_type: *mut CassUserType,
8310        name: *const ::std::os::raw::c_char,
8311        value: cass_float_t,
8312    ) -> CassError;
8313}
8314extern "C" {
8315    #[doc = " Same as cass_user_type_set_float_by_name(), but with lengths for string"]
8316    #[doc = " parameters."]
8317    #[doc = ""]
8318    #[doc = " @cassandra{2.1+}"]
8319    #[doc = ""]
8320    #[doc = " @public @memberof CassUserType"]
8321    #[doc = ""]
8322    #[doc = " @param[in] user_type"]
8323    #[doc = " @param[in] name"]
8324    #[doc = " @param[in] name_length"]
8325    #[doc = " @param[in] value"]
8326    #[doc = " @return same as cass_user_type_set_float_by_name()"]
8327    #[doc = ""]
8328    #[doc = " @see cass_user_type_set_float_by_name()"]
8329    pub fn cass_user_type_set_float_by_name_n(
8330        user_type: *mut CassUserType,
8331        name: *const ::std::os::raw::c_char,
8332        name_length: usize,
8333        value: cass_float_t,
8334    ) -> CassError;
8335}
8336extern "C" {
8337    #[doc = " Sets an \"double\" in a user defined type at the specified index."]
8338    #[doc = ""]
8339    #[doc = " @cassandra{2.1+}"]
8340    #[doc = ""]
8341    #[doc = " @public @memberof CassUserType"]
8342    #[doc = ""]
8343    #[doc = " @param[in] user_type"]
8344    #[doc = " @param[in] index"]
8345    #[doc = " @param[in] value"]
8346    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8347    pub fn cass_user_type_set_double(
8348        user_type: *mut CassUserType,
8349        index: usize,
8350        value: cass_double_t,
8351    ) -> CassError;
8352}
8353extern "C" {
8354    #[doc = " Sets an \"double\" in a user defined type at the specified name."]
8355    #[doc = ""]
8356    #[doc = " @cassandra{2.1+}"]
8357    #[doc = ""]
8358    #[doc = " @public @memberof CassUserType"]
8359    #[doc = ""]
8360    #[doc = " @param[in] user_type"]
8361    #[doc = " @param[in] name"]
8362    #[doc = " @param[in] value"]
8363    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8364    pub fn cass_user_type_set_double_by_name(
8365        user_type: *mut CassUserType,
8366        name: *const ::std::os::raw::c_char,
8367        value: cass_double_t,
8368    ) -> CassError;
8369}
8370extern "C" {
8371    #[doc = " Same as cass_user_type_set_double_by_name(), but with lengths for string"]
8372    #[doc = " parameters."]
8373    #[doc = ""]
8374    #[doc = " @cassandra{2.1+}"]
8375    #[doc = ""]
8376    #[doc = " @public @memberof CassUserType"]
8377    #[doc = ""]
8378    #[doc = " @param[in] user_type"]
8379    #[doc = " @param[in] name"]
8380    #[doc = " @param[in] name_length"]
8381    #[doc = " @param[in] value"]
8382    #[doc = " @return same as cass_user_type_set_double_by_name()"]
8383    #[doc = ""]
8384    #[doc = " @see cass_user_type_set_double_by_name()"]
8385    pub fn cass_user_type_set_double_by_name_n(
8386        user_type: *mut CassUserType,
8387        name: *const ::std::os::raw::c_char,
8388        name_length: usize,
8389        value: cass_double_t,
8390    ) -> CassError;
8391}
8392extern "C" {
8393    #[doc = " Sets a \"boolean\" in a user defined type at the specified index."]
8394    #[doc = ""]
8395    #[doc = " @cassandra{2.1+}"]
8396    #[doc = ""]
8397    #[doc = " @public @memberof CassUserType"]
8398    #[doc = ""]
8399    #[doc = " @param[in] user_type"]
8400    #[doc = " @param[in] index"]
8401    #[doc = " @param[in] value"]
8402    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8403    pub fn cass_user_type_set_bool(
8404        user_type: *mut CassUserType,
8405        index: usize,
8406        value: cass_bool_t,
8407    ) -> CassError;
8408}
8409extern "C" {
8410    #[doc = " Sets a \"boolean\" in a user defined type at the specified name."]
8411    #[doc = ""]
8412    #[doc = " @cassandra{2.1+}"]
8413    #[doc = ""]
8414    #[doc = " @public @memberof CassUserType"]
8415    #[doc = ""]
8416    #[doc = " @param[in] user_type"]
8417    #[doc = " @param[in] name"]
8418    #[doc = " @param[in] value"]
8419    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8420    pub fn cass_user_type_set_bool_by_name(
8421        user_type: *mut CassUserType,
8422        name: *const ::std::os::raw::c_char,
8423        value: cass_bool_t,
8424    ) -> CassError;
8425}
8426extern "C" {
8427    #[doc = " Same as cass_user_type_set_double_by_name(), but with lengths for string"]
8428    #[doc = " parameters."]
8429    #[doc = ""]
8430    #[doc = " @cassandra{2.1+}"]
8431    #[doc = ""]
8432    #[doc = " @public @memberof CassUserType"]
8433    #[doc = ""]
8434    #[doc = " @param[in] user_type"]
8435    #[doc = " @param[in] name"]
8436    #[doc = " @param[in] name_length"]
8437    #[doc = " @param[in] value"]
8438    #[doc = " @return same as cass_user_type_set_double_by_name()"]
8439    #[doc = ""]
8440    #[doc = " @see cass_user_type_set_double_by_name()"]
8441    pub fn cass_user_type_set_bool_by_name_n(
8442        user_type: *mut CassUserType,
8443        name: *const ::std::os::raw::c_char,
8444        name_length: usize,
8445        value: cass_bool_t,
8446    ) -> CassError;
8447}
8448extern "C" {
8449    #[doc = " Sets an \"ascii\", \"text\" or \"varchar\" in a user defined type at the"]
8450    #[doc = " specified index."]
8451    #[doc = ""]
8452    #[doc = " @cassandra{2.1+}"]
8453    #[doc = ""]
8454    #[doc = " @public @memberof CassUserType"]
8455    #[doc = ""]
8456    #[doc = " @param[in] user_type"]
8457    #[doc = " @param[in] index"]
8458    #[doc = " @param[in] value"]
8459    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8460    pub fn cass_user_type_set_string(
8461        user_type: *mut CassUserType,
8462        index: usize,
8463        value: *const ::std::os::raw::c_char,
8464    ) -> CassError;
8465}
8466extern "C" {
8467    #[doc = " Same as cass_user_type_set_string(), but with lengths for string"]
8468    #[doc = " parameters."]
8469    #[doc = ""]
8470    #[doc = " @cassandra{2.1+}"]
8471    #[doc = ""]
8472    #[doc = " @public @memberof CassUserType"]
8473    #[doc = ""]
8474    #[doc = " @param[in] user_type"]
8475    #[doc = " @param[in] index"]
8476    #[doc = " @param[in] value"]
8477    #[doc = " @param[in] value_length"]
8478    #[doc = " @return same as cass_user_type_set_string()"]
8479    #[doc = ""]
8480    #[doc = " @see cass_user_type_set_string()"]
8481    pub fn cass_user_type_set_string_n(
8482        user_type: *mut CassUserType,
8483        index: usize,
8484        value: *const ::std::os::raw::c_char,
8485        value_length: usize,
8486    ) -> CassError;
8487}
8488extern "C" {
8489    #[doc = " Sets an \"ascii\", \"text\" or \"varchar\" in a user defined type at the"]
8490    #[doc = " specified name."]
8491    #[doc = ""]
8492    #[doc = " @cassandra{2.1+}"]
8493    #[doc = ""]
8494    #[doc = " @public @memberof CassUserType"]
8495    #[doc = ""]
8496    #[doc = " @param[in] user_type"]
8497    #[doc = " @param[in] name"]
8498    #[doc = " @param[in] value"]
8499    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8500    pub fn cass_user_type_set_string_by_name(
8501        user_type: *mut CassUserType,
8502        name: *const ::std::os::raw::c_char,
8503        value: *const ::std::os::raw::c_char,
8504    ) -> CassError;
8505}
8506extern "C" {
8507    #[doc = " Same as cass_user_type_set_string_by_name(), but with lengths for string"]
8508    #[doc = " parameters."]
8509    #[doc = ""]
8510    #[doc = " @cassandra{2.1+}"]
8511    #[doc = ""]
8512    #[doc = " @public @memberof CassUserType"]
8513    #[doc = ""]
8514    #[doc = " @param[in] user_type"]
8515    #[doc = " @param[in] name"]
8516    #[doc = " @param[in] name_length"]
8517    #[doc = " @param[in] value"]
8518    #[doc = " @param[in] value_length"]
8519    #[doc = " @return same as cass_user_type_set_string_by_name()"]
8520    #[doc = ""]
8521    #[doc = " @see cass_user_type_set_string_by_name()"]
8522    pub fn cass_user_type_set_string_by_name_n(
8523        user_type: *mut CassUserType,
8524        name: *const ::std::os::raw::c_char,
8525        name_length: usize,
8526        value: *const ::std::os::raw::c_char,
8527        value_length: usize,
8528    ) -> CassError;
8529}
8530extern "C" {
8531    #[doc = " Sets a \"blob\" \"varint\" or \"custom\" in a user defined type at the specified index."]
8532    #[doc = ""]
8533    #[doc = " @cassandra{2.1+}"]
8534    #[doc = ""]
8535    #[doc = " @public @memberof CassUserType"]
8536    #[doc = ""]
8537    #[doc = " @param[in] user_type"]
8538    #[doc = " @param[in] index"]
8539    #[doc = " @param[in] value"]
8540    #[doc = " @param[in] value_size"]
8541    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8542    pub fn cass_user_type_set_bytes(
8543        user_type: *mut CassUserType,
8544        index: usize,
8545        value: *const cass_byte_t,
8546        value_size: usize,
8547    ) -> CassError;
8548}
8549extern "C" {
8550    #[doc = " Sets a \"blob\", \"varint\" or \"custom\" in a user defined type at the specified name."]
8551    #[doc = ""]
8552    #[doc = " @cassandra{2.1+}"]
8553    #[doc = ""]
8554    #[doc = " @public @memberof CassUserType"]
8555    #[doc = ""]
8556    #[doc = " @param[in] user_type"]
8557    #[doc = " @param[in] name"]
8558    #[doc = " @param[in] value"]
8559    #[doc = " @param[in] value_size"]
8560    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8561    pub fn cass_user_type_set_bytes_by_name(
8562        user_type: *mut CassUserType,
8563        name: *const ::std::os::raw::c_char,
8564        value: *const cass_byte_t,
8565        value_size: usize,
8566    ) -> CassError;
8567}
8568extern "C" {
8569    #[doc = " Same as cass_user_type_set_bytes_by_name(), but with lengths for string"]
8570    #[doc = " parameters."]
8571    #[doc = ""]
8572    #[doc = " @cassandra{2.1+}"]
8573    #[doc = ""]
8574    #[doc = " @public @memberof CassUserType"]
8575    #[doc = ""]
8576    #[doc = " @param[in] user_type"]
8577    #[doc = " @param[in] name"]
8578    #[doc = " @param[in] name_length"]
8579    #[doc = " @param[in] value"]
8580    #[doc = " @param[in] value_size"]
8581    #[doc = " @return same as cass_user_type_set_bytes_by_name()"]
8582    #[doc = ""]
8583    #[doc = " @see cass_user_type_set_bytes_by_name()"]
8584    pub fn cass_user_type_set_bytes_by_name_n(
8585        user_type: *mut CassUserType,
8586        name: *const ::std::os::raw::c_char,
8587        name_length: usize,
8588        value: *const cass_byte_t,
8589        value_size: usize,
8590    ) -> CassError;
8591}
8592extern "C" {
8593    #[doc = " Sets a \"custom\" in a user defined type at the specified index."]
8594    #[doc = ""]
8595    #[doc = " @public @memberof CassUserType"]
8596    #[doc = ""]
8597    #[doc = " @param[in] user_type"]
8598    #[doc = " @param[in] index"]
8599    #[doc = " @param[in] class_name"]
8600    #[doc = " @param[in] value"]
8601    #[doc = " @param[in] value_size"]
8602    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8603    pub fn cass_user_type_set_custom(
8604        user_type: *mut CassUserType,
8605        index: usize,
8606        class_name: *const ::std::os::raw::c_char,
8607        value: *const cass_byte_t,
8608        value_size: usize,
8609    ) -> CassError;
8610}
8611extern "C" {
8612    #[doc = " Same as cass_user_type_set_custom(), but with lengths for string"]
8613    #[doc = " parameters."]
8614    #[doc = ""]
8615    #[doc = " @public @memberof CassUserType"]
8616    #[doc = ""]
8617    #[doc = " @param[in] user_type"]
8618    #[doc = " @param[in] index"]
8619    #[doc = " @param[in] class_name"]
8620    #[doc = " @param[in] class_name_length"]
8621    #[doc = " @param[in] value"]
8622    #[doc = " @param[in] value_size"]
8623    #[doc = " @return same as cass_user_type_set_custom()"]
8624    #[doc = ""]
8625    #[doc = " @see cass_user_type_set_custom()"]
8626    pub fn cass_user_type_set_custom_n(
8627        user_type: *mut CassUserType,
8628        index: usize,
8629        class_name: *const ::std::os::raw::c_char,
8630        class_name_length: usize,
8631        value: *const cass_byte_t,
8632        value_size: usize,
8633    ) -> CassError;
8634}
8635extern "C" {
8636    #[doc = " Sets a \"custom\" in a user defined type at the specified name."]
8637    #[doc = ""]
8638    #[doc = " @public @memberof CassUserType"]
8639    #[doc = ""]
8640    #[doc = " @param[in] user_type"]
8641    #[doc = " @param[in] name"]
8642    #[doc = " @param[in] class_name"]
8643    #[doc = " @param[in] value"]
8644    #[doc = " @param[in] value_size"]
8645    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8646    pub fn cass_user_type_set_custom_by_name(
8647        user_type: *mut CassUserType,
8648        name: *const ::std::os::raw::c_char,
8649        class_name: *const ::std::os::raw::c_char,
8650        value: *const cass_byte_t,
8651        value_size: usize,
8652    ) -> CassError;
8653}
8654extern "C" {
8655    #[doc = " Same as cass_user_type_set_custom_by_name(), but with lengths for string"]
8656    #[doc = " parameters."]
8657    #[doc = ""]
8658    #[doc = " @public @memberof CassUserType"]
8659    #[doc = ""]
8660    #[doc = " @param[in] user_type"]
8661    #[doc = " @param[in] name"]
8662    #[doc = " @param[in] name_length"]
8663    #[doc = " @param[in] class_name"]
8664    #[doc = " @param[in] class_name_length"]
8665    #[doc = " @param[in] value"]
8666    #[doc = " @param[in] value_size"]
8667    #[doc = " @return same as cass_user_type_set_custom_by_name()"]
8668    #[doc = ""]
8669    #[doc = " @see cass_user_type_set_custom_by_name()"]
8670    pub fn cass_user_type_set_custom_by_name_n(
8671        user_type: *mut CassUserType,
8672        name: *const ::std::os::raw::c_char,
8673        name_length: usize,
8674        class_name: *const ::std::os::raw::c_char,
8675        class_name_length: usize,
8676        value: *const cass_byte_t,
8677        value_size: usize,
8678    ) -> CassError;
8679}
8680extern "C" {
8681    #[doc = " Sets a \"uuid\" or \"timeuuid\" in a user defined type at the specified index."]
8682    #[doc = ""]
8683    #[doc = " @cassandra{2.1+}"]
8684    #[doc = ""]
8685    #[doc = " @public @memberof CassUserType"]
8686    #[doc = ""]
8687    #[doc = " @param[in] user_type"]
8688    #[doc = " @param[in] index"]
8689    #[doc = " @param[in] value"]
8690    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8691    pub fn cass_user_type_set_uuid(
8692        user_type: *mut CassUserType,
8693        index: usize,
8694        value: CassUuid,
8695    ) -> CassError;
8696}
8697extern "C" {
8698    #[doc = " Sets a \"uuid\" or \"timeuuid\" in a user defined type at the specified name."]
8699    #[doc = ""]
8700    #[doc = " @cassandra{2.1+}"]
8701    #[doc = ""]
8702    #[doc = " @public @memberof CassUserType"]
8703    #[doc = ""]
8704    #[doc = " @param[in] user_type"]
8705    #[doc = " @param[in] name"]
8706    #[doc = " @param[in] value"]
8707    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8708    pub fn cass_user_type_set_uuid_by_name(
8709        user_type: *mut CassUserType,
8710        name: *const ::std::os::raw::c_char,
8711        value: CassUuid,
8712    ) -> CassError;
8713}
8714extern "C" {
8715    #[doc = " Same as cass_user_type_set_uuid_by_name(), but with lengths for string"]
8716    #[doc = " parameters."]
8717    #[doc = ""]
8718    #[doc = " @cassandra{2.1+}"]
8719    #[doc = ""]
8720    #[doc = " @public @memberof CassUserType"]
8721    #[doc = ""]
8722    #[doc = " @param[in] user_type"]
8723    #[doc = " @param[in] name"]
8724    #[doc = " @param[in] name_length"]
8725    #[doc = " @param[in] value"]
8726    #[doc = " @return same as cass_user_type_set_uuid_by_name()"]
8727    #[doc = ""]
8728    #[doc = " @see cass_user_type_set_uuid_by_name()"]
8729    pub fn cass_user_type_set_uuid_by_name_n(
8730        user_type: *mut CassUserType,
8731        name: *const ::std::os::raw::c_char,
8732        name_length: usize,
8733        value: CassUuid,
8734    ) -> CassError;
8735}
8736extern "C" {
8737    #[doc = " Sets a \"inet\" in a user defined type at the specified index."]
8738    #[doc = ""]
8739    #[doc = " @cassandra{2.1+}"]
8740    #[doc = ""]
8741    #[doc = " @public @memberof CassUserType"]
8742    #[doc = ""]
8743    #[doc = " @param[in] user_type"]
8744    #[doc = " @param[in] index"]
8745    #[doc = " @param[in] value"]
8746    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8747    pub fn cass_user_type_set_inet(
8748        user_type: *mut CassUserType,
8749        index: usize,
8750        value: CassInet,
8751    ) -> CassError;
8752}
8753extern "C" {
8754    #[doc = " Sets a \"inet\" in a user defined type at the specified name."]
8755    #[doc = ""]
8756    #[doc = " @cassandra{2.1+}"]
8757    #[doc = ""]
8758    #[doc = " @public @memberof CassUserType"]
8759    #[doc = ""]
8760    #[doc = " @param[in] user_type"]
8761    #[doc = " @param[in] name"]
8762    #[doc = " @param[in] value"]
8763    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8764    pub fn cass_user_type_set_inet_by_name(
8765        user_type: *mut CassUserType,
8766        name: *const ::std::os::raw::c_char,
8767        value: CassInet,
8768    ) -> CassError;
8769}
8770extern "C" {
8771    #[doc = " Same as cass_user_type_set_inet_by_name(), but with lengths for string"]
8772    #[doc = " parameters."]
8773    #[doc = ""]
8774    #[doc = " @cassandra{2.1+}"]
8775    #[doc = ""]
8776    #[doc = " @public @memberof CassUserType"]
8777    #[doc = ""]
8778    #[doc = " @param[in] user_type"]
8779    #[doc = " @param[in] name"]
8780    #[doc = " @param[in] name_length"]
8781    #[doc = " @param[in] value"]
8782    #[doc = " @return same as cass_user_type_set_inet_by_name()"]
8783    #[doc = ""]
8784    #[doc = " @see cass_user_type_set_inet_by_name()"]
8785    pub fn cass_user_type_set_inet_by_name_n(
8786        user_type: *mut CassUserType,
8787        name: *const ::std::os::raw::c_char,
8788        name_length: usize,
8789        value: CassInet,
8790    ) -> CassError;
8791}
8792extern "C" {
8793    #[doc = " Sets an \"decimal\" in a user defined type at the specified index."]
8794    #[doc = ""]
8795    #[doc = " @cassandra{2.1+}"]
8796    #[doc = ""]
8797    #[doc = " @public @memberof CassUserType"]
8798    #[doc = ""]
8799    #[doc = " @param[in] user_type"]
8800    #[doc = " @param[in] index"]
8801    #[doc = " @param[in] varint"]
8802    #[doc = " @param[in] varint_size"]
8803    #[doc = " @param[in] scale"]
8804    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8805    pub fn cass_user_type_set_decimal(
8806        user_type: *mut CassUserType,
8807        index: usize,
8808        varint: *const cass_byte_t,
8809        varint_size: usize,
8810        scale: ::std::os::raw::c_int,
8811    ) -> CassError;
8812}
8813extern "C" {
8814    #[doc = " Sets \"decimal\" in a user defined type at the specified name."]
8815    #[doc = ""]
8816    #[doc = " @cassandra{2.1+}"]
8817    #[doc = ""]
8818    #[doc = " @public @memberof CassUserType"]
8819    #[doc = ""]
8820    #[doc = " @param[in] user_type"]
8821    #[doc = " @param[in] name"]
8822    #[doc = " @param[in] varint"]
8823    #[doc = " @param[in] varint_size"]
8824    #[doc = " @param[in] scale"]
8825    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8826    pub fn cass_user_type_set_decimal_by_name(
8827        user_type: *mut CassUserType,
8828        name: *const ::std::os::raw::c_char,
8829        varint: *const cass_byte_t,
8830        varint_size: usize,
8831        scale: ::std::os::raw::c_int,
8832    ) -> CassError;
8833}
8834extern "C" {
8835    #[doc = " Same as cass_user_type_set_decimal_by_name(), but with lengths for string"]
8836    #[doc = " parameters."]
8837    #[doc = ""]
8838    #[doc = " @cassandra{2.1+}"]
8839    #[doc = ""]
8840    #[doc = " @public @memberof CassUserType"]
8841    #[doc = ""]
8842    #[doc = " @param[in] user_type"]
8843    #[doc = " @param[in] name"]
8844    #[doc = " @param[in] name_length"]
8845    #[doc = " @param[in] varint"]
8846    #[doc = " @param[in] varint_size"]
8847    #[doc = " @param[in] scale"]
8848    #[doc = " @return same as cass_user_type_set_decimal_by_name()"]
8849    #[doc = ""]
8850    #[doc = " @see cass_user_type_set_decimal_by_name()"]
8851    pub fn cass_user_type_set_decimal_by_name_n(
8852        user_type: *mut CassUserType,
8853        name: *const ::std::os::raw::c_char,
8854        name_length: usize,
8855        varint: *const cass_byte_t,
8856        varint_size: usize,
8857        scale: ::std::os::raw::c_int,
8858    ) -> CassError;
8859}
8860extern "C" {
8861    #[doc = " Sets a \"duration\" in a user defined type at the specified index."]
8862    #[doc = ""]
8863    #[doc = " @cassandra{3.10+}"]
8864    #[doc = ""]
8865    #[doc = " @public @memberof CassUserType"]
8866    #[doc = ""]
8867    #[doc = " @param[in] user_type"]
8868    #[doc = " @param[in] index"]
8869    #[doc = " @param[in] months"]
8870    #[doc = " @param[in] days"]
8871    #[doc = " @param[in] nanos"]
8872    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8873    pub fn cass_user_type_set_duration(
8874        user_type: *mut CassUserType,
8875        index: usize,
8876        months: cass_int32_t,
8877        days: cass_int32_t,
8878        nanos: cass_int64_t,
8879    ) -> CassError;
8880}
8881extern "C" {
8882    #[doc = " Sets \"duration\" in a user defined type at the specified name."]
8883    #[doc = ""]
8884    #[doc = " @cassandra{3.10+}"]
8885    #[doc = ""]
8886    #[doc = " @public @memberof CassUserType"]
8887    #[doc = ""]
8888    #[doc = " @param[in] user_type"]
8889    #[doc = " @param[in] name"]
8890    #[doc = " @param[in] months"]
8891    #[doc = " @param[in] days"]
8892    #[doc = " @param[in] nanos"]
8893    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8894    pub fn cass_user_type_set_duration_by_name(
8895        user_type: *mut CassUserType,
8896        name: *const ::std::os::raw::c_char,
8897        months: cass_int32_t,
8898        days: cass_int32_t,
8899        nanos: cass_int64_t,
8900    ) -> CassError;
8901}
8902extern "C" {
8903    #[doc = " Same as cass_user_type_set_duration_by_name(), but with lengths for string"]
8904    #[doc = " parameters."]
8905    #[doc = ""]
8906    #[doc = " @cassandra{3.10+}"]
8907    #[doc = ""]
8908    #[doc = " @public @memberof CassUserType"]
8909    #[doc = ""]
8910    #[doc = " @param[in] user_type"]
8911    #[doc = " @param[in] name"]
8912    #[doc = " @param[in] name_length"]
8913    #[doc = " @param[in] months"]
8914    #[doc = " @param[in] days"]
8915    #[doc = " @param[in] nanos"]
8916    #[doc = " @return same as cass_user_type_set_duration_by_name()"]
8917    #[doc = ""]
8918    #[doc = " @see cass_user_type_set_duration_by_name()"]
8919    pub fn cass_user_type_set_duration_by_name_n(
8920        user_type: *mut CassUserType,
8921        name: *const ::std::os::raw::c_char,
8922        name_length: usize,
8923        months: cass_int32_t,
8924        days: cass_int32_t,
8925        nanos: cass_int64_t,
8926    ) -> CassError;
8927}
8928extern "C" {
8929    #[doc = " Sets a \"list\", \"map\" or \"set\" in a user defined type at the"]
8930    #[doc = " specified index."]
8931    #[doc = ""]
8932    #[doc = " @cassandra{2.1+}"]
8933    #[doc = ""]
8934    #[doc = " @public @memberof CassUserType"]
8935    #[doc = ""]
8936    #[doc = " @param[in] user_type"]
8937    #[doc = " @param[in] index"]
8938    #[doc = " @param[in] value"]
8939    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8940    pub fn cass_user_type_set_collection(
8941        user_type: *mut CassUserType,
8942        index: usize,
8943        value: *const CassCollection,
8944    ) -> CassError;
8945}
8946extern "C" {
8947    #[doc = " Sets a \"list\", \"map\" or \"set\" in a user defined type at the"]
8948    #[doc = " specified name."]
8949    #[doc = ""]
8950    #[doc = " @cassandra{2.1+}"]
8951    #[doc = ""]
8952    #[doc = " @public @memberof CassUserType"]
8953    #[doc = ""]
8954    #[doc = " @param[in] user_type"]
8955    #[doc = " @param[in] name"]
8956    #[doc = " @param[in] value"]
8957    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8958    pub fn cass_user_type_set_collection_by_name(
8959        user_type: *mut CassUserType,
8960        name: *const ::std::os::raw::c_char,
8961        value: *const CassCollection,
8962    ) -> CassError;
8963}
8964extern "C" {
8965    #[doc = " Same as cass_user_type_set_collection_by_name(), but with lengths for string"]
8966    #[doc = " parameters."]
8967    #[doc = ""]
8968    #[doc = " @cassandra{2.1+}"]
8969    #[doc = ""]
8970    #[doc = " @public @memberof CassUserType"]
8971    #[doc = ""]
8972    #[doc = " @param[in] user_type"]
8973    #[doc = " @param[in] name"]
8974    #[doc = " @param[in] name_length"]
8975    #[doc = " @param[in] value"]
8976    #[doc = " @return same as cass_user_type_set_collection_by_name()"]
8977    #[doc = ""]
8978    #[doc = " @see cass_user_type_set_collection_by_name()"]
8979    pub fn cass_user_type_set_collection_by_name_n(
8980        user_type: *mut CassUserType,
8981        name: *const ::std::os::raw::c_char,
8982        name_length: usize,
8983        value: *const CassCollection,
8984    ) -> CassError;
8985}
8986extern "C" {
8987    #[doc = " Sets a \"tuple\" in a user defined type at the specified index."]
8988    #[doc = ""]
8989    #[doc = " @cassandra{2.1+}"]
8990    #[doc = ""]
8991    #[doc = " @public @memberof CassUserType"]
8992    #[doc = ""]
8993    #[doc = " @param[in] user_type"]
8994    #[doc = " @param[in] index"]
8995    #[doc = " @param[in] value"]
8996    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
8997    pub fn cass_user_type_set_tuple(
8998        user_type: *mut CassUserType,
8999        index: usize,
9000        value: *const CassTuple,
9001    ) -> CassError;
9002}
9003extern "C" {
9004    #[doc = " Sets a \"tuple\" in a user defined type at the specified name."]
9005    #[doc = ""]
9006    #[doc = " @cassandra{2.1+}"]
9007    #[doc = ""]
9008    #[doc = " @public @memberof CassUserType"]
9009    #[doc = ""]
9010    #[doc = " @param[in] user_type"]
9011    #[doc = " @param[in] name"]
9012    #[doc = " @param[in] value"]
9013    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
9014    pub fn cass_user_type_set_tuple_by_name(
9015        user_type: *mut CassUserType,
9016        name: *const ::std::os::raw::c_char,
9017        value: *const CassTuple,
9018    ) -> CassError;
9019}
9020extern "C" {
9021    #[doc = " Same as cass_user_type_set_tuple_by_name(), but with lengths for string"]
9022    #[doc = " parameters."]
9023    #[doc = ""]
9024    #[doc = " @cassandra{2.1+}"]
9025    #[doc = ""]
9026    #[doc = " @public @memberof CassUserType"]
9027    #[doc = ""]
9028    #[doc = " @param[in] user_type"]
9029    #[doc = " @param[in] name"]
9030    #[doc = " @param[in] name_length"]
9031    #[doc = " @param[in] value"]
9032    #[doc = " @return same as cass_user_type_set_tuple_by_name()"]
9033    #[doc = ""]
9034    #[doc = " @see cass_user_type_set_tuple_by_name()"]
9035    pub fn cass_user_type_set_tuple_by_name_n(
9036        user_type: *mut CassUserType,
9037        name: *const ::std::os::raw::c_char,
9038        name_length: usize,
9039        value: *const CassTuple,
9040    ) -> CassError;
9041}
9042extern "C" {
9043    #[doc = " Sets a user defined type in a user defined type at the specified index."]
9044    #[doc = ""]
9045    #[doc = " @cassandra{2.1+}"]
9046    #[doc = ""]
9047    #[doc = " @public @memberof CassUserType"]
9048    #[doc = ""]
9049    #[doc = " @param[in] user_type"]
9050    #[doc = " @param[in] index"]
9051    #[doc = " @param[in] value"]
9052    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
9053    pub fn cass_user_type_set_user_type(
9054        user_type: *mut CassUserType,
9055        index: usize,
9056        value: *const CassUserType,
9057    ) -> CassError;
9058}
9059extern "C" {
9060    #[doc = " Sets a user defined type in a user defined type at the specified name."]
9061    #[doc = ""]
9062    #[doc = " @cassandra{2.1+}"]
9063    #[doc = ""]
9064    #[doc = " @public @memberof CassUserType"]
9065    #[doc = ""]
9066    #[doc = " @param[in] user_type"]
9067    #[doc = " @param[in] name"]
9068    #[doc = " @param[in] value"]
9069    #[doc = " @return CASS_OK if successful, otherwise an error occurred."]
9070    pub fn cass_user_type_set_user_type_by_name(
9071        user_type: *mut CassUserType,
9072        name: *const ::std::os::raw::c_char,
9073        value: *const CassUserType,
9074    ) -> CassError;
9075}
9076extern "C" {
9077    #[doc = " Same as cass_user_type_set_user_type_by_name(), but with lengths for string"]
9078    #[doc = " parameters."]
9079    #[doc = ""]
9080    #[doc = " @cassandra{2.1+}"]
9081    #[doc = ""]
9082    #[doc = " @public @memberof CassUserType"]
9083    #[doc = ""]
9084    #[doc = " @param[in] user_type"]
9085    #[doc = " @param[in] name"]
9086    #[doc = " @param[in] name_length"]
9087    #[doc = " @param[in] value"]
9088    #[doc = " @return same as cass_user_type_set_user_type_by_name()"]
9089    #[doc = ""]
9090    #[doc = " @see cass_user_type_set_user_type_by_name()"]
9091    pub fn cass_user_type_set_user_type_by_name_n(
9092        user_type: *mut CassUserType,
9093        name: *const ::std::os::raw::c_char,
9094        name_length: usize,
9095        value: *const CassUserType,
9096    ) -> CassError;
9097}
9098extern "C" {
9099    #[doc = " Frees a result instance."]
9100    #[doc = ""]
9101    #[doc = " This method invalidates all values, rows, and"]
9102    #[doc = " iterators that were derived from this result."]
9103    #[doc = ""]
9104    #[doc = " @public @memberof CassResult"]
9105    #[doc = ""]
9106    #[doc = " @param[in] result"]
9107    pub fn cass_result_free(result: *const CassResult);
9108}
9109extern "C" {
9110    #[doc = " Gets the number of rows for the specified result."]
9111    #[doc = ""]
9112    #[doc = " @public @memberof CassResult"]
9113    #[doc = ""]
9114    #[doc = " @param[in] result"]
9115    #[doc = " @return The number of rows in the result."]
9116    pub fn cass_result_row_count(result: *const CassResult) -> usize;
9117}
9118extern "C" {
9119    #[doc = " Gets the number of columns per row for the specified result."]
9120    #[doc = ""]
9121    #[doc = " @public @memberof CassResult"]
9122    #[doc = ""]
9123    #[doc = " @param[in] result"]
9124    #[doc = " @return The number of columns per row in the result."]
9125    pub fn cass_result_column_count(result: *const CassResult) -> usize;
9126}
9127extern "C" {
9128    #[doc = " Gets the column name at index for the specified result."]
9129    #[doc = ""]
9130    #[doc = " @public @memberof CassResult"]
9131    #[doc = ""]
9132    #[doc = " @param[in] result"]
9133    #[doc = " @param[in] index"]
9134    #[doc = " @param[out] name The column name at the specified index."]
9135    #[doc = " @param[out] name_length"]
9136    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
9137    pub fn cass_result_column_name(
9138        result: *const CassResult,
9139        index: usize,
9140        name: *mut *const ::std::os::raw::c_char,
9141        name_length: *mut usize,
9142    ) -> CassError;
9143}
9144extern "C" {
9145    #[doc = " Gets the column type at index for the specified result."]
9146    #[doc = ""]
9147    #[doc = " @public @memberof CassResult"]
9148    #[doc = ""]
9149    #[doc = " @param[in] result"]
9150    #[doc = " @param[in] index"]
9151    #[doc = " @return The column type at the specified index. CASS_VALUE_TYPE_UNKNOWN"]
9152    #[doc = " is returned if the index is out of bounds."]
9153    pub fn cass_result_column_type(result: *const CassResult, index: usize) -> CassValueType;
9154}
9155extern "C" {
9156    #[doc = " Gets the column data type at index for the specified result."]
9157    #[doc = ""]
9158    #[doc = " @public @memberof CassResult"]
9159    #[doc = ""]
9160    #[doc = " @param[in] result"]
9161    #[doc = " @param[in] index"]
9162    #[doc = " @return The column type at the specified index. NULL is returned if the"]
9163    #[doc = " index is out of bounds."]
9164    pub fn cass_result_column_data_type(
9165        result: *const CassResult,
9166        index: usize,
9167    ) -> *const CassDataType;
9168}
9169extern "C" {
9170    #[doc = " Gets the first row of the result."]
9171    #[doc = ""]
9172    #[doc = " @public @memberof CassResult"]
9173    #[doc = ""]
9174    #[doc = " @param[in] result"]
9175    #[doc = " @return The first row of the result. NULL if there are no rows."]
9176    pub fn cass_result_first_row(result: *const CassResult) -> *const CassRow;
9177}
9178extern "C" {
9179    #[doc = " Returns true if there are more pages."]
9180    #[doc = ""]
9181    #[doc = " @cassandra{2.0+}"]
9182    #[doc = ""]
9183    #[doc = " @public @memberof CassResult"]
9184    #[doc = ""]
9185    #[doc = " @param[in] result"]
9186    #[doc = " @return cass_true if there are more pages"]
9187    pub fn cass_result_has_more_pages(result: *const CassResult) -> cass_bool_t;
9188}
9189extern "C" {
9190    #[doc = " Gets the raw paging state from the result. The paging state is bound to the"]
9191    #[doc = " lifetime of the result object. If paging state needs to live beyond the"]
9192    #[doc = " lifetime of the result object it must be copied."]
9193    #[doc = ""]
9194    #[doc = " <b>Warning:</b> The paging state should not be exposed to or come from"]
9195    #[doc = " untrusted environments. The paging state could be spoofed and potentially"]
9196    #[doc = " used to gain access to other data."]
9197    #[doc = ""]
9198    #[doc = " @cassandra{2.0+}"]
9199    #[doc = ""]
9200    #[doc = " @public @memberof CassResult"]
9201    #[doc = ""]
9202    #[doc = " @param[in] result"]
9203    #[doc = " @param[out] paging_state"]
9204    #[doc = " @param[out] paging_state_size"]
9205    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
9206    #[doc = ""]
9207    #[doc = " @see cass_statement_set_paging_state_token()"]
9208    pub fn cass_result_paging_state_token(
9209        result: *const CassResult,
9210        paging_state: *mut *const ::std::os::raw::c_char,
9211        paging_state_size: *mut usize,
9212    ) -> CassError;
9213}
9214extern "C" {
9215    #[doc = " Frees an error result instance."]
9216    #[doc = ""]
9217    #[doc = " @public @memberof CassErrorResult"]
9218    #[doc = ""]
9219    #[doc = " @param[in] error_result"]
9220    pub fn cass_error_result_free(error_result: *const CassErrorResult);
9221}
9222extern "C" {
9223    #[doc = " Gets error code for the error result. This error code will always"]
9224    #[doc = " have an server error source."]
9225    #[doc = ""]
9226    #[doc = " @public @memberof CassErrorResult"]
9227    #[doc = ""]
9228    #[doc = " @param[in] error_result"]
9229    #[doc = " @return The server error code"]
9230    pub fn cass_error_result_code(error_result: *const CassErrorResult) -> CassError;
9231}
9232extern "C" {
9233    #[doc = " Gets consistency that triggered the error result of the"]
9234    #[doc = " following types:"]
9235    #[doc = ""]
9236    #[doc = " <ul>"]
9237    #[doc = "   <li>CASS_ERROR_SERVER_READ_TIMEOUT</li>"]
9238    #[doc = "   <li>CASS_ERROR_SERVER_WRITE_TIMEOUT</li>"]
9239    #[doc = "   <li>CASS_ERROR_SERVER_READ_FAILURE</li>"]
9240    #[doc = "   <li>CASS_ERROR_SERVER_WRITE_FAILURE</li>"]
9241    #[doc = "   <li>CASS_ERROR_SERVER_UNAVAILABLE</li>"]
9242    #[doc = " </ul>"]
9243    #[doc = ""]
9244    #[doc = " @public @memberof CassErrorResult"]
9245    #[doc = ""]
9246    #[doc = " @param[in] error_result"]
9247    #[doc = " @return The consistency that triggered the error for a read timeout,"]
9248    #[doc = " write timeout or an unavailable error result. Undefined for other"]
9249    #[doc = " error result types."]
9250    pub fn cass_error_result_consistency(error_result: *const CassErrorResult) -> CassConsistency;
9251}
9252extern "C" {
9253    #[doc = " Gets the actual number of received responses, received acknowledgments"]
9254    #[doc = " or alive nodes for following error result types, respectively:"]
9255    #[doc = ""]
9256    #[doc = " <ul>"]
9257    #[doc = "   <li>CASS_ERROR_SERVER_READ_TIMEOUT</li>"]
9258    #[doc = "   <li>CASS_ERROR_SERVER_WRITE_TIMEOUT</li>"]
9259    #[doc = "   <li>CASS_ERROR_SERVER_READ_FAILURE</li>"]
9260    #[doc = "   <li>CASS_ERROR_SERVER_WRITE_FAILURE</li>"]
9261    #[doc = "   <li>CASS_ERROR_SERVER_UNAVAILABLE</li>"]
9262    #[doc = " </ul>"]
9263    #[doc = ""]
9264    #[doc = " @public @memberof CassErrorResult"]
9265    #[doc = ""]
9266    #[doc = " @param[in] error_result"]
9267    #[doc = " @return The actual received responses for a read timeout, actual received"]
9268    #[doc = " acknowledgments for a write timeout or actual alive nodes for a unavailable"]
9269    #[doc = " error. Undefined for other error result types."]
9270    pub fn cass_error_result_responses_received(
9271        error_result: *const CassErrorResult,
9272    ) -> cass_int32_t;
9273}
9274extern "C" {
9275    #[doc = " Gets required responses, required acknowledgments or required alive nodes"]
9276    #[doc = " needed to successfully complete the request for following error result types,"]
9277    #[doc = " respectively:"]
9278    #[doc = ""]
9279    #[doc = " <ul>"]
9280    #[doc = "   <li>CASS_ERROR_SERVER_READ_TIMEOUT</li>"]
9281    #[doc = "   <li>CASS_ERROR_SERVER_WRITE_TIMEOUT</li>"]
9282    #[doc = "   <li>CASS_ERROR_SERVER_READ_FAILURE</li>"]
9283    #[doc = "   <li>CASS_ERROR_SERVER_WRITE_FAILURE</li>"]
9284    #[doc = "   <li>CASS_ERROR_SERVER_UNAVAILABLE</li>"]
9285    #[doc = " </ul>"]
9286    #[doc = ""]
9287    #[doc = " @public @memberof CassErrorResult"]
9288    #[doc = ""]
9289    #[doc = " @param[in] error_result"]
9290    #[doc = " @return The required responses for a read time, required acknowledgments"]
9291    #[doc = " for a write timeout or required alive nodes for an unavailable error result."]
9292    #[doc = " Undefined for other error result types."]
9293    pub fn cass_error_result_responses_required(
9294        error_result: *const CassErrorResult,
9295    ) -> cass_int32_t;
9296}
9297extern "C" {
9298    #[doc = " Gets the number of nodes that experienced failures for the following error types:"]
9299    #[doc = ""]
9300    #[doc = " <ul>"]
9301    #[doc = "   <li>CASS_ERROR_SERVER_READ_FAILURE</li>"]
9302    #[doc = "   <li>CASS_ERROR_SERVER_WRITE_FAILURE</li>"]
9303    #[doc = " </ul>"]
9304    #[doc = ""]
9305    #[doc = " @public @memberof CassErrorResult"]
9306    #[doc = ""]
9307    #[doc = " @param[in] error_result"]
9308    #[doc = " @return The number of nodes that failed during a read or write request."]
9309    pub fn cass_error_result_num_failures(error_result: *const CassErrorResult) -> cass_int32_t;
9310}
9311extern "C" {
9312    #[doc = " Determines whether the actual data was present in the responses from the"]
9313    #[doc = " replicas for the following error result types:"]
9314    #[doc = ""]
9315    #[doc = " <ul>"]
9316    #[doc = "   <li>CASS_ERROR_SERVER_READ_TIMEOUT</li>"]
9317    #[doc = "   <li>CASS_ERROR_SERVER_READ_FAILURE</li>"]
9318    #[doc = " </ul>"]
9319    #[doc = ""]
9320    #[doc = " @public @memberof CassErrorResult"]
9321    #[doc = ""]
9322    #[doc = " @param[in] error_result"]
9323    #[doc = " @return cass_true if the data was present in the received responses when the"]
9324    #[doc = " read timeout occurred. Undefined for other error result types."]
9325    pub fn cass_error_result_data_present(error_result: *const CassErrorResult) -> cass_bool_t;
9326}
9327extern "C" {
9328    #[doc = " Gets the write type of a request for the following error result types:"]
9329    #[doc = ""]
9330    #[doc = " <ul>"]
9331    #[doc = "   <li>CASS_ERROR_SERVER_WRITE_TIMEOUT</li>"]
9332    #[doc = "   <li>CASS_ERROR_SERVER_WRITE_FAILURE</li>"]
9333    #[doc = " </ul>"]
9334    #[doc = ""]
9335    #[doc = " @public @memberof CassErrorResult"]
9336    #[doc = ""]
9337    #[doc = " @param[in] error_result"]
9338    #[doc = " @return The type of the write that timed out. Undefined for"]
9339    #[doc = " other error result types."]
9340    pub fn cass_error_result_write_type(error_result: *const CassErrorResult) -> CassWriteType;
9341}
9342extern "C" {
9343    #[doc = " Gets the affected keyspace for the following error result types:"]
9344    #[doc = ""]
9345    #[doc = " <ul>"]
9346    #[doc = "   <li>CASS_ERROR_SERVER_ALREADY_EXISTS</li>"]
9347    #[doc = "   <li>CASS_ERROR_SERVER_FUNCTION_FAILURE</li>"]
9348    #[doc = " </ul>"]
9349    #[doc = ""]
9350    #[doc = " @public @memberof CassErrorResult"]
9351    #[doc = ""]
9352    #[doc = " @param[in] error_result"]
9353    #[doc = " @param[out] keyspace"]
9354    #[doc = " @param[out] keyspace_length"]
9355    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
9356    pub fn cass_error_result_keyspace(
9357        error_result: *const CassErrorResult,
9358        keyspace: *mut *const ::std::os::raw::c_char,
9359        keyspace_length: *mut usize,
9360    ) -> CassError;
9361}
9362extern "C" {
9363    #[doc = " Gets the affected table for the already exists error"]
9364    #[doc = " (CASS_ERROR_SERVER_ALREADY_EXISTS) result type."]
9365    #[doc = ""]
9366    #[doc = " @public @memberof CassErrorResult"]
9367    #[doc = ""]
9368    #[doc = " @param[in] error_result"]
9369    #[doc = " @param[out] table"]
9370    #[doc = " @param[out] table_length"]
9371    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
9372    pub fn cass_error_result_table(
9373        error_result: *const CassErrorResult,
9374        table: *mut *const ::std::os::raw::c_char,
9375        table_length: *mut usize,
9376    ) -> CassError;
9377}
9378extern "C" {
9379    #[doc = " Gets the affected function for the function failure error"]
9380    #[doc = " (CASS_ERROR_SERVER_FUNCTION_FAILURE) result type."]
9381    #[doc = ""]
9382    #[doc = " @cassandra{2.2+}"]
9383    #[doc = ""]
9384    #[doc = " @public @memberof CassErrorResult"]
9385    #[doc = ""]
9386    #[doc = " @param[in] error_result"]
9387    #[doc = " @param[out] function"]
9388    #[doc = " @param[out] function_length"]
9389    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
9390    pub fn cass_error_result_function(
9391        error_result: *const CassErrorResult,
9392        function: *mut *const ::std::os::raw::c_char,
9393        function_length: *mut usize,
9394    ) -> CassError;
9395}
9396extern "C" {
9397    #[doc = " Gets the number of argument types for the function failure error"]
9398    #[doc = " (CASS_ERROR_SERVER_FUNCTION_FAILURE) result type."]
9399    #[doc = ""]
9400    #[doc = " @cassandra{2.2+}"]
9401    #[doc = ""]
9402    #[doc = " @public @memberof CassErrorResult"]
9403    #[doc = ""]
9404    #[doc = " @param[in] error_result"]
9405    #[doc = " @return The number of arguments for the affected function."]
9406    pub fn cass_error_num_arg_types(error_result: *const CassErrorResult) -> usize;
9407}
9408extern "C" {
9409    #[doc = " Gets the argument type at the specified index for the function failure"]
9410    #[doc = " error (CASS_ERROR_SERVER_FUNCTION_FAILURE) result type."]
9411    #[doc = ""]
9412    #[doc = " @cassandra{2.2+}"]
9413    #[doc = ""]
9414    #[doc = " @public @memberof CassErrorResult"]
9415    #[doc = ""]
9416    #[doc = " @param[in] error_result"]
9417    #[doc = " @param[in] index"]
9418    #[doc = " @param[out] arg_type"]
9419    #[doc = " @param[out] arg_type_length"]
9420    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
9421    pub fn cass_error_result_arg_type(
9422        error_result: *const CassErrorResult,
9423        index: usize,
9424        arg_type: *mut *const ::std::os::raw::c_char,
9425        arg_type_length: *mut usize,
9426    ) -> CassError;
9427}
9428extern "C" {
9429    #[doc = " Frees an iterator instance."]
9430    #[doc = ""]
9431    #[doc = " @public @memberof CassIterator"]
9432    #[doc = ""]
9433    #[doc = " @param[in] iterator"]
9434    pub fn cass_iterator_free(iterator: *mut CassIterator);
9435}
9436extern "C" {
9437    #[doc = " Gets the type of the specified iterator."]
9438    #[doc = ""]
9439    #[doc = " @public @memberof CassIterator"]
9440    #[doc = ""]
9441    #[doc = " @param[in] iterator"]
9442    #[doc = " @return The type of the iterator."]
9443    pub fn cass_iterator_type(iterator: *mut CassIterator) -> CassIteratorType;
9444}
9445extern "C" {
9446    #[doc = " Creates a new iterator for the specified result. This can be"]
9447    #[doc = " used to iterate over rows in the result."]
9448    #[doc = ""]
9449    #[doc = " @public @memberof CassResult"]
9450    #[doc = ""]
9451    #[doc = " @param[in] result"]
9452    #[doc = " @return A new iterator that must be freed."]
9453    #[doc = ""]
9454    #[doc = " @see cass_iterator_free()"]
9455    pub fn cass_iterator_from_result(result: *const CassResult) -> *mut CassIterator;
9456}
9457extern "C" {
9458    #[doc = " Creates a new iterator for the specified row. This can be"]
9459    #[doc = " used to iterate over columns in a row."]
9460    #[doc = ""]
9461    #[doc = " @public @memberof CassRow"]
9462    #[doc = ""]
9463    #[doc = " @param[in] row"]
9464    #[doc = " @return A new iterator that must be freed."]
9465    #[doc = ""]
9466    #[doc = " @see cass_iterator_free()"]
9467    pub fn cass_iterator_from_row(row: *const CassRow) -> *mut CassIterator;
9468}
9469extern "C" {
9470    #[doc = " Creates a new iterator for the specified collection. This can be"]
9471    #[doc = " used to iterate over values in a collection."]
9472    #[doc = ""]
9473    #[doc = " @public @memberof CassValue"]
9474    #[doc = ""]
9475    #[doc = " @param[in] value"]
9476    #[doc = " @return A new iterator that must be freed. NULL returned if the"]
9477    #[doc = " value is not a collection."]
9478    #[doc = ""]
9479    #[doc = " @see cass_iterator_free()"]
9480    pub fn cass_iterator_from_collection(value: *const CassValue) -> *mut CassIterator;
9481}
9482extern "C" {
9483    #[doc = " Creates a new iterator for the specified map. This can be"]
9484    #[doc = " used to iterate over key/value pairs in a map."]
9485    #[doc = ""]
9486    #[doc = " @public @memberof CassValue"]
9487    #[doc = ""]
9488    #[doc = " @param[in] value"]
9489    #[doc = " @return A new iterator that must be freed. NULL returned if the"]
9490    #[doc = " value is not a map."]
9491    #[doc = ""]
9492    #[doc = " @see cass_iterator_free()"]
9493    pub fn cass_iterator_from_map(value: *const CassValue) -> *mut CassIterator;
9494}
9495extern "C" {
9496    #[doc = " Creates a new iterator for the specified tuple. This can be"]
9497    #[doc = " used to iterate over values in a tuple."]
9498    #[doc = ""]
9499    #[doc = " @cassandra{2.1+}"]
9500    #[doc = ""]
9501    #[doc = " @public @memberof CassValue"]
9502    #[doc = ""]
9503    #[doc = " @param[in] value"]
9504    #[doc = " @return A new iterator that must be freed. NULL returned if the"]
9505    #[doc = " value is not a tuple."]
9506    #[doc = ""]
9507    #[doc = " @see cass_iterator_free()"]
9508    pub fn cass_iterator_from_tuple(value: *const CassValue) -> *mut CassIterator;
9509}
9510extern "C" {
9511    #[doc = " Creates a new iterator for the specified user defined type. This can be"]
9512    #[doc = " used to iterate over fields in a user defined type."]
9513    #[doc = ""]
9514    #[doc = " @cassandra{2.1+}"]
9515    #[doc = ""]
9516    #[doc = " @public @memberof CassValue"]
9517    #[doc = ""]
9518    #[doc = " @param[in] value"]
9519    #[doc = " @return A new iterator that must be freed. NULL returned if the"]
9520    #[doc = " value is not a user defined type."]
9521    #[doc = ""]
9522    #[doc = " @see cass_iterator_free()"]
9523    pub fn cass_iterator_fields_from_user_type(value: *const CassValue) -> *mut CassIterator;
9524}
9525extern "C" {
9526    #[doc = " Creates a new iterator for the specified schema metadata."]
9527    #[doc = " This can be used to iterate over keyspace."]
9528    #[doc = ""]
9529    #[doc = " @public @memberof CassSchemaMeta"]
9530    #[doc = ""]
9531    #[doc = " @param[in] schema_meta"]
9532    #[doc = " @return A new iterator that must be freed."]
9533    #[doc = ""]
9534    #[doc = " @see cass_iterator_get_keyspace_meta()"]
9535    #[doc = " @see cass_iterator_free()"]
9536    pub fn cass_iterator_keyspaces_from_schema_meta(
9537        schema_meta: *const CassSchemaMeta,
9538    ) -> *mut CassIterator;
9539}
9540extern "C" {
9541    #[doc = " Creates a new iterator for the specified keyspace metadata."]
9542    #[doc = " This can be used to iterate over tables."]
9543    #[doc = ""]
9544    #[doc = " @public @memberof CassKeyspaceMeta"]
9545    #[doc = ""]
9546    #[doc = " @param[in] keyspace_meta"]
9547    #[doc = " @return A new iterator that must be freed."]
9548    #[doc = ""]
9549    #[doc = " @see cass_iterator_get_table_meta()"]
9550    #[doc = " @see cass_iterator_free()"]
9551    pub fn cass_iterator_tables_from_keyspace_meta(
9552        keyspace_meta: *const CassKeyspaceMeta,
9553    ) -> *mut CassIterator;
9554}
9555extern "C" {
9556    #[doc = " Creates a new iterator for the specified keyspace metadata."]
9557    #[doc = " This can be used to iterate over views."]
9558    #[doc = ""]
9559    #[doc = " @cassandra{3.0+}"]
9560    #[doc = ""]
9561    #[doc = " @public @memberof CassKeyspaceMeta"]
9562    #[doc = ""]
9563    #[doc = " @param[in] keyspace_meta"]
9564    #[doc = " @return A new iterator that must be freed."]
9565    #[doc = ""]
9566    #[doc = " @see cass_iterator_get_materialized_view_meta()"]
9567    #[doc = " @see cass_iterator_free()"]
9568    pub fn cass_iterator_materialized_views_from_keyspace_meta(
9569        keyspace_meta: *const CassKeyspaceMeta,
9570    ) -> *mut CassIterator;
9571}
9572extern "C" {
9573    #[doc = " Creates a new iterator for the specified keyspace metadata."]
9574    #[doc = " This can be used to iterate over types."]
9575    #[doc = ""]
9576    #[doc = " @cassandra{2.1+}"]
9577    #[doc = ""]
9578    #[doc = " @public @memberof CassKeyspaceMeta"]
9579    #[doc = ""]
9580    #[doc = " @param[in] keyspace_meta"]
9581    #[doc = " @return A new iterator that must be freed."]
9582    #[doc = ""]
9583    #[doc = " @see cass_iterator_get_user_type()"]
9584    #[doc = " @see cass_iterator_free()"]
9585    pub fn cass_iterator_user_types_from_keyspace_meta(
9586        keyspace_meta: *const CassKeyspaceMeta,
9587    ) -> *mut CassIterator;
9588}
9589extern "C" {
9590    #[doc = " Creates a new iterator for the specified keyspace metadata."]
9591    #[doc = " This can be used to iterate over functions."]
9592    #[doc = ""]
9593    #[doc = " @cassandra{2.2+}"]
9594    #[doc = ""]
9595    #[doc = " @public @memberof CassKeyspaceMeta"]
9596    #[doc = ""]
9597    #[doc = " @param[in] keyspace_meta"]
9598    #[doc = " @return A new iterator that must be freed."]
9599    #[doc = ""]
9600    #[doc = " @see cass_iterator_get_function_meta()"]
9601    #[doc = " @see cass_iterator_free()"]
9602    pub fn cass_iterator_functions_from_keyspace_meta(
9603        keyspace_meta: *const CassKeyspaceMeta,
9604    ) -> *mut CassIterator;
9605}
9606extern "C" {
9607    #[doc = " Creates a new iterator for the specified keyspace metadata."]
9608    #[doc = " This can be used to iterate over aggregates."]
9609    #[doc = ""]
9610    #[doc = " @cassandra{2.2+}"]
9611    #[doc = ""]
9612    #[doc = " @public @memberof CassKeyspaceMeta"]
9613    #[doc = ""]
9614    #[doc = " @param[in] keyspace_meta"]
9615    #[doc = " @return A new iterator that must be freed."]
9616    #[doc = ""]
9617    #[doc = " @see cass_iterator_get_aggregate_meta()"]
9618    #[doc = " @see cass_iterator_free()"]
9619    pub fn cass_iterator_aggregates_from_keyspace_meta(
9620        keyspace_meta: *const CassKeyspaceMeta,
9621    ) -> *mut CassIterator;
9622}
9623extern "C" {
9624    #[doc = " Creates a new fields iterator for the specified keyspace metadata. Metadata"]
9625    #[doc = " fields allow direct access to the column data found in the underlying"]
9626    #[doc = " \"keyspaces\" metadata table. This can be used to iterate those metadata"]
9627    #[doc = " field entries."]
9628    #[doc = ""]
9629    #[doc = " @public @memberof CassKeyspaceMeta"]
9630    #[doc = ""]
9631    #[doc = " @param[in] keyspace_meta"]
9632    #[doc = " @return A new iterator that must be freed."]
9633    #[doc = ""]
9634    #[doc = " @see cass_iterator_get_meta_field_name()"]
9635    #[doc = " @see cass_iterator_get_meta_field_value()"]
9636    #[doc = " @see cass_iterator_free()"]
9637    pub fn cass_iterator_fields_from_keyspace_meta(
9638        keyspace_meta: *const CassKeyspaceMeta,
9639    ) -> *mut CassIterator;
9640}
9641extern "C" {
9642    #[doc = " Creates a new iterator for the specified table metadata."]
9643    #[doc = " This can be used to iterate over columns."]
9644    #[doc = ""]
9645    #[doc = " @public @memberof CassTableMeta"]
9646    #[doc = ""]
9647    #[doc = " @param[in] table_meta"]
9648    #[doc = " @return A new iterator that must be freed."]
9649    #[doc = ""]
9650    #[doc = " @see cass_iterator_get_column_meta()"]
9651    #[doc = " @see cass_iterator_free()"]
9652    pub fn cass_iterator_columns_from_table_meta(
9653        table_meta: *const CassTableMeta,
9654    ) -> *mut CassIterator;
9655}
9656extern "C" {
9657    #[doc = " Creates a new iterator for the specified table metadata."]
9658    #[doc = " This can be used to iterate over indexes."]
9659    #[doc = ""]
9660    #[doc = " @public @memberof CassTableMeta"]
9661    #[doc = ""]
9662    #[doc = " @param[in] table_meta"]
9663    #[doc = " @return A new iterator that must be freed."]
9664    #[doc = ""]
9665    #[doc = " @see cass_iterator_get_index_meta()"]
9666    #[doc = " @see cass_iterator_free()"]
9667    pub fn cass_iterator_indexes_from_table_meta(
9668        table_meta: *const CassTableMeta,
9669    ) -> *mut CassIterator;
9670}
9671extern "C" {
9672    #[doc = " Creates a new iterator for the specified materialized view metadata."]
9673    #[doc = " This can be used to iterate over columns."]
9674    #[doc = ""]
9675    #[doc = " @cassandra{3.0+}"]
9676    #[doc = ""]
9677    #[doc = " @public @memberof CassTableMeta"]
9678    #[doc = ""]
9679    #[doc = " @param[in] table_meta"]
9680    #[doc = " @return A new iterator that must be freed."]
9681    #[doc = ""]
9682    #[doc = " @see cass_iterator_get_materialized_view_meta()"]
9683    #[doc = " @see cass_iterator_free()"]
9684    pub fn cass_iterator_materialized_views_from_table_meta(
9685        table_meta: *const CassTableMeta,
9686    ) -> *mut CassIterator;
9687}
9688extern "C" {
9689    #[doc = " Creates a new fields iterator for the specified table metadata. Metadata"]
9690    #[doc = " fields allow direct access to the column data found in the underlying"]
9691    #[doc = " \"tables\" metadata table. This can be used to iterate those metadata"]
9692    #[doc = " field entries."]
9693    #[doc = ""]
9694    #[doc = " @public @memberof CassTableMeta"]
9695    #[doc = ""]
9696    #[doc = " @param[in] table_meta"]
9697    #[doc = " @return A new iterator that must be freed."]
9698    #[doc = ""]
9699    #[doc = " @see cass_iterator_get_meta_field_name()"]
9700    #[doc = " @see cass_iterator_get_meta_field_value()"]
9701    #[doc = " @see cass_iterator_free()"]
9702    pub fn cass_iterator_fields_from_table_meta(
9703        table_meta: *const CassTableMeta,
9704    ) -> *mut CassIterator;
9705}
9706extern "C" {
9707    #[doc = " Creates a new iterator for the specified materialized view metadata."]
9708    #[doc = " This can be used to iterate over columns."]
9709    #[doc = ""]
9710    #[doc = " @cassandra{3.0+}"]
9711    #[doc = ""]
9712    #[doc = " @public @memberof CassMaterializedViewMeta"]
9713    #[doc = ""]
9714    #[doc = " @param[in] view_meta"]
9715    #[doc = " @return A new iterator that must be freed."]
9716    #[doc = ""]
9717    #[doc = " @see cass_iterator_get_column_meta()"]
9718    #[doc = " @see cass_iterator_free()"]
9719    pub fn cass_iterator_columns_from_materialized_view_meta(
9720        view_meta: *const CassMaterializedViewMeta,
9721    ) -> *mut CassIterator;
9722}
9723extern "C" {
9724    #[doc = " Creates a new fields iterator for the specified materialized view metadata."]
9725    #[doc = " Metadata fields allow direct access to the column data found in the"]
9726    #[doc = " underlying \"views\" metadata view. This can be used to iterate those metadata"]
9727    #[doc = " field entries."]
9728    #[doc = ""]
9729    #[doc = " @cassandra{3.0+}"]
9730    #[doc = ""]
9731    #[doc = " @public @memberof CassMaterializedViewMeta"]
9732    #[doc = ""]
9733    #[doc = " @param[in] view_meta"]
9734    #[doc = " @return A new iterator that must be freed."]
9735    #[doc = ""]
9736    #[doc = " @see cass_iterator_get_meta_field_name()"]
9737    #[doc = " @see cass_iterator_get_meta_field_value()"]
9738    #[doc = " @see cass_iterator_free()"]
9739    pub fn cass_iterator_fields_from_materialized_view_meta(
9740        view_meta: *const CassMaterializedViewMeta,
9741    ) -> *mut CassIterator;
9742}
9743extern "C" {
9744    #[doc = " Creates a new fields iterator for the specified column metadata. Metadata"]
9745    #[doc = " fields allow direct access to the column data found in the underlying"]
9746    #[doc = " \"columns\" metadata table. This can be used to iterate those metadata"]
9747    #[doc = " field entries."]
9748    #[doc = ""]
9749    #[doc = " @public @memberof CassColumnMeta"]
9750    #[doc = ""]
9751    #[doc = " @param[in] column_meta"]
9752    #[doc = " @return A new iterator that must be freed."]
9753    #[doc = ""]
9754    #[doc = " @see cass_iterator_get_meta_field_name()"]
9755    #[doc = " @see cass_iterator_get_meta_field_value()"]
9756    #[doc = " @see cass_iterator_free()"]
9757    pub fn cass_iterator_fields_from_column_meta(
9758        column_meta: *const CassColumnMeta,
9759    ) -> *mut CassIterator;
9760}
9761extern "C" {
9762    #[doc = " Creates a new fields iterator for the specified index metadata. Metadata"]
9763    #[doc = " fields allow direct access to the index data found in the underlying"]
9764    #[doc = " \"indexes\" metadata table. This can be used to iterate those metadata"]
9765    #[doc = " field entries."]
9766    #[doc = ""]
9767    #[doc = " @public @memberof CassIndexMeta"]
9768    #[doc = ""]
9769    #[doc = " @param[in] index_meta"]
9770    #[doc = " @return A new iterator that must be freed."]
9771    #[doc = ""]
9772    #[doc = " @see cass_iterator_get_meta_field_name()"]
9773    #[doc = " @see cass_iterator_get_meta_field_value()"]
9774    #[doc = " @see cass_iterator_free()"]
9775    pub fn cass_iterator_fields_from_index_meta(
9776        index_meta: *const CassIndexMeta,
9777    ) -> *mut CassIterator;
9778}
9779extern "C" {
9780    #[doc = " Creates a new fields iterator for the specified function metadata. Metadata"]
9781    #[doc = " fields allow direct access to the column data found in the underlying"]
9782    #[doc = " \"functions\" metadata table. This can be used to iterate those metadata"]
9783    #[doc = " field entries."]
9784    #[doc = ""]
9785    #[doc = " @cassandra{2.2+}"]
9786    #[doc = ""]
9787    #[doc = " @public @memberof CassFunctionMeta"]
9788    #[doc = ""]
9789    #[doc = " @param[in] function_meta"]
9790    #[doc = " @return A new iterator that must be freed."]
9791    #[doc = ""]
9792    #[doc = " @see cass_iterator_get_meta_field()"]
9793    #[doc = " @see cass_iterator_free()"]
9794    pub fn cass_iterator_fields_from_function_meta(
9795        function_meta: *const CassFunctionMeta,
9796    ) -> *mut CassIterator;
9797}
9798extern "C" {
9799    #[doc = " Creates a new fields iterator for the specified aggregate metadata. Metadata"]
9800    #[doc = " fields allow direct access to the column data found in the underlying"]
9801    #[doc = " \"aggregates\" metadata table. This can be used to iterate those metadata"]
9802    #[doc = " field entries."]
9803    #[doc = ""]
9804    #[doc = " @cassandra{2.2+}"]
9805    #[doc = ""]
9806    #[doc = " @public @memberof CassAggregateMeta"]
9807    #[doc = ""]
9808    #[doc = " @param[in] aggregate_meta"]
9809    #[doc = " @return A new iterator that must be freed."]
9810    #[doc = ""]
9811    #[doc = " @see cass_iterator_get_meta_field()"]
9812    #[doc = " @see cass_iterator_free()"]
9813    pub fn cass_iterator_fields_from_aggregate_meta(
9814        aggregate_meta: *const CassAggregateMeta,
9815    ) -> *mut CassIterator;
9816}
9817extern "C" {
9818    #[doc = " Advance the iterator to the next row, column or collection item."]
9819    #[doc = ""]
9820    #[doc = " @public @memberof CassIterator"]
9821    #[doc = ""]
9822    #[doc = " @param[in] iterator"]
9823    #[doc = " @return false if no more rows, columns or items, otherwise true"]
9824    pub fn cass_iterator_next(iterator: *mut CassIterator) -> cass_bool_t;
9825}
9826extern "C" {
9827    #[doc = " Gets the row at the result iterator's current position."]
9828    #[doc = ""]
9829    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9830    #[doc = " row returned by this method."]
9831    #[doc = ""]
9832    #[doc = " @public @memberof CassIterator"]
9833    #[doc = ""]
9834    #[doc = " @param[in] iterator"]
9835    #[doc = " @return A row"]
9836    pub fn cass_iterator_get_row(iterator: *const CassIterator) -> *const CassRow;
9837}
9838extern "C" {
9839    #[doc = " Gets the column value at the row iterator's current position."]
9840    #[doc = ""]
9841    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9842    #[doc = " column returned by this method."]
9843    #[doc = ""]
9844    #[doc = " @public @memberof CassIterator"]
9845    #[doc = ""]
9846    #[doc = " @param[in] iterator"]
9847    #[doc = " @return A value"]
9848    pub fn cass_iterator_get_column(iterator: *const CassIterator) -> *const CassValue;
9849}
9850extern "C" {
9851    #[doc = " Gets the value at a collection or tuple iterator's current position."]
9852    #[doc = ""]
9853    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9854    #[doc = " value returned by this method."]
9855    #[doc = ""]
9856    #[doc = " @public @memberof CassIterator"]
9857    #[doc = ""]
9858    #[doc = " @param[in] iterator"]
9859    #[doc = " @return A value"]
9860    pub fn cass_iterator_get_value(iterator: *const CassIterator) -> *const CassValue;
9861}
9862extern "C" {
9863    #[doc = " Gets the key at the map iterator's current position."]
9864    #[doc = ""]
9865    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9866    #[doc = " value returned by this method."]
9867    #[doc = ""]
9868    #[doc = " @public @memberof CassIterator"]
9869    #[doc = ""]
9870    #[doc = " @param[in] iterator"]
9871    #[doc = " @return A value"]
9872    pub fn cass_iterator_get_map_key(iterator: *const CassIterator) -> *const CassValue;
9873}
9874extern "C" {
9875    #[doc = " Gets the value at the map iterator's current position."]
9876    #[doc = ""]
9877    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9878    #[doc = " value returned by this method."]
9879    #[doc = ""]
9880    #[doc = " @public @memberof CassIterator"]
9881    #[doc = ""]
9882    #[doc = " @param[in] iterator"]
9883    #[doc = " @return A value"]
9884    pub fn cass_iterator_get_map_value(iterator: *const CassIterator) -> *const CassValue;
9885}
9886extern "C" {
9887    #[doc = " Gets the field name at the user type defined iterator's current position."]
9888    #[doc = ""]
9889    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9890    #[doc = " name returned by this method."]
9891    #[doc = ""]
9892    #[doc = " @cassandra{2.1+}"]
9893    #[doc = ""]
9894    #[doc = " @public @memberof CassIterator"]
9895    #[doc = ""]
9896    #[doc = " @param[in] iterator"]
9897    #[doc = " @param[out] name"]
9898    #[doc = " @param[out] name_length"]
9899    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
9900    pub fn cass_iterator_get_user_type_field_name(
9901        iterator: *const CassIterator,
9902        name: *mut *const ::std::os::raw::c_char,
9903        name_length: *mut usize,
9904    ) -> CassError;
9905}
9906extern "C" {
9907    #[doc = " Gets the field value at the user type defined iterator's current position."]
9908    #[doc = ""]
9909    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9910    #[doc = " value returned by this method."]
9911    #[doc = ""]
9912    #[doc = " @cassandra{2.1+}"]
9913    #[doc = ""]
9914    #[doc = " @public @memberof CassIterator"]
9915    #[doc = ""]
9916    #[doc = " @param[in] iterator"]
9917    #[doc = " @return A value"]
9918    pub fn cass_iterator_get_user_type_field_value(
9919        iterator: *const CassIterator,
9920    ) -> *const CassValue;
9921}
9922extern "C" {
9923    #[doc = " Gets the keyspace metadata entry at the iterator's current position."]
9924    #[doc = ""]
9925    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9926    #[doc = " value returned by this method."]
9927    #[doc = ""]
9928    #[doc = " @public @memberof CassIterator"]
9929    #[doc = ""]
9930    #[doc = " @param[in] iterator"]
9931    #[doc = " @return A keyspace metadata entry"]
9932    pub fn cass_iterator_get_keyspace_meta(
9933        iterator: *const CassIterator,
9934    ) -> *const CassKeyspaceMeta;
9935}
9936extern "C" {
9937    #[doc = " Gets the table metadata entry at the iterator's current position."]
9938    #[doc = ""]
9939    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9940    #[doc = " value returned by this method."]
9941    #[doc = ""]
9942    #[doc = " @public @memberof CassIterator"]
9943    #[doc = ""]
9944    #[doc = " @param[in] iterator"]
9945    #[doc = " @return A table metadata entry"]
9946    pub fn cass_iterator_get_table_meta(iterator: *const CassIterator) -> *const CassTableMeta;
9947}
9948extern "C" {
9949    #[doc = " Gets the materialized view metadata entry at the iterator's current position."]
9950    #[doc = ""]
9951    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9952    #[doc = " value returned by this method."]
9953    #[doc = ""]
9954    #[doc = " @cassandra{3.0+}"]
9955    #[doc = ""]
9956    #[doc = " @public @memberof CassIterator"]
9957    #[doc = ""]
9958    #[doc = " @param[in] iterator"]
9959    #[doc = " @return A materialized view metadata entry"]
9960    pub fn cass_iterator_get_materialized_view_meta(
9961        iterator: *const CassIterator,
9962    ) -> *const CassMaterializedViewMeta;
9963}
9964extern "C" {
9965    #[doc = " Gets the type metadata entry at the iterator's current position."]
9966    #[doc = ""]
9967    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9968    #[doc = " value returned by this method."]
9969    #[doc = ""]
9970    #[doc = " @cassandra{2.1+}"]
9971    #[doc = ""]
9972    #[doc = " @public @memberof CassIterator"]
9973    #[doc = ""]
9974    #[doc = " @param[in] iterator"]
9975    #[doc = " @return A type metadata entry"]
9976    pub fn cass_iterator_get_user_type(iterator: *const CassIterator) -> *const CassDataType;
9977}
9978extern "C" {
9979    #[doc = " Gets the function metadata entry at the iterator's current position."]
9980    #[doc = ""]
9981    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9982    #[doc = " value returned by this method."]
9983    #[doc = ""]
9984    #[doc = " @cassandra{2.2+}"]
9985    #[doc = ""]
9986    #[doc = " @public @memberof CassIterator"]
9987    #[doc = ""]
9988    #[doc = " @param[in] iterator"]
9989    #[doc = " @return A function metadata entry"]
9990    pub fn cass_iterator_get_function_meta(
9991        iterator: *const CassIterator,
9992    ) -> *const CassFunctionMeta;
9993}
9994extern "C" {
9995    #[doc = " Gets the aggregate metadata entry at the iterator's current position."]
9996    #[doc = ""]
9997    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
9998    #[doc = " value returned by this method."]
9999    #[doc = ""]
10000    #[doc = " @cassandra{2.2+}"]
10001    #[doc = ""]
10002    #[doc = " @public @memberof CassIterator"]
10003    #[doc = ""]
10004    #[doc = " @param[in] iterator"]
10005    #[doc = " @return A aggregate metadata entry"]
10006    pub fn cass_iterator_get_aggregate_meta(
10007        iterator: *const CassIterator,
10008    ) -> *const CassAggregateMeta;
10009}
10010extern "C" {
10011    #[doc = " Gets the column metadata entry at the iterator's current position."]
10012    #[doc = ""]
10013    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
10014    #[doc = " value returned by this method."]
10015    #[doc = ""]
10016    #[doc = " @public @memberof CassIterator"]
10017    #[doc = ""]
10018    #[doc = " @param[in] iterator"]
10019    #[doc = " @return A column metadata entry"]
10020    pub fn cass_iterator_get_column_meta(iterator: *const CassIterator) -> *const CassColumnMeta;
10021}
10022extern "C" {
10023    #[doc = " Gets the index metadata entry at the iterator's current position."]
10024    #[doc = ""]
10025    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
10026    #[doc = " value returned by this method."]
10027    #[doc = ""]
10028    #[doc = " @public @memberof CassIterator"]
10029    #[doc = ""]
10030    #[doc = " @param[in] iterator"]
10031    #[doc = " @return A index metadata entry"]
10032    pub fn cass_iterator_get_index_meta(iterator: *const CassIterator) -> *const CassIndexMeta;
10033}
10034extern "C" {
10035    #[doc = " Gets the metadata field name at the iterator's current position."]
10036    #[doc = ""]
10037    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
10038    #[doc = " value returned by this method."]
10039    #[doc = ""]
10040    #[doc = " @public @memberof CassIterator"]
10041    #[doc = ""]
10042    #[doc = " @param[in] iterator"]
10043    #[doc = " @param[out] name"]
10044    #[doc = " @param[out] name_length"]
10045    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10046    pub fn cass_iterator_get_meta_field_name(
10047        iterator: *const CassIterator,
10048        name: *mut *const ::std::os::raw::c_char,
10049        name_length: *mut usize,
10050    ) -> CassError;
10051}
10052extern "C" {
10053    #[doc = " Gets the metadata field value at the iterator's current position."]
10054    #[doc = ""]
10055    #[doc = " Calling cass_iterator_next() will invalidate the previous"]
10056    #[doc = " value returned by this method."]
10057    #[doc = ""]
10058    #[doc = " @public @memberof CassIterator"]
10059    #[doc = ""]
10060    #[doc = " @param[in] iterator"]
10061    #[doc = " @return A metadata field value"]
10062    pub fn cass_iterator_get_meta_field_value(iterator: *const CassIterator) -> *const CassValue;
10063}
10064extern "C" {
10065    #[doc = " Get the column value at index for the specified row."]
10066    #[doc = ""]
10067    #[doc = " @public @memberof CassRow"]
10068    #[doc = ""]
10069    #[doc = " @param[in] row"]
10070    #[doc = " @param[in] index"]
10071    #[doc = " @return The column value at the specified index. NULL is"]
10072    #[doc = " returned if the index is out of bounds."]
10073    pub fn cass_row_get_column(row: *const CassRow, index: usize) -> *const CassValue;
10074}
10075extern "C" {
10076    #[doc = " Get the column value by name for the specified row."]
10077    #[doc = ""]
10078    #[doc = " @public @memberof CassRow"]
10079    #[doc = ""]
10080    #[doc = " @param[in] row"]
10081    #[doc = " @param[in] name"]
10082    #[doc = " @return The column value for the specified name. NULL is"]
10083    #[doc = " returned if the column does not exist."]
10084    pub fn cass_row_get_column_by_name(
10085        row: *const CassRow,
10086        name: *const ::std::os::raw::c_char,
10087    ) -> *const CassValue;
10088}
10089extern "C" {
10090    #[doc = " Same as cass_row_get_column_by_name(), but with lengths for string"]
10091    #[doc = " parameters."]
10092    #[doc = ""]
10093    #[doc = " @public @memberof CassRow"]
10094    #[doc = ""]
10095    #[doc = " @param[in] row"]
10096    #[doc = " @param[in] name"]
10097    #[doc = " @param[in] name_length"]
10098    #[doc = " @return same as cass_row_get_column_by_name()"]
10099    #[doc = ""]
10100    #[doc = " @see cass_row_get_column_by_name()"]
10101    pub fn cass_row_get_column_by_name_n(
10102        row: *const CassRow,
10103        name: *const ::std::os::raw::c_char,
10104        name_length: usize,
10105    ) -> *const CassValue;
10106}
10107extern "C" {
10108    #[doc = " Gets the data type of a value."]
10109    #[doc = ""]
10110    #[doc = " @public @memberof CassValue"]
10111    #[doc = ""]
10112    #[doc = " @param[in] value"]
10113    #[doc = " @return Returns a reference to the data type of the value."]
10114    #[doc = " Do not free this reference as it is bound to the lifetime of the value."]
10115    pub fn cass_value_data_type(value: *const CassValue) -> *const CassDataType;
10116}
10117extern "C" {
10118    #[doc = " Gets an int8 for the specified value."]
10119    #[doc = ""]
10120    #[doc = " @cassandra{2.2+}"]
10121    #[doc = ""]
10122    #[doc = " @public @memberof CassValue"]
10123    #[doc = ""]
10124    #[doc = " @param[in] value"]
10125    #[doc = " @param[out] output"]
10126    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10127    pub fn cass_value_get_int8(value: *const CassValue, output: *mut cass_int8_t) -> CassError;
10128}
10129extern "C" {
10130    #[doc = " Gets an int16 for the specified value."]
10131    #[doc = ""]
10132    #[doc = " @cassandra{2.2+}"]
10133    #[doc = ""]
10134    #[doc = " @public @memberof CassValue"]
10135    #[doc = ""]
10136    #[doc = " @param[in] value"]
10137    #[doc = " @param[out] output"]
10138    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10139    pub fn cass_value_get_int16(value: *const CassValue, output: *mut cass_int16_t) -> CassError;
10140}
10141extern "C" {
10142    #[doc = " Gets an int32 for the specified value."]
10143    #[doc = ""]
10144    #[doc = " @public @memberof CassValue"]
10145    #[doc = ""]
10146    #[doc = " @param[in] value"]
10147    #[doc = " @param[out] output"]
10148    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10149    pub fn cass_value_get_int32(value: *const CassValue, output: *mut cass_int32_t) -> CassError;
10150}
10151extern "C" {
10152    #[doc = " Gets an uint32 for the specified value."]
10153    #[doc = ""]
10154    #[doc = " @cassandra{2.2+}"]
10155    #[doc = ""]
10156    #[doc = " @public @memberof CassValue"]
10157    #[doc = ""]
10158    #[doc = " @param[in] value"]
10159    #[doc = " @param[out] output"]
10160    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10161    pub fn cass_value_get_uint32(value: *const CassValue, output: *mut cass_uint32_t) -> CassError;
10162}
10163extern "C" {
10164    #[doc = " Gets an int64 for the specified value."]
10165    #[doc = ""]
10166    #[doc = " @public @memberof CassValue"]
10167    #[doc = ""]
10168    #[doc = " @param[in] value"]
10169    #[doc = " @param[out] output"]
10170    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10171    pub fn cass_value_get_int64(value: *const CassValue, output: *mut cass_int64_t) -> CassError;
10172}
10173extern "C" {
10174    #[doc = " Gets a float for the specified value."]
10175    #[doc = ""]
10176    #[doc = " @public @memberof CassValue"]
10177    #[doc = ""]
10178    #[doc = " @param[in] value"]
10179    #[doc = " @param[out] output"]
10180    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10181    pub fn cass_value_get_float(value: *const CassValue, output: *mut cass_float_t) -> CassError;
10182}
10183extern "C" {
10184    #[doc = " Gets a double for the specified value."]
10185    #[doc = ""]
10186    #[doc = " @public @memberof CassValue"]
10187    #[doc = ""]
10188    #[doc = " @param[in] value"]
10189    #[doc = " @param[out] output"]
10190    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10191    pub fn cass_value_get_double(value: *const CassValue, output: *mut cass_double_t) -> CassError;
10192}
10193extern "C" {
10194    #[doc = " Gets a bool for the specified value."]
10195    #[doc = ""]
10196    #[doc = " @public @memberof CassValue"]
10197    #[doc = ""]
10198    #[doc = " @param[in] value"]
10199    #[doc = " @param[out] output"]
10200    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10201    pub fn cass_value_get_bool(value: *const CassValue, output: *mut cass_bool_t) -> CassError;
10202}
10203extern "C" {
10204    #[doc = " Gets a UUID for the specified value."]
10205    #[doc = ""]
10206    #[doc = " @public @memberof CassValue"]
10207    #[doc = ""]
10208    #[doc = " @param[in] value"]
10209    #[doc = " @param[out] output"]
10210    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10211    pub fn cass_value_get_uuid(value: *const CassValue, output: *mut CassUuid) -> CassError;
10212}
10213extern "C" {
10214    #[doc = " Gets an INET for the specified value."]
10215    #[doc = ""]
10216    #[doc = " @public @memberof CassValue"]
10217    #[doc = ""]
10218    #[doc = " @param[in] value"]
10219    #[doc = " @param[out] output"]
10220    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10221    pub fn cass_value_get_inet(value: *const CassValue, output: *mut CassInet) -> CassError;
10222}
10223extern "C" {
10224    #[doc = " Gets a string for the specified value."]
10225    #[doc = ""]
10226    #[doc = " @public @memberof CassValue"]
10227    #[doc = ""]
10228    #[doc = " @param[in] value"]
10229    #[doc = " @param[out] output"]
10230    #[doc = " @param[out] output_size"]
10231    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10232    pub fn cass_value_get_string(
10233        value: *const CassValue,
10234        output: *mut *const ::std::os::raw::c_char,
10235        output_size: *mut usize,
10236    ) -> CassError;
10237}
10238extern "C" {
10239    #[doc = " Gets the bytes of the specified value."]
10240    #[doc = ""]
10241    #[doc = " @public @memberof CassValue"]
10242    #[doc = ""]
10243    #[doc = " @param[in] value"]
10244    #[doc = " @param[out] output"]
10245    #[doc = " @param[out] output_size"]
10246    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10247    pub fn cass_value_get_bytes(
10248        value: *const CassValue,
10249        output: *mut *const cass_byte_t,
10250        output_size: *mut usize,
10251    ) -> CassError;
10252}
10253extern "C" {
10254    #[doc = " Gets a decimal for the specified value."]
10255    #[doc = ""]
10256    #[doc = " @public @memberof CassValue"]
10257    #[doc = ""]
10258    #[doc = " @param[in] value"]
10259    #[doc = " @param[out] varint"]
10260    #[doc = " @param[out] varint_size"]
10261    #[doc = " @param[out] scale"]
10262    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10263    pub fn cass_value_get_decimal(
10264        value: *const CassValue,
10265        varint: *mut *const cass_byte_t,
10266        varint_size: *mut usize,
10267        scale: *mut cass_int32_t,
10268    ) -> CassError;
10269}
10270extern "C" {
10271    #[doc = " Gets a duration for the specified value."]
10272    #[doc = ""]
10273    #[doc = " @cassandra{3.10+}"]
10274    #[doc = ""]
10275    #[doc = " @public @memberof CassValue"]
10276    #[doc = ""]
10277    #[doc = " @param[in] value"]
10278    #[doc = " @param[out] months"]
10279    #[doc = " @param[out] days"]
10280    #[doc = " @param[out] nanos"]
10281    #[doc = " @return CASS_OK if successful, otherwise error occurred"]
10282    pub fn cass_value_get_duration(
10283        value: *const CassValue,
10284        months: *mut cass_int32_t,
10285        days: *mut cass_int32_t,
10286        nanos: *mut cass_int64_t,
10287    ) -> CassError;
10288}
10289extern "C" {
10290    #[doc = " Gets the type of the specified value."]
10291    #[doc = ""]
10292    #[doc = " @public @memberof CassValue"]
10293    #[doc = ""]
10294    #[doc = " @param[in] value"]
10295    #[doc = " @return The type of the specified value."]
10296    pub fn cass_value_type(value: *const CassValue) -> CassValueType;
10297}
10298extern "C" {
10299    #[doc = " Returns true if a specified value is null."]
10300    #[doc = ""]
10301    #[doc = " @public @memberof CassValue"]
10302    #[doc = ""]
10303    #[doc = " @param[in] value"]
10304    #[doc = " @return true if the value is null, otherwise false."]
10305    pub fn cass_value_is_null(value: *const CassValue) -> cass_bool_t;
10306}
10307extern "C" {
10308    #[doc = " Returns true if a specified value is a collection."]
10309    #[doc = ""]
10310    #[doc = " @public @memberof CassValue"]
10311    #[doc = ""]
10312    #[doc = " @param[in] value"]
10313    #[doc = " @return true if the value is a collection, otherwise false."]
10314    pub fn cass_value_is_collection(value: *const CassValue) -> cass_bool_t;
10315}
10316extern "C" {
10317    #[doc = " Returns true if a specified value is a duration."]
10318    #[doc = ""]
10319    #[doc = " @public @memberof CassValue"]
10320    #[doc = ""]
10321    #[doc = " @param[in] value"]
10322    #[doc = " @return true if the value is a duration, otherwise false."]
10323    pub fn cass_value_is_duration(value: *const CassValue) -> cass_bool_t;
10324}
10325extern "C" {
10326    #[doc = " Get the number of items in a collection. Works for all collection types."]
10327    #[doc = ""]
10328    #[doc = " @public @memberof CassValue"]
10329    #[doc = ""]
10330    #[doc = " @param[in] collection"]
10331    #[doc = " @return Count of items in a collection. 0 if not a collection."]
10332    pub fn cass_value_item_count(collection: *const CassValue) -> usize;
10333}
10334extern "C" {
10335    #[doc = " Get the primary sub-type for a collection. This returns the sub-type for a"]
10336    #[doc = " list or set and the key type for a map."]
10337    #[doc = ""]
10338    #[doc = " @public @memberof CassValue"]
10339    #[doc = ""]
10340    #[doc = " @param[in] collection"]
10341    #[doc = " @return The type of the primary sub-type. CASS_VALUE_TYPE_UNKNOWN"]
10342    #[doc = " returned if not a collection."]
10343    pub fn cass_value_primary_sub_type(collection: *const CassValue) -> CassValueType;
10344}
10345extern "C" {
10346    #[doc = " Get the secondary sub-type for a collection. This returns the value type for a"]
10347    #[doc = " map."]
10348    #[doc = ""]
10349    #[doc = " @public @memberof CassValue"]
10350    #[doc = ""]
10351    #[doc = " @param[in] collection"]
10352    #[doc = " @return The type of the primary sub-type. CASS_VALUE_TYPE_UNKNOWN"]
10353    #[doc = " returned if not a collection or not a map."]
10354    pub fn cass_value_secondary_sub_type(collection: *const CassValue) -> CassValueType;
10355}
10356extern "C" {
10357    #[doc = " Creates a new UUID generator."]
10358    #[doc = ""]
10359    #[doc = " <b>Note:</b> This object is thread-safe. It is best practice to create and reuse"]
10360    #[doc = " a single object per application."]
10361    #[doc = ""]
10362    #[doc = " <b>Note:</b> If unique node information (IP address) is unable to be determined"]
10363    #[doc = " then random node information will be generated."]
10364    #[doc = ""]
10365    #[doc = " @public @memberof CassUuidGen"]
10366    #[doc = ""]
10367    #[doc = " @return Returns a UUID generator that must be freed."]
10368    #[doc = ""]
10369    #[doc = " @see cass_uuid_gen_free()"]
10370    #[doc = " @see cass_uuid_gen_new_with_node()"]
10371    pub fn cass_uuid_gen_new() -> *mut CassUuidGen;
10372}
10373extern "C" {
10374    #[doc = " Creates a new UUID generator with custom node information."]
10375    #[doc = ""]
10376    #[doc = " <b>Note:</b> This object is thread-safe. It is best practice to create and reuse"]
10377    #[doc = " a single object per application."]
10378    #[doc = ""]
10379    #[doc = " @public @memberof CassUuidGen"]
10380    #[doc = ""]
10381    #[doc = " @return Returns a UUID generator that must be freed."]
10382    #[doc = ""]
10383    #[doc = " @see cass_uuid_gen_free()"]
10384    pub fn cass_uuid_gen_new_with_node(node: cass_uint64_t) -> *mut CassUuidGen;
10385}
10386extern "C" {
10387    #[doc = " Frees a UUID generator instance."]
10388    #[doc = ""]
10389    #[doc = " @public @memberof CassUuidGen"]
10390    #[doc = ""]
10391    #[doc = " @param[in] uuid_gen"]
10392    pub fn cass_uuid_gen_free(uuid_gen: *mut CassUuidGen);
10393}
10394extern "C" {
10395    #[doc = " Generates a V1 (time) UUID."]
10396    #[doc = ""]
10397    #[doc = " <b>Note:</b> This method is thread-safe"]
10398    #[doc = ""]
10399    #[doc = " @public @memberof CassUuidGen"]
10400    #[doc = ""]
10401    #[doc = " @param[in] uuid_gen"]
10402    #[doc = " @param[out] output A V1 UUID for the current time."]
10403    pub fn cass_uuid_gen_time(uuid_gen: *mut CassUuidGen, output: *mut CassUuid);
10404}
10405extern "C" {
10406    #[doc = " Generates a new V4 (random) UUID"]
10407    #[doc = ""]
10408    #[doc = " <b>Note:</b>: This method is thread-safe"]
10409    #[doc = ""]
10410    #[doc = " @public @memberof CassUuidGen"]
10411    #[doc = ""]
10412    #[doc = " @param[in] uuid_gen"]
10413    #[doc = " @param output A randomly generated V4 UUID."]
10414    pub fn cass_uuid_gen_random(uuid_gen: *mut CassUuidGen, output: *mut CassUuid);
10415}
10416extern "C" {
10417    #[doc = " Generates a V1 (time) UUID for the specified time."]
10418    #[doc = ""]
10419    #[doc = " <b>Note:</b>: This method is thread-safe"]
10420    #[doc = ""]
10421    #[doc = " @public @memberof CassUuidGen"]
10422    #[doc = ""]
10423    #[doc = " @param[in] uuid_gen"]
10424    #[doc = " @param[in] timestamp"]
10425    #[doc = " @param[out] output A V1 UUID for the specified time."]
10426    pub fn cass_uuid_gen_from_time(
10427        uuid_gen: *mut CassUuidGen,
10428        timestamp: cass_uint64_t,
10429        output: *mut CassUuid,
10430    );
10431}
10432extern "C" {
10433    #[doc = " Sets the UUID to the minimum V1 (time) value for the specified time."]
10434    #[doc = ""]
10435    #[doc = " @public @memberof CassUuid"]
10436    #[doc = ""]
10437    #[doc = " @param[in] time"]
10438    #[doc = " @param[out] output A minimum V1 UUID for the specified time."]
10439    pub fn cass_uuid_min_from_time(time: cass_uint64_t, output: *mut CassUuid);
10440}
10441extern "C" {
10442    #[doc = " Sets the UUID to the maximum V1 (time) value for the specified time."]
10443    #[doc = ""]
10444    #[doc = " @public @memberof CassUuid"]
10445    #[doc = ""]
10446    #[doc = " @param[in] time"]
10447    #[doc = " @param[out] output A maximum V1 UUID for the specified time."]
10448    pub fn cass_uuid_max_from_time(time: cass_uint64_t, output: *mut CassUuid);
10449}
10450extern "C" {
10451    #[doc = " Gets the timestamp for a V1 UUID"]
10452    #[doc = ""]
10453    #[doc = " @public @memberof CassUuid"]
10454    #[doc = ""]
10455    #[doc = " @param[in] uuid"]
10456    #[doc = " @return The timestamp in milliseconds since the Epoch"]
10457    #[doc = " (00:00:00 UTC on 1 January 1970). 0 returned if the UUID"]
10458    #[doc = " is not V1."]
10459    pub fn cass_uuid_timestamp(uuid: CassUuid) -> cass_uint64_t;
10460}
10461extern "C" {
10462    #[doc = " Gets the version for a UUID"]
10463    #[doc = ""]
10464    #[doc = " @public @memberof CassUuid"]
10465    #[doc = ""]
10466    #[doc = " @param[in] uuid"]
10467    #[doc = " @return The version of the UUID (1 or 4)"]
10468    pub fn cass_uuid_version(uuid: CassUuid) -> cass_uint8_t;
10469}
10470extern "C" {
10471    #[doc = " Returns a null-terminated string for the specified UUID."]
10472    #[doc = ""]
10473    #[doc = " @public @memberof CassUuid"]
10474    #[doc = ""]
10475    #[doc = " @param[in] uuid"]
10476    #[doc = " @param[out] output A null-terminated string of length CASS_UUID_STRING_LENGTH."]
10477    pub fn cass_uuid_string(uuid: CassUuid, output: *mut ::std::os::raw::c_char);
10478}
10479extern "C" {
10480    #[doc = " Returns a UUID for the specified string."]
10481    #[doc = ""]
10482    #[doc = " Example: \"550e8400-e29b-41d4-a716-446655440000\""]
10483    #[doc = ""]
10484    #[doc = " @public @memberof CassUuid"]
10485    #[doc = ""]
10486    #[doc = " @param[in] str"]
10487    #[doc = " @param[out] output"]
10488    pub fn cass_uuid_from_string(
10489        str_: *const ::std::os::raw::c_char,
10490        output: *mut CassUuid,
10491    ) -> CassError;
10492}
10493extern "C" {
10494    #[doc = " Same as cass_uuid_from_string(), but with lengths for string"]
10495    #[doc = " parameters."]
10496    #[doc = ""]
10497    #[doc = " @public @memberof CassUuid"]
10498    #[doc = ""]
10499    #[doc = " @param[in] str"]
10500    #[doc = " @param[in] str_length"]
10501    #[doc = " @param[out] output"]
10502    #[doc = " @return same as cass_uuid_from_string()"]
10503    #[doc = ""]
10504    #[doc = " @see cass_uuid_from_string()"]
10505    pub fn cass_uuid_from_string_n(
10506        str_: *const ::std::os::raw::c_char,
10507        str_length: usize,
10508        output: *mut CassUuid,
10509    ) -> CassError;
10510}
10511extern "C" {
10512    #[doc = " Creates a new server-side timestamp generator. This generator allows Cassandra"]
10513    #[doc = " to assign timestamps server-side."]
10514    #[doc = ""]
10515    #[doc = " <b>Note:</b> This is the default timestamp generator."]
10516    #[doc = ""]
10517    #[doc = " @cassandra{2.1+}"]
10518    #[doc = ""]
10519    #[doc = " @public @memberof CassTimestampGen"]
10520    #[doc = ""]
10521    #[doc = " @return Returns a timestamp generator that must be freed."]
10522    #[doc = ""]
10523    #[doc = " @see cass_timestamp_gen_free()"]
10524    pub fn cass_timestamp_gen_server_side_new() -> *mut CassTimestampGen;
10525}
10526extern "C" {
10527    #[doc = " Creates a new monotonically increasing timestamp generator with microsecond"]
10528    #[doc = " precision."]
10529    #[doc = ""]
10530    #[doc = " This implementation guarantees a monotonically increasing timestamp. If the"]
10531    #[doc = " timestamp generation rate exceeds one per microsecond or if the clock skews"]
10532    #[doc = " into the past the generator will artificially increment the previously"]
10533    #[doc = " generated timestamp until the request rate decreases or the clock skew"]
10534    #[doc = " is corrected."]
10535    #[doc = ""]
10536    #[doc = " By default, this timestamp generator will generate warnings if more than"]
10537    #[doc = " 1 second of clock skew is detected. It will print an error every second until"]
10538    #[doc = " the clock skew is resolved. These settings can be changed by using"]
10539    #[doc = " `cass_timestamp_gen_monotonic_new_with_settings()` to create the generator"]
10540    #[doc = " instance."]
10541    #[doc = ""]
10542    #[doc = " <b>Note:</b> This generator is thread-safe and can be shared by multiple"]
10543    #[doc = " sessions."]
10544    #[doc = ""]
10545    #[doc = " @cassandra{2.1+}"]
10546    #[doc = ""]
10547    #[doc = " @public @memberof CassTimestampGen"]
10548    #[doc = ""]
10549    #[doc = " @return Returns a timestamp generator that must be freed."]
10550    #[doc = ""]
10551    #[doc = " @see cass_timestamp_gen_monotonic_new_with_settings();"]
10552    #[doc = " @see cass_timestamp_gen_free()"]
10553    pub fn cass_timestamp_gen_monotonic_new() -> *mut CassTimestampGen;
10554}
10555extern "C" {
10556    #[doc = " Same as cass_timestamp_gen_monotonic_new(), but with settings for controlling"]
10557    #[doc = " warnings about clock skew."]
10558    #[doc = ""]
10559    #[doc = " @param warning_threshold_us The amount of clock skew, in microseconds, that"]
10560    #[doc = " must be detected before a warning is triggered. A threshold less than 0 can"]
10561    #[doc = " be used to disable warnings."]
10562    #[doc = " @param warning_interval_ms The amount of time, in milliseconds, to wait before"]
10563    #[doc = " warning again about clock skew. An interval value less than or equal to 0 allows"]
10564    #[doc = " the warning to be triggered every millisecond."]
10565    #[doc = " @return Returns a timestamp generator that must be freed."]
10566    pub fn cass_timestamp_gen_monotonic_new_with_settings(
10567        warning_threshold_us: cass_int64_t,
10568        warning_interval_ms: cass_int64_t,
10569    ) -> *mut CassTimestampGen;
10570}
10571extern "C" {
10572    #[doc = " Frees a timestamp generator instance."]
10573    #[doc = ""]
10574    #[doc = " @cassandra{2.1+}"]
10575    #[doc = ""]
10576    #[doc = " @public @memberof CassTimestampGen"]
10577    #[doc = ""]
10578    #[doc = " @param[in] timestamp_gen"]
10579    pub fn cass_timestamp_gen_free(timestamp_gen: *mut CassTimestampGen);
10580}
10581extern "C" {
10582    #[doc = " Creates a new default retry policy."]
10583    #[doc = ""]
10584    #[doc = " This policy retries queries in the following cases:"]
10585    #[doc = " <ul>"]
10586    #[doc = "   <li>On a read timeout, if enough replicas replied but data was not received.</li>"]
10587    #[doc = "   <li>On a write timeout, if a timeout occurs while writing the distributed batch log</li>"]
10588    #[doc = "   <li>On unavailable, it will move to the next host</li>"]
10589    #[doc = " </ul>"]
10590    #[doc = ""]
10591    #[doc = " In all other cases the error will be returned."]
10592    #[doc = ""]
10593    #[doc = " This policy always uses the query's original consistency level."]
10594    #[doc = ""]
10595    #[doc = " @public @memberof CassRetryPolicy"]
10596    #[doc = ""]
10597    #[doc = " @return Returns a retry policy that must be freed."]
10598    #[doc = ""]
10599    #[doc = " @see cass_retry_policy_free()"]
10600    pub fn cass_retry_policy_default_new() -> *mut CassRetryPolicy;
10601}
10602extern "C" {
10603    pub fn cass_retry_policy_downgrading_consistency_new() -> *mut CassRetryPolicy;
10604}
10605extern "C" {
10606    #[doc = " Creates a new fallthrough retry policy."]
10607    #[doc = ""]
10608    #[doc = " This policy never retries or ignores a server-side failure. The error"]
10609    #[doc = " is always returned."]
10610    #[doc = ""]
10611    #[doc = " @public @memberof CassRetryPolicy"]
10612    #[doc = ""]
10613    #[doc = " @return Returns a retry policy that must be freed."]
10614    #[doc = ""]
10615    #[doc = " @see cass_retry_policy_free()"]
10616    pub fn cass_retry_policy_fallthrough_new() -> *mut CassRetryPolicy;
10617}
10618extern "C" {
10619    #[doc = " Creates a new logging retry policy."]
10620    #[doc = ""]
10621    #[doc = " This policy logs the retry decision of its child policy. Logging is"]
10622    #[doc = " done using CASS_LOG_INFO."]
10623    #[doc = ""]
10624    #[doc = " @public @memberof CassRetryPolicy"]
10625    #[doc = ""]
10626    #[doc = " @param[in] child_retry_policy"]
10627    #[doc = " @return Returns a retry policy that must be freed. NULL is returned if"]
10628    #[doc = " the child_policy is a logging retry policy."]
10629    #[doc = ""]
10630    #[doc = " @see cass_retry_policy_free()"]
10631    pub fn cass_retry_policy_logging_new(
10632        child_retry_policy: *mut CassRetryPolicy,
10633    ) -> *mut CassRetryPolicy;
10634}
10635extern "C" {
10636    #[doc = " Frees a retry policy instance."]
10637    #[doc = ""]
10638    #[doc = " @public @memberof CassRetryPolicy"]
10639    #[doc = ""]
10640    #[doc = " @param[in] policy"]
10641    pub fn cass_retry_policy_free(policy: *mut CassRetryPolicy);
10642}
10643extern "C" {
10644    #[doc = " Creates a new custom payload."]
10645    #[doc = ""]
10646    #[doc = " @public @memberof CassCustomPayload"]
10647    #[doc = ""]
10648    #[doc = " @cassandra{2.2+}"]
10649    #[doc = ""]
10650    #[doc = " @return Returns a custom payload that must be freed."]
10651    #[doc = ""]
10652    #[doc = " @see cass_custom_payload_free()"]
10653    pub fn cass_custom_payload_new() -> *mut CassCustomPayload;
10654}
10655extern "C" {
10656    #[doc = " Frees a custom payload instance."]
10657    #[doc = ""]
10658    #[doc = " @cassandra{2.2+}"]
10659    #[doc = ""]
10660    #[doc = " @public @memberof CassCustomPayload"]
10661    #[doc = ""]
10662    #[doc = " @param[in] payload"]
10663    pub fn cass_custom_payload_free(payload: *mut CassCustomPayload);
10664}
10665extern "C" {
10666    #[doc = " Sets an item to the custom payload."]
10667    #[doc = ""]
10668    #[doc = " @cassandra{2.2+}"]
10669    #[doc = ""]
10670    #[doc = " @public @memberof CassCustomPayload"]
10671    #[doc = ""]
10672    #[doc = " @param[in] payload"]
10673    #[doc = " @param[in] name"]
10674    #[doc = " @param[in] value"]
10675    #[doc = " @param[in] value_size"]
10676    pub fn cass_custom_payload_set(
10677        payload: *mut CassCustomPayload,
10678        name: *const ::std::os::raw::c_char,
10679        value: *const cass_byte_t,
10680        value_size: usize,
10681    );
10682}
10683extern "C" {
10684    #[doc = " Same as cass_custom_payload_set(), but with lengths for string"]
10685    #[doc = " parameters."]
10686    #[doc = ""]
10687    #[doc = " @cassandra{2.2+}"]
10688    #[doc = ""]
10689    #[doc = " @public @memberof CassCustomPayload"]
10690    #[doc = ""]
10691    #[doc = " @param[in] payload"]
10692    #[doc = " @param[in] name"]
10693    #[doc = " @param[in] name_length"]
10694    #[doc = " @param[in] value"]
10695    #[doc = " @param[in] value_size"]
10696    pub fn cass_custom_payload_set_n(
10697        payload: *mut CassCustomPayload,
10698        name: *const ::std::os::raw::c_char,
10699        name_length: usize,
10700        value: *const cass_byte_t,
10701        value_size: usize,
10702    );
10703}
10704extern "C" {
10705    #[doc = " Removes an item from the custom payload."]
10706    #[doc = ""]
10707    #[doc = " @cassandra{2.2+}"]
10708    #[doc = ""]
10709    #[doc = " @public @memberof CassCustomPayload"]
10710    #[doc = ""]
10711    #[doc = " @param[in] payload"]
10712    #[doc = " @param[in] name"]
10713    pub fn cass_custom_payload_remove(
10714        payload: *mut CassCustomPayload,
10715        name: *const ::std::os::raw::c_char,
10716    );
10717}
10718extern "C" {
10719    #[doc = " Same as cass_custom_payload_set(), but with lengths for string"]
10720    #[doc = " parameters."]
10721    #[doc = ""]
10722    #[doc = " @cassandra{2.2+}"]
10723    #[doc = ""]
10724    #[doc = " @public @memberof CassCustomPayload"]
10725    #[doc = ""]
10726    #[doc = " @param[in] payload"]
10727    #[doc = " @param[in] name"]
10728    #[doc = " @param[in] name_length"]
10729    pub fn cass_custom_payload_remove_n(
10730        payload: *mut CassCustomPayload,
10731        name: *const ::std::os::raw::c_char,
10732        name_length: usize,
10733    );
10734}
10735extern "C" {
10736    #[doc = " Gets the string for a consistency."]
10737    #[doc = ""]
10738    #[doc = " @param[in] consistency"]
10739    #[doc = " @return A null-terminated string for the consistency."]
10740    #[doc = " Example: \"ALL\", \"ONE\", \"QUORUM\", etc."]
10741    pub fn cass_consistency_string(consistency: CassConsistency) -> *const ::std::os::raw::c_char;
10742}
10743extern "C" {
10744    #[doc = " Write type"]
10745    #[doc = ""]
10746    #[doc = " Gets the string for a write type."]
10747    #[doc = ""]
10748    #[doc = " @param[in] write_type"]
10749    #[doc = " @return A null-terminated string for the write type."]
10750    #[doc = " Example: \"BATCH\", \"SIMPLE\", \"COUNTER\", etc."]
10751    pub fn cass_write_type_string(write_type: CassWriteType) -> *const ::std::os::raw::c_char;
10752}
10753extern "C" {
10754    #[doc = " Gets a description for an error code."]
10755    #[doc = ""]
10756    #[doc = " @param[in] error"]
10757    #[doc = " @return A null-terminated string describing the error."]
10758    pub fn cass_error_desc(error: CassError) -> *const ::std::os::raw::c_char;
10759}
10760extern "C" {
10761    pub fn cass_log_cleanup();
10762}
10763extern "C" {
10764    #[doc = " Sets the log level."]
10765    #[doc = ""]
10766    #[doc = " <b>Note:</b> This needs to be done before any call that might log, such as"]
10767    #[doc = " any of the cass_cluster_*() or cass_ssl_*() functions."]
10768    #[doc = ""]
10769    #[doc = " <b>Default:</b> CASS_LOG_WARN"]
10770    #[doc = ""]
10771    #[doc = " @param[in] log_level"]
10772    pub fn cass_log_set_level(log_level: CassLogLevel);
10773}
10774extern "C" {
10775    #[doc = " Sets a callback for handling logging events."]
10776    #[doc = ""]
10777    #[doc = " <b>Note:</b> This needs to be done before any call that might log, such as"]
10778    #[doc = " any of the cass_cluster_*() or cass_ssl_*() functions."]
10779    #[doc = ""]
10780    #[doc = " <b>Default:</b> An internal callback that prints to stderr"]
10781    #[doc = ""]
10782    #[doc = " @param[in] data An opaque data object passed to the callback."]
10783    #[doc = " @param[in] callback A callback that handles logging events. This is"]
10784    #[doc = " called in a separate thread so access to shared data must be synchronized."]
10785    pub fn cass_log_set_callback(callback: CassLogCallback, data: *mut ::std::os::raw::c_void);
10786}
10787extern "C" {
10788    pub fn cass_log_set_queue_size(queue_size: usize);
10789}
10790extern "C" {
10791    #[doc = " Gets the string for a log level."]
10792    #[doc = ""]
10793    #[doc = " @param[in] log_level"]
10794    #[doc = " @return A null-terminated string for the log level."]
10795    #[doc = " Example: \"ERROR\", \"WARN\", \"INFO\", etc."]
10796    pub fn cass_log_level_string(log_level: CassLogLevel) -> *const ::std::os::raw::c_char;
10797}
10798extern "C" {
10799    #[doc = " Constructs an inet v4 object."]
10800    #[doc = ""]
10801    #[doc = " @public @memberof CassInet"]
10802    #[doc = ""]
10803    #[doc = " @param[in] address An address of size CASS_INET_V4_LENGTH"]
10804    #[doc = " @return An inet object."]
10805    pub fn cass_inet_init_v4(address: *const cass_uint8_t) -> CassInet;
10806}
10807extern "C" {
10808    #[doc = " Constructs an inet v6 object."]
10809    #[doc = ""]
10810    #[doc = " @public @memberof CassInet"]
10811    #[doc = ""]
10812    #[doc = " @param[in] address An address of size CASS_INET_V6_LENGTH"]
10813    #[doc = " @return An inet object."]
10814    pub fn cass_inet_init_v6(address: *const cass_uint8_t) -> CassInet;
10815}
10816extern "C" {
10817    #[doc = " Returns a null-terminated string for the specified inet."]
10818    #[doc = ""]
10819    #[doc = " @public @memberof CassInet"]
10820    #[doc = ""]
10821    #[doc = " @param[in] inet"]
10822    #[doc = " @param[out] output A null-terminated string of length CASS_INET_STRING_LENGTH."]
10823    pub fn cass_inet_string(inet: CassInet, output: *mut ::std::os::raw::c_char);
10824}
10825extern "C" {
10826    #[doc = " Returns an inet for the specified string."]
10827    #[doc = ""]
10828    #[doc = " Examples: \"127.0.0.1\" or \"::1\""]
10829    #[doc = ""]
10830    #[doc = " @public @memberof CassInet"]
10831    #[doc = ""]
10832    #[doc = " @param[in] str"]
10833    #[doc = " @param[out] output"]
10834    pub fn cass_inet_from_string(
10835        str_: *const ::std::os::raw::c_char,
10836        output: *mut CassInet,
10837    ) -> CassError;
10838}
10839extern "C" {
10840    #[doc = " Same as cass_inet_from_string(), but with lengths for string"]
10841    #[doc = " parameters."]
10842    #[doc = ""]
10843    #[doc = " @public @memberof CassInet"]
10844    #[doc = ""]
10845    #[doc = " @param[in] str"]
10846    #[doc = " @param[in] str_length"]
10847    #[doc = " @param[out] output"]
10848    #[doc = " @return same as cass_inet_from_string()"]
10849    #[doc = ""]
10850    #[doc = " @see cass_inet_from_string()"]
10851    pub fn cass_inet_from_string_n(
10852        str_: *const ::std::os::raw::c_char,
10853        str_length: usize,
10854        output: *mut CassInet,
10855    ) -> CassError;
10856}
10857extern "C" {
10858    #[doc = " Converts a unix timestamp (in seconds) to the Cassandra \"date\" type. The \"date\" type"]
10859    #[doc = " represents the number of days since the Epoch (1970-01-01) with the Epoch centered at"]
10860    #[doc = " the value 2^31."]
10861    #[doc = ""]
10862    #[doc = " @cassandra{2.2+}"]
10863    #[doc = ""]
10864    #[doc = " @param[in] epoch_secs"]
10865    #[doc = " @return the number of days since the date -5877641-06-23"]
10866    pub fn cass_date_from_epoch(epoch_secs: cass_int64_t) -> cass_uint32_t;
10867}
10868extern "C" {
10869    #[doc = " Converts a unix timestamp (in seconds) to the Cassandra \"time\" type. The \"time\" type"]
10870    #[doc = " represents the number of nanoseconds since midnight (range 0 to 86399999999999)."]
10871    #[doc = ""]
10872    #[doc = " @cassandra{2.2+}"]
10873    #[doc = ""]
10874    #[doc = " @param[in] epoch_secs"]
10875    #[doc = " @return nanoseconds since midnight"]
10876    pub fn cass_time_from_epoch(epoch_secs: cass_int64_t) -> cass_int64_t;
10877}
10878extern "C" {
10879    #[doc = " Combines the Cassandra \"date\" and \"time\" types to Epoch time in seconds."]
10880    #[doc = ""]
10881    #[doc = " @cassandra{2.2+}"]
10882    #[doc = ""]
10883    #[doc = " @param[in] date"]
10884    #[doc = " @param[in] time"]
10885    #[doc = " @return Epoch time in seconds. Negative times are possible if the date"]
10886    #[doc = " occurs before the Epoch (1970-1-1)."]
10887    pub fn cass_date_time_to_epoch(date: cass_uint32_t, time: cass_int64_t) -> cass_int64_t;
10888}
10889extern "C" {
10890    #[doc = " Set custom allocation functions."]
10891    #[doc = ""]
10892    #[doc = " <b>Note:</b> This is not thread-safe. The allocation functions must be set"]
10893    #[doc = " before any other library function is called."]
10894    #[doc = ""]
10895    #[doc = " <b>Default:</b> The C runtime's malloc(), realloc() and free()"]
10896    #[doc = ""]
10897    #[doc = " <b>Important:</b> The C runtime's malloc(), realloc() and free() will be"]
10898    #[doc = " used by libuv when using versions 1.5 or earlier."]
10899    #[doc = ""]
10900    #[doc = " @param[in] malloc_func"]
10901    #[doc = " @param[in] realloc_func"]
10902    #[doc = " @param[in] free_func"]
10903    pub fn cass_alloc_set_functions(
10904        malloc_func: CassMallocFunction,
10905        realloc_func: CassReallocFunction,
10906        free_func: CassFreeFunction,
10907    );
10908}