Skip to main content

rdkafka_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.73.2 */
2
3use libc::{addrinfo, c_char, c_int, c_void, sockaddr, FILE};
4use num_enum::TryFromPrimitive;
5
6pub const RD_KAFKA_VERSION: u32 = 34603263;
7pub const RD_KAFKA_DEBUG_CONTEXTS : & [u8 ; 138] = b"all,generic,broker,topic,metadata,feature,queue,msg,protocol,cgrp,security,fetch,interceptor,plugin,consumer,admin,eos,mock,assignor,conf\0" ;
8pub const RD_KAFKA_DESTROY_F_NO_CONSUMER_CLOSE: u32 = 8;
9pub const RD_KAFKA_OFFSET_BEGINNING: i32 = -2;
10pub const RD_KAFKA_OFFSET_END: i32 = -1;
11pub const RD_KAFKA_OFFSET_STORED: i32 = -1000;
12pub const RD_KAFKA_OFFSET_INVALID: i32 = -1001;
13pub const RD_KAFKA_OFFSET_TAIL_BASE: i32 = -2000;
14pub const RD_KAFKA_MSG_F_FREE: u32 = 1;
15pub const RD_KAFKA_MSG_F_COPY: u32 = 2;
16pub const RD_KAFKA_MSG_F_BLOCK: u32 = 4;
17pub const RD_KAFKA_MSG_F_PARTITION: u32 = 8;
18pub const RD_KAFKA_PURGE_F_QUEUE: u32 = 1;
19pub const RD_KAFKA_PURGE_F_INFLIGHT: u32 = 2;
20pub const RD_KAFKA_PURGE_F_NON_BLOCKING: u32 = 4;
21pub const RD_KAFKA_EVENT_NONE: u32 = 0;
22pub const RD_KAFKA_EVENT_DR: u32 = 1;
23pub const RD_KAFKA_EVENT_FETCH: u32 = 2;
24pub const RD_KAFKA_EVENT_LOG: u32 = 4;
25pub const RD_KAFKA_EVENT_ERROR: u32 = 8;
26pub const RD_KAFKA_EVENT_REBALANCE: u32 = 16;
27pub const RD_KAFKA_EVENT_OFFSET_COMMIT: u32 = 32;
28pub const RD_KAFKA_EVENT_STATS: u32 = 64;
29pub const RD_KAFKA_EVENT_CREATETOPICS_RESULT: u32 = 100;
30pub const RD_KAFKA_EVENT_DELETETOPICS_RESULT: u32 = 101;
31pub const RD_KAFKA_EVENT_CREATEPARTITIONS_RESULT: u32 = 102;
32pub const RD_KAFKA_EVENT_ALTERCONFIGS_RESULT: u32 = 103;
33pub const RD_KAFKA_EVENT_DESCRIBECONFIGS_RESULT: u32 = 104;
34pub const RD_KAFKA_EVENT_DELETERECORDS_RESULT: u32 = 105;
35pub const RD_KAFKA_EVENT_DELETEGROUPS_RESULT: u32 = 106;
36pub const RD_KAFKA_EVENT_DELETECONSUMERGROUPOFFSETS_RESULT: u32 = 107;
37pub const RD_KAFKA_EVENT_OAUTHBEARER_TOKEN_REFRESH: u32 = 256;
38pub const RD_KAFKA_EVENT_BACKGROUND: u32 = 512;
39pub const RD_KAFKA_EVENT_CREATEACLS_RESULT: u32 = 1024;
40pub const RD_KAFKA_EVENT_DESCRIBEACLS_RESULT: u32 = 2048;
41pub const RD_KAFKA_EVENT_DELETEACLS_RESULT: u32 = 4096;
42pub const RD_KAFKA_EVENT_LISTCONSUMERGROUPS_RESULT: u32 = 8192;
43pub const RD_KAFKA_EVENT_DESCRIBECONSUMERGROUPS_RESULT: u32 = 16384;
44pub const RD_KAFKA_EVENT_LISTCONSUMERGROUPOFFSETS_RESULT: u32 = 32768;
45pub const RD_KAFKA_EVENT_ALTERCONSUMERGROUPOFFSETS_RESULT: u32 = 65536;
46pub const RD_KAFKA_EVENT_INCREMENTALALTERCONFIGS_RESULT: u32 = 131072;
47pub const RD_KAFKA_EVENT_DESCRIBEUSERSCRAMCREDENTIALS_RESULT: u32 = 262144;
48pub const RD_KAFKA_EVENT_ALTERUSERSCRAMCREDENTIALS_RESULT: u32 = 524288;
49pub const RD_KAFKA_EVENT_DESCRIBETOPICS_RESULT: u32 = 1048576;
50pub const RD_KAFKA_EVENT_DESCRIBECLUSTER_RESULT: u32 = 2097152;
51pub const RD_KAFKA_EVENT_LISTOFFSETS_RESULT: u32 = 4194304;
52pub const RD_KAFKA_EVENT_ELECTLEADERS_RESULT: u32 = 8388608;
53unsafe extern "C" {
54    pub fn rd_kafka_version() -> c_int;
55}
56unsafe extern "C" {
57    pub fn rd_kafka_version_str() -> *const c_char;
58}
59#[repr(u32)]
60#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
61pub enum rd_kafka_type_t {
62    RD_KAFKA_PRODUCER = 0,
63    RD_KAFKA_CONSUMER = 1,
64}
65#[repr(u32)]
66#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
67pub enum rd_kafka_timestamp_type_t {
68    RD_KAFKA_TIMESTAMP_NOT_AVAILABLE = 0,
69    RD_KAFKA_TIMESTAMP_CREATE_TIME = 1,
70    RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME = 2,
71}
72unsafe extern "C" {
73    pub fn rd_kafka_get_debug_contexts() -> *const c_char;
74}
75#[repr(C)]
76#[derive(Debug)]
77pub struct rd_kafka_s {
78    _unused: [u8; 0],
79}
80pub type rd_kafka_t = rd_kafka_s;
81#[repr(C)]
82#[derive(Debug)]
83pub struct rd_kafka_topic_s {
84    _unused: [u8; 0],
85}
86pub type rd_kafka_topic_t = rd_kafka_topic_s;
87#[repr(C)]
88#[derive(Debug)]
89pub struct rd_kafka_conf_s {
90    _unused: [u8; 0],
91}
92pub type rd_kafka_conf_t = rd_kafka_conf_s;
93#[repr(C)]
94#[derive(Debug)]
95pub struct rd_kafka_topic_conf_s {
96    _unused: [u8; 0],
97}
98pub type rd_kafka_topic_conf_t = rd_kafka_topic_conf_s;
99#[repr(C)]
100#[derive(Debug)]
101pub struct rd_kafka_queue_s {
102    _unused: [u8; 0],
103}
104pub type rd_kafka_queue_t = rd_kafka_queue_s;
105#[repr(C)]
106#[derive(Debug)]
107pub struct rd_kafka_op_s {
108    _unused: [u8; 0],
109}
110pub type rd_kafka_event_t = rd_kafka_op_s;
111#[repr(C)]
112#[derive(Debug)]
113pub struct rd_kafka_topic_result_s {
114    _unused: [u8; 0],
115}
116pub type rd_kafka_topic_result_t = rd_kafka_topic_result_s;
117#[repr(C)]
118#[derive(Debug)]
119pub struct rd_kafka_consumer_group_metadata_s {
120    _unused: [u8; 0],
121}
122pub type rd_kafka_consumer_group_metadata_t = rd_kafka_consumer_group_metadata_s;
123#[repr(C)]
124#[derive(Debug)]
125pub struct rd_kafka_error_s {
126    _unused: [u8; 0],
127}
128pub type rd_kafka_error_t = rd_kafka_error_s;
129#[repr(C)]
130#[derive(Debug)]
131pub struct rd_kafka_headers_s {
132    _unused: [u8; 0],
133}
134pub type rd_kafka_headers_t = rd_kafka_headers_s;
135#[repr(C)]
136#[derive(Debug)]
137pub struct rd_kafka_group_result_s {
138    _unused: [u8; 0],
139}
140pub type rd_kafka_group_result_t = rd_kafka_group_result_s;
141#[repr(C)]
142#[derive(Debug)]
143pub struct rd_kafka_acl_result_s {
144    _unused: [u8; 0],
145}
146pub type rd_kafka_acl_result_t = rd_kafka_acl_result_s;
147#[repr(C)]
148#[derive(Debug)]
149pub struct rd_kafka_Uuid_s {
150    _unused: [u8; 0],
151}
152pub type rd_kafka_Uuid_t = rd_kafka_Uuid_s;
153#[repr(C)]
154#[derive(Debug)]
155pub struct rd_kafka_topic_partition_result_s {
156    _unused: [u8; 0],
157}
158pub type rd_kafka_topic_partition_result_t = rd_kafka_topic_partition_result_s;
159#[repr(C)]
160#[derive(Debug)]
161pub struct rd_kafka_share_s {
162    _unused: [u8; 0],
163}
164pub type rd_kafka_share_t = rd_kafka_share_s;
165#[repr(i32)]
166#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, TryFromPrimitive)]
167pub enum rd_kafka_resp_err_t {
168    RD_KAFKA_RESP_ERR__BEGIN = -200,
169    RD_KAFKA_RESP_ERR__BAD_MSG = -199,
170    RD_KAFKA_RESP_ERR__BAD_COMPRESSION = -198,
171    RD_KAFKA_RESP_ERR__DESTROY = -197,
172    RD_KAFKA_RESP_ERR__FAIL = -196,
173    RD_KAFKA_RESP_ERR__TRANSPORT = -195,
174    RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE = -194,
175    RD_KAFKA_RESP_ERR__RESOLVE = -193,
176    RD_KAFKA_RESP_ERR__MSG_TIMED_OUT = -192,
177    RD_KAFKA_RESP_ERR__PARTITION_EOF = -191,
178    RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION = -190,
179    RD_KAFKA_RESP_ERR__FS = -189,
180    RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC = -188,
181    RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN = -187,
182    RD_KAFKA_RESP_ERR__INVALID_ARG = -186,
183    RD_KAFKA_RESP_ERR__TIMED_OUT = -185,
184    RD_KAFKA_RESP_ERR__QUEUE_FULL = -184,
185    RD_KAFKA_RESP_ERR__ISR_INSUFF = -183,
186    RD_KAFKA_RESP_ERR__NODE_UPDATE = -182,
187    RD_KAFKA_RESP_ERR__SSL = -181,
188    RD_KAFKA_RESP_ERR__WAIT_COORD = -180,
189    RD_KAFKA_RESP_ERR__UNKNOWN_GROUP = -179,
190    RD_KAFKA_RESP_ERR__IN_PROGRESS = -178,
191    RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS = -177,
192    RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION = -176,
193    RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS = -175,
194    RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS = -174,
195    RD_KAFKA_RESP_ERR__CONFLICT = -173,
196    RD_KAFKA_RESP_ERR__STATE = -172,
197    RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL = -171,
198    RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED = -170,
199    RD_KAFKA_RESP_ERR__AUTHENTICATION = -169,
200    RD_KAFKA_RESP_ERR__NO_OFFSET = -168,
201    RD_KAFKA_RESP_ERR__OUTDATED = -167,
202    RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE = -166,
203    RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE = -165,
204    RD_KAFKA_RESP_ERR__WAIT_CACHE = -164,
205    RD_KAFKA_RESP_ERR__INTR = -163,
206    RD_KAFKA_RESP_ERR__KEY_SERIALIZATION = -162,
207    RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION = -161,
208    RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION = -160,
209    RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION = -159,
210    RD_KAFKA_RESP_ERR__PARTIAL = -158,
211    RD_KAFKA_RESP_ERR__READ_ONLY = -157,
212    RD_KAFKA_RESP_ERR__NOENT = -156,
213    RD_KAFKA_RESP_ERR__UNDERFLOW = -155,
214    RD_KAFKA_RESP_ERR__INVALID_TYPE = -154,
215    RD_KAFKA_RESP_ERR__RETRY = -153,
216    RD_KAFKA_RESP_ERR__PURGE_QUEUE = -152,
217    RD_KAFKA_RESP_ERR__PURGE_INFLIGHT = -151,
218    RD_KAFKA_RESP_ERR__FATAL = -150,
219    RD_KAFKA_RESP_ERR__INCONSISTENT = -149,
220    RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE = -148,
221    RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED = -147,
222    RD_KAFKA_RESP_ERR__UNKNOWN_BROKER = -146,
223    RD_KAFKA_RESP_ERR__NOT_CONFIGURED = -145,
224    RD_KAFKA_RESP_ERR__FENCED = -144,
225    RD_KAFKA_RESP_ERR__APPLICATION = -143,
226    RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST = -142,
227    RD_KAFKA_RESP_ERR__NOOP = -141,
228    RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = -140,
229    RD_KAFKA_RESP_ERR__LOG_TRUNCATION = -139,
230    RD_KAFKA_RESP_ERR__INVALID_DIFFERENT_RECORD = -138,
231    RD_KAFKA_RESP_ERR__DESTROY_BROKER = -137,
232    RD_KAFKA_RESP_ERR__END = -100,
233    RD_KAFKA_RESP_ERR_UNKNOWN = -1,
234    RD_KAFKA_RESP_ERR_NO_ERROR = 0,
235    RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE = 1,
236    RD_KAFKA_RESP_ERR_INVALID_MSG = 2,
237    RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART = 3,
238    RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE = 4,
239    RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE = 5,
240    RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION = 6,
241    RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT = 7,
242    RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE = 8,
243    RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE = 9,
244    RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE = 10,
245    RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH = 11,
246    RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE = 12,
247    RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION = 13,
248    RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS = 14,
249    RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE = 15,
250    RD_KAFKA_RESP_ERR_NOT_COORDINATOR = 16,
251    RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION = 17,
252    RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE = 18,
253    RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS = 19,
254    RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND = 20,
255    RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS = 21,
256    RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION = 22,
257    RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL = 23,
258    RD_KAFKA_RESP_ERR_INVALID_GROUP_ID = 24,
259    RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID = 25,
260    RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT = 26,
261    RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS = 27,
262    RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE = 28,
263    RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED = 29,
264    RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED = 30,
265    RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED = 31,
266    RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP = 32,
267    RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM = 33,
268    RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE = 34,
269    RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION = 35,
270    RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS = 36,
271    RD_KAFKA_RESP_ERR_INVALID_PARTITIONS = 37,
272    RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR = 38,
273    RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT = 39,
274    RD_KAFKA_RESP_ERR_INVALID_CONFIG = 40,
275    RD_KAFKA_RESP_ERR_NOT_CONTROLLER = 41,
276    RD_KAFKA_RESP_ERR_INVALID_REQUEST = 42,
277    RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT = 43,
278    RD_KAFKA_RESP_ERR_POLICY_VIOLATION = 44,
279    RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER = 45,
280    RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER = 46,
281    RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH = 47,
282    RD_KAFKA_RESP_ERR_INVALID_TXN_STATE = 48,
283    RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING = 49,
284    RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT = 50,
285    RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS = 51,
286    RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED = 52,
287    RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED = 53,
288    RD_KAFKA_RESP_ERR_SECURITY_DISABLED = 54,
289    RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED = 55,
290    RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR = 56,
291    RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND = 57,
292    RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED = 58,
293    RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID = 59,
294    RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS = 60,
295    RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED = 61,
296    RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND = 62,
297    RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH = 63,
298    RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED = 64,
299    RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED = 65,
300    RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED = 66,
301    RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE = 67,
302    RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP = 68,
303    RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND = 69,
304    RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND = 70,
305    RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH = 71,
306    RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND = 72,
307    RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED = 73,
308    RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH = 74,
309    RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH = 75,
310    RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE = 76,
311    RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH = 77,
312    RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE = 78,
313    RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED = 79,
314    RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE = 80,
315    RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED = 81,
316    RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID = 82,
317    RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE = 83,
318    RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED = 84,
319    RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS = 85,
320    RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC = 86,
321    RD_KAFKA_RESP_ERR_INVALID_RECORD = 87,
322    RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT = 88,
323    RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED = 89,
324    RD_KAFKA_RESP_ERR_PRODUCER_FENCED = 90,
325    RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND = 91,
326    RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE = 92,
327    RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL = 93,
328    RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET = 94,
329    RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95,
330    RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96,
331    RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97,
332    RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_ID = 100,
333    RD_KAFKA_RESP_ERR_INCONSISTENT_TOPIC_ID = 103,
334    RD_KAFKA_RESP_ERR_FENCED_MEMBER_EPOCH = 110,
335    RD_KAFKA_RESP_ERR_UNRELEASED_INSTANCE_ID = 111,
336    RD_KAFKA_RESP_ERR_UNSUPPORTED_ASSIGNOR = 112,
337    RD_KAFKA_RESP_ERR_STALE_MEMBER_EPOCH = 113,
338    RD_KAFKA_RESP_ERR_MISMATCHED_ENDPOINT_TYPE = 114,
339    RD_KAFKA_RESP_ERR_UNSUPPORTED_ENDPOINT_TYPE = 115,
340    RD_KAFKA_RESP_ERR_UNKNOWN_CONTROLLER_ID = 116,
341    RD_KAFKA_RESP_ERR_UNKNOWN_SUBSCRIPTION_ID = 117,
342    RD_KAFKA_RESP_ERR_TELEMETRY_TOO_LARGE = 118,
343    RD_KAFKA_RESP_ERR_INVALID_REGISTRATION = 119,
344    RD_KAFKA_RESP_ERR_TRANSACTION_ABORTABLE = 120,
345    RD_KAFKA_RESP_ERR_INVALID_RECORD_STATE = 121,
346    RD_KAFKA_RESP_ERR_SHARE_SESSION_NOT_FOUND = 122,
347    RD_KAFKA_RESP_ERR_INVALID_SHARE_SESSION_EPOCH = 123,
348    RD_KAFKA_RESP_ERR_FENCED_STATE_EPOCH = 124,
349    RD_KAFKA_RESP_ERR_INVALID_VOTER_KEY = 125,
350    RD_KAFKA_RESP_ERR_DUPLICATE_VOTER = 126,
351    RD_KAFKA_RESP_ERR_VOTER_NOT_FOUND = 127,
352    RD_KAFKA_RESP_ERR_INVALID_REGULAR_EXPRESSION = 128,
353    RD_KAFKA_RESP_ERR_REBOOTSTRAP_REQUIRED = 129,
354    RD_KAFKA_RESP_ERR_STREAMS_INVALID_TOPOLOGY = 130,
355    RD_KAFKA_RESP_ERR_STREAMS_INVALID_TOPOLOGY_EPOCH = 131,
356    RD_KAFKA_RESP_ERR_STREAMS_TOPOLOGY_FENCED = 132,
357    RD_KAFKA_RESP_ERR_SHARE_SESSION_LIMIT_REACHED = 133,
358    RD_KAFKA_RESP_ERR_END_ALL = 134,
359}
360#[repr(C)]
361#[derive(Debug, Copy, Clone)]
362pub struct rd_kafka_err_desc {
363    pub code: rd_kafka_resp_err_t,
364    pub name: *const c_char,
365    pub desc: *const c_char,
366}
367unsafe extern "C" {
368    pub fn rd_kafka_get_err_descs(errdescs: *mut *const rd_kafka_err_desc, cntp: *mut usize);
369}
370unsafe extern "C" {
371    pub fn rd_kafka_err2str(err: rd_kafka_resp_err_t) -> *const c_char;
372}
373unsafe extern "C" {
374    pub fn rd_kafka_err2name(err: rd_kafka_resp_err_t) -> *const c_char;
375}
376unsafe extern "C" {
377    pub fn rd_kafka_last_error() -> rd_kafka_resp_err_t;
378}
379unsafe extern "C" {
380    pub fn rd_kafka_errno2err(errnox: c_int) -> rd_kafka_resp_err_t;
381}
382unsafe extern "C" {
383    pub fn rd_kafka_errno() -> c_int;
384}
385unsafe extern "C" {
386    pub fn rd_kafka_fatal_error(
387        rk: *mut rd_kafka_t,
388        errstr: *mut c_char,
389        errstr_size: usize,
390    ) -> rd_kafka_resp_err_t;
391}
392unsafe extern "C" {
393    pub fn rd_kafka_test_fatal_error(
394        rk: *mut rd_kafka_t,
395        err: rd_kafka_resp_err_t,
396        reason: *const c_char,
397    ) -> rd_kafka_resp_err_t;
398}
399unsafe extern "C" {
400    pub fn rd_kafka_error_code(error: *const rd_kafka_error_t) -> rd_kafka_resp_err_t;
401}
402unsafe extern "C" {
403    pub fn rd_kafka_error_name(error: *const rd_kafka_error_t) -> *const c_char;
404}
405unsafe extern "C" {
406    pub fn rd_kafka_error_string(error: *const rd_kafka_error_t) -> *const c_char;
407}
408unsafe extern "C" {
409    pub fn rd_kafka_error_is_fatal(error: *const rd_kafka_error_t) -> c_int;
410}
411unsafe extern "C" {
412    pub fn rd_kafka_error_is_retriable(error: *const rd_kafka_error_t) -> c_int;
413}
414unsafe extern "C" {
415    pub fn rd_kafka_error_txn_requires_abort(error: *const rd_kafka_error_t) -> c_int;
416}
417unsafe extern "C" {
418    pub fn rd_kafka_error_destroy(error: *mut rd_kafka_error_t);
419}
420unsafe extern "C" {
421    pub fn rd_kafka_error_new(
422        code: rd_kafka_resp_err_t,
423        fmt: *const c_char,
424        ...
425    ) -> *mut rd_kafka_error_t;
426}
427#[repr(C)]
428#[derive(Debug, Copy, Clone)]
429pub struct rd_kafka_topic_partition_s {
430    pub topic: *mut c_char,
431    pub partition: i32,
432    pub offset: i64,
433    pub metadata: *mut c_void,
434    pub metadata_size: usize,
435    pub opaque: *mut c_void,
436    pub err: rd_kafka_resp_err_t,
437    pub _private: *mut c_void,
438}
439pub type rd_kafka_topic_partition_t = rd_kafka_topic_partition_s;
440unsafe extern "C" {
441    pub fn rd_kafka_topic_partition_destroy(rktpar: *mut rd_kafka_topic_partition_t);
442}
443unsafe extern "C" {
444    pub fn rd_kafka_topic_partition_set_leader_epoch(
445        rktpar: *mut rd_kafka_topic_partition_t,
446        leader_epoch: i32,
447    );
448}
449unsafe extern "C" {
450    pub fn rd_kafka_topic_partition_get_leader_epoch(
451        rktpar: *const rd_kafka_topic_partition_t,
452    ) -> i32;
453}
454#[repr(C)]
455#[derive(Debug, Copy, Clone)]
456pub struct rd_kafka_topic_partition_list_s {
457    pub cnt: c_int,
458    pub size: c_int,
459    pub elems: *mut rd_kafka_topic_partition_t,
460}
461pub type rd_kafka_topic_partition_list_t = rd_kafka_topic_partition_list_s;
462unsafe extern "C" {
463    pub fn rd_kafka_topic_partition_list_new(size: c_int) -> *mut rd_kafka_topic_partition_list_t;
464}
465unsafe extern "C" {
466    pub fn rd_kafka_topic_partition_list_destroy(rkparlist: *mut rd_kafka_topic_partition_list_t);
467}
468unsafe extern "C" {
469    pub fn rd_kafka_topic_partition_list_add(
470        rktparlist: *mut rd_kafka_topic_partition_list_t,
471        topic: *const c_char,
472        partition: i32,
473    ) -> *mut rd_kafka_topic_partition_t;
474}
475unsafe extern "C" {
476    pub fn rd_kafka_topic_partition_list_add_range(
477        rktparlist: *mut rd_kafka_topic_partition_list_t,
478        topic: *const c_char,
479        start: i32,
480        stop: i32,
481    );
482}
483unsafe extern "C" {
484    pub fn rd_kafka_topic_partition_list_del(
485        rktparlist: *mut rd_kafka_topic_partition_list_t,
486        topic: *const c_char,
487        partition: i32,
488    ) -> c_int;
489}
490unsafe extern "C" {
491    pub fn rd_kafka_topic_partition_list_del_by_idx(
492        rktparlist: *mut rd_kafka_topic_partition_list_t,
493        idx: c_int,
494    ) -> c_int;
495}
496unsafe extern "C" {
497    pub fn rd_kafka_topic_partition_list_copy(
498        src: *const rd_kafka_topic_partition_list_t,
499    ) -> *mut rd_kafka_topic_partition_list_t;
500}
501unsafe extern "C" {
502    pub fn rd_kafka_topic_partition_list_set_offset(
503        rktparlist: *mut rd_kafka_topic_partition_list_t,
504        topic: *const c_char,
505        partition: i32,
506        offset: i64,
507    ) -> rd_kafka_resp_err_t;
508}
509unsafe extern "C" {
510    pub fn rd_kafka_topic_partition_list_find(
511        rktparlist: *const rd_kafka_topic_partition_list_t,
512        topic: *const c_char,
513        partition: i32,
514    ) -> *mut rd_kafka_topic_partition_t;
515}
516unsafe extern "C" {
517    pub fn rd_kafka_topic_partition_list_sort(
518        rktparlist: *mut rd_kafka_topic_partition_list_t,
519        cmp: Option<
520            unsafe extern "C" fn(
521                a: *const c_void,
522                b: *const c_void,
523                cmp_opaque: *mut c_void,
524            ) -> c_int,
525        >,
526        cmp_opaque: *mut c_void,
527    );
528}
529#[repr(u32)]
530#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
531pub enum rd_kafka_vtype_t {
532    RD_KAFKA_VTYPE_END = 0,
533    RD_KAFKA_VTYPE_TOPIC = 1,
534    RD_KAFKA_VTYPE_RKT = 2,
535    RD_KAFKA_VTYPE_PARTITION = 3,
536    RD_KAFKA_VTYPE_VALUE = 4,
537    RD_KAFKA_VTYPE_KEY = 5,
538    RD_KAFKA_VTYPE_OPAQUE = 6,
539    RD_KAFKA_VTYPE_MSGFLAGS = 7,
540    RD_KAFKA_VTYPE_TIMESTAMP = 8,
541    RD_KAFKA_VTYPE_HEADER = 9,
542    RD_KAFKA_VTYPE_HEADERS = 10,
543}
544#[repr(C)]
545#[derive(Copy, Clone)]
546pub struct rd_kafka_vu_s {
547    pub vtype: rd_kafka_vtype_t,
548    pub u: rd_kafka_vu_s__bindgen_ty_1,
549}
550#[repr(C)]
551#[derive(Copy, Clone)]
552pub union rd_kafka_vu_s__bindgen_ty_1 {
553    pub cstr: *const c_char,
554    pub rkt: *mut rd_kafka_topic_t,
555    pub i: c_int,
556    pub i32_: i32,
557    pub i64_: i64,
558    pub mem: rd_kafka_vu_s__bindgen_ty_1__bindgen_ty_1,
559    pub header: rd_kafka_vu_s__bindgen_ty_1__bindgen_ty_2,
560    pub headers: *mut rd_kafka_headers_t,
561    pub ptr: *mut c_void,
562    pub _pad: [c_char; 64usize],
563}
564#[repr(C)]
565#[derive(Debug, Copy, Clone)]
566pub struct rd_kafka_vu_s__bindgen_ty_1__bindgen_ty_1 {
567    pub ptr: *mut c_void,
568    pub size: usize,
569}
570#[repr(C)]
571#[derive(Debug, Copy, Clone)]
572pub struct rd_kafka_vu_s__bindgen_ty_1__bindgen_ty_2 {
573    pub name: *const c_char,
574    pub val: *const c_void,
575    pub size: isize,
576}
577pub type rd_kafka_vu_t = rd_kafka_vu_s;
578unsafe extern "C" {
579    pub fn rd_kafka_headers_new(initial_count: usize) -> *mut rd_kafka_headers_t;
580}
581unsafe extern "C" {
582    pub fn rd_kafka_headers_destroy(hdrs: *mut rd_kafka_headers_t);
583}
584unsafe extern "C" {
585    pub fn rd_kafka_headers_copy(src: *const rd_kafka_headers_t) -> *mut rd_kafka_headers_t;
586}
587unsafe extern "C" {
588    pub fn rd_kafka_header_add(
589        hdrs: *mut rd_kafka_headers_t,
590        name: *const c_char,
591        name_size: isize,
592        value: *const c_void,
593        value_size: isize,
594    ) -> rd_kafka_resp_err_t;
595}
596unsafe extern "C" {
597    pub fn rd_kafka_header_remove(
598        hdrs: *mut rd_kafka_headers_t,
599        name: *const c_char,
600    ) -> rd_kafka_resp_err_t;
601}
602unsafe extern "C" {
603    pub fn rd_kafka_header_get_last(
604        hdrs: *const rd_kafka_headers_t,
605        name: *const c_char,
606        valuep: *mut *const c_void,
607        sizep: *mut usize,
608    ) -> rd_kafka_resp_err_t;
609}
610unsafe extern "C" {
611    pub fn rd_kafka_header_get(
612        hdrs: *const rd_kafka_headers_t,
613        idx: usize,
614        name: *const c_char,
615        valuep: *mut *const c_void,
616        sizep: *mut usize,
617    ) -> rd_kafka_resp_err_t;
618}
619unsafe extern "C" {
620    pub fn rd_kafka_header_get_all(
621        hdrs: *const rd_kafka_headers_t,
622        idx: usize,
623        namep: *mut *const c_char,
624        valuep: *mut *const c_void,
625        sizep: *mut usize,
626    ) -> rd_kafka_resp_err_t;
627}
628#[repr(C)]
629#[derive(Debug, Copy, Clone)]
630pub struct rd_kafka_message_s {
631    pub err: rd_kafka_resp_err_t,
632    pub rkt: *mut rd_kafka_topic_t,
633    pub partition: i32,
634    pub payload: *mut c_void,
635    pub len: usize,
636    pub key: *mut c_void,
637    pub key_len: usize,
638    pub offset: i64,
639    pub _private: *mut c_void,
640}
641pub type rd_kafka_message_t = rd_kafka_message_s;
642#[repr(C)]
643#[derive(Debug)]
644pub struct rd_kafka_messages_s {
645    _unused: [u8; 0],
646}
647pub type rd_kafka_messages_t = rd_kafka_messages_s;
648unsafe extern "C" {
649    pub fn rd_kafka_messages_count(messages: *const rd_kafka_messages_t) -> usize;
650}
651unsafe extern "C" {
652    pub fn rd_kafka_messages_get(
653        messages: *const rd_kafka_messages_t,
654        index: usize,
655    ) -> *mut rd_kafka_message_t;
656}
657unsafe extern "C" {
658    pub fn rd_kafka_messages_destroy(messages: *mut rd_kafka_messages_t);
659}
660unsafe extern "C" {
661    pub fn rd_kafka_message_destroy(rkmessage: *mut rd_kafka_message_t);
662}
663unsafe extern "C" {
664    pub fn rd_kafka_message_errstr(rkmessage: *const rd_kafka_message_t) -> *const c_char;
665}
666unsafe extern "C" {
667    pub fn rd_kafka_message_produce_errstr(rkmessage: *const rd_kafka_message_t) -> *const c_char;
668}
669unsafe extern "C" {
670    pub fn rd_kafka_message_timestamp(
671        rkmessage: *const rd_kafka_message_t,
672        tstype: *mut rd_kafka_timestamp_type_t,
673    ) -> i64;
674}
675unsafe extern "C" {
676    pub fn rd_kafka_message_latency(rkmessage: *const rd_kafka_message_t) -> i64;
677}
678unsafe extern "C" {
679    pub fn rd_kafka_message_broker_id(rkmessage: *const rd_kafka_message_t) -> i32;
680}
681unsafe extern "C" {
682    pub fn rd_kafka_message_headers(
683        rkmessage: *const rd_kafka_message_t,
684        hdrsp: *mut *mut rd_kafka_headers_t,
685    ) -> rd_kafka_resp_err_t;
686}
687unsafe extern "C" {
688    pub fn rd_kafka_message_detach_headers(
689        rkmessage: *mut rd_kafka_message_t,
690        hdrsp: *mut *mut rd_kafka_headers_t,
691    ) -> rd_kafka_resp_err_t;
692}
693unsafe extern "C" {
694    pub fn rd_kafka_message_set_headers(
695        rkmessage: *mut rd_kafka_message_t,
696        hdrs: *mut rd_kafka_headers_t,
697    );
698}
699unsafe extern "C" {
700    pub fn rd_kafka_header_cnt(hdrs: *const rd_kafka_headers_t) -> usize;
701}
702#[repr(u32)]
703#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
704pub enum rd_kafka_msg_status_t {
705    RD_KAFKA_MSG_STATUS_NOT_PERSISTED = 0,
706    RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1,
707    RD_KAFKA_MSG_STATUS_PERSISTED = 2,
708}
709unsafe extern "C" {
710    pub fn rd_kafka_message_status(rkmessage: *const rd_kafka_message_t) -> rd_kafka_msg_status_t;
711}
712unsafe extern "C" {
713    pub fn rd_kafka_message_leader_epoch(rkmessage: *const rd_kafka_message_t) -> i32;
714}
715unsafe extern "C" {
716    pub fn rd_kafka_message_delivery_count(rkmessage: *const rd_kafka_message_t) -> i16;
717}
718unsafe extern "C" {
719    pub fn rd_kafka_Uuid_base64str(uuid: *const rd_kafka_Uuid_t) -> *const c_char;
720}
721unsafe extern "C" {
722    pub fn rd_kafka_Uuid_least_significant_bits(uuid: *const rd_kafka_Uuid_t) -> i64;
723}
724unsafe extern "C" {
725    pub fn rd_kafka_Uuid_most_significant_bits(uuid: *const rd_kafka_Uuid_t) -> i64;
726}
727unsafe extern "C" {
728    pub fn rd_kafka_Uuid_new(
729        most_significant_bits: i64,
730        least_significant_bits: i64,
731    ) -> *mut rd_kafka_Uuid_t;
732}
733unsafe extern "C" {
734    pub fn rd_kafka_Uuid_copy(uuid: *const rd_kafka_Uuid_t) -> *mut rd_kafka_Uuid_t;
735}
736unsafe extern "C" {
737    pub fn rd_kafka_Uuid_destroy(uuid: *mut rd_kafka_Uuid_t);
738}
739#[repr(i32)]
740#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
741pub enum rd_kafka_conf_res_t {
742    RD_KAFKA_CONF_UNKNOWN = -2,
743    RD_KAFKA_CONF_INVALID = -1,
744    RD_KAFKA_CONF_OK = 0,
745}
746unsafe extern "C" {
747    pub fn rd_kafka_conf_new() -> *mut rd_kafka_conf_t;
748}
749unsafe extern "C" {
750    pub fn rd_kafka_conf_destroy(conf: *mut rd_kafka_conf_t);
751}
752unsafe extern "C" {
753    pub fn rd_kafka_conf_dup(conf: *const rd_kafka_conf_t) -> *mut rd_kafka_conf_t;
754}
755unsafe extern "C" {
756    pub fn rd_kafka_conf_dup_filter(
757        conf: *const rd_kafka_conf_t,
758        filter_cnt: usize,
759        filter: *mut *const c_char,
760    ) -> *mut rd_kafka_conf_t;
761}
762unsafe extern "C" {
763    pub fn rd_kafka_conf(rk: *mut rd_kafka_t) -> *const rd_kafka_conf_t;
764}
765unsafe extern "C" {
766    pub fn rd_kafka_conf_set(
767        conf: *mut rd_kafka_conf_t,
768        name: *const c_char,
769        value: *const c_char,
770        errstr: *mut c_char,
771        errstr_size: usize,
772    ) -> rd_kafka_conf_res_t;
773}
774unsafe extern "C" {
775    pub fn rd_kafka_conf_set_events(conf: *mut rd_kafka_conf_t, events: c_int);
776}
777unsafe extern "C" {
778    pub fn rd_kafka_conf_set_background_event_cb(
779        conf: *mut rd_kafka_conf_t,
780        event_cb: Option<
781            unsafe extern "C" fn(
782                rk: *mut rd_kafka_t,
783                rkev: *mut rd_kafka_event_t,
784                opaque: *mut c_void,
785            ),
786        >,
787    );
788}
789unsafe extern "C" {
790    pub fn rd_kafka_conf_set_dr_cb(
791        conf: *mut rd_kafka_conf_t,
792        dr_cb: Option<
793            unsafe extern "C" fn(
794                rk: *mut rd_kafka_t,
795                payload: *mut c_void,
796                len: usize,
797                err: rd_kafka_resp_err_t,
798                opaque: *mut c_void,
799                msg_opaque: *mut c_void,
800            ),
801        >,
802    );
803}
804unsafe extern "C" {
805    pub fn rd_kafka_conf_set_dr_msg_cb(
806        conf: *mut rd_kafka_conf_t,
807        dr_msg_cb: Option<
808            unsafe extern "C" fn(
809                rk: *mut rd_kafka_t,
810                rkmessage: *const rd_kafka_message_t,
811                opaque: *mut c_void,
812            ),
813        >,
814    );
815}
816unsafe extern "C" {
817    pub fn rd_kafka_conf_set_consume_cb(
818        conf: *mut rd_kafka_conf_t,
819        consume_cb: Option<
820            unsafe extern "C" fn(rkmessage: *mut rd_kafka_message_t, opaque: *mut c_void),
821        >,
822    );
823}
824unsafe extern "C" {
825    pub fn rd_kafka_conf_set_rebalance_cb(
826        conf: *mut rd_kafka_conf_t,
827        rebalance_cb: Option<
828            unsafe extern "C" fn(
829                rk: *mut rd_kafka_t,
830                err: rd_kafka_resp_err_t,
831                partitions: *mut rd_kafka_topic_partition_list_t,
832                opaque: *mut c_void,
833            ),
834        >,
835    );
836}
837unsafe extern "C" {
838    pub fn rd_kafka_conf_set_offset_commit_cb(
839        conf: *mut rd_kafka_conf_t,
840        offset_commit_cb: Option<
841            unsafe extern "C" fn(
842                rk: *mut rd_kafka_t,
843                err: rd_kafka_resp_err_t,
844                offsets: *mut rd_kafka_topic_partition_list_t,
845                opaque: *mut c_void,
846            ),
847        >,
848    );
849}
850unsafe extern "C" {
851    pub fn rd_kafka_conf_set_error_cb(
852        conf: *mut rd_kafka_conf_t,
853        error_cb: Option<
854            unsafe extern "C" fn(
855                rk: *mut rd_kafka_t,
856                err: c_int,
857                reason: *const c_char,
858                opaque: *mut c_void,
859            ),
860        >,
861    );
862}
863unsafe extern "C" {
864    pub fn rd_kafka_conf_set_throttle_cb(
865        conf: *mut rd_kafka_conf_t,
866        throttle_cb: Option<
867            unsafe extern "C" fn(
868                rk: *mut rd_kafka_t,
869                broker_name: *const c_char,
870                broker_id: i32,
871                throttle_time_ms: c_int,
872                opaque: *mut c_void,
873            ),
874        >,
875    );
876}
877unsafe extern "C" {
878    pub fn rd_kafka_conf_set_log_cb(
879        conf: *mut rd_kafka_conf_t,
880        log_cb: Option<
881            unsafe extern "C" fn(
882                rk: *const rd_kafka_t,
883                level: c_int,
884                fac: *const c_char,
885                buf: *const c_char,
886            ),
887        >,
888    );
889}
890unsafe extern "C" {
891    pub fn rd_kafka_conf_set_stats_cb(
892        conf: *mut rd_kafka_conf_t,
893        stats_cb: Option<
894            unsafe extern "C" fn(
895                rk: *mut rd_kafka_t,
896                json: *mut c_char,
897                json_len: usize,
898                opaque: *mut c_void,
899            ) -> c_int,
900        >,
901    );
902}
903unsafe extern "C" {
904    pub fn rd_kafka_conf_set_oauthbearer_token_refresh_cb(
905        conf: *mut rd_kafka_conf_t,
906        oauthbearer_token_refresh_cb: Option<
907            unsafe extern "C" fn(
908                rk: *mut rd_kafka_t,
909                oauthbearer_config: *const c_char,
910                opaque: *mut c_void,
911            ),
912        >,
913    );
914}
915unsafe extern "C" {
916    pub fn rd_kafka_conf_enable_sasl_queue(conf: *mut rd_kafka_conf_t, enable: c_int);
917}
918unsafe extern "C" {
919    pub fn rd_kafka_conf_set_socket_cb(
920        conf: *mut rd_kafka_conf_t,
921        socket_cb: Option<
922            unsafe extern "C" fn(
923                domain: c_int,
924                type_: c_int,
925                protocol: c_int,
926                opaque: *mut c_void,
927            ) -> c_int,
928        >,
929    );
930}
931unsafe extern "C" {
932    pub fn rd_kafka_conf_set_connect_cb(
933        conf: *mut rd_kafka_conf_t,
934        connect_cb: Option<
935            unsafe extern "C" fn(
936                sockfd: c_int,
937                addr: *const sockaddr,
938                addrlen: c_int,
939                id: *const c_char,
940                opaque: *mut c_void,
941            ) -> c_int,
942        >,
943    );
944}
945unsafe extern "C" {
946    pub fn rd_kafka_conf_set_closesocket_cb(
947        conf: *mut rd_kafka_conf_t,
948        closesocket_cb: Option<unsafe extern "C" fn(sockfd: c_int, opaque: *mut c_void) -> c_int>,
949    );
950}
951unsafe extern "C" {
952    pub fn rd_kafka_conf_set_resolve_cb(
953        conf: *mut rd_kafka_conf_t,
954        resolve_cb: Option<
955            unsafe extern "C" fn(
956                node: *const c_char,
957                service: *const c_char,
958                hints: *const addrinfo,
959                res: *mut *mut addrinfo,
960                opaque: *mut c_void,
961            ) -> c_int,
962        >,
963    );
964}
965unsafe extern "C" {
966    pub fn rd_kafka_conf_set_ssl_cert_verify_cb(
967        conf: *mut rd_kafka_conf_t,
968        ssl_cert_verify_cb: Option<
969            unsafe extern "C" fn(
970                rk: *mut rd_kafka_t,
971                broker_name: *const c_char,
972                broker_id: i32,
973                x509_error: *mut c_int,
974                depth: c_int,
975                buf: *const c_char,
976                size: usize,
977                errstr: *mut c_char,
978                errstr_size: usize,
979                opaque: *mut c_void,
980            ) -> c_int,
981        >,
982    ) -> rd_kafka_conf_res_t;
983}
984#[repr(u32)]
985#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
986pub enum rd_kafka_cert_type_t {
987    RD_KAFKA_CERT_PUBLIC_KEY = 0,
988    RD_KAFKA_CERT_PRIVATE_KEY = 1,
989    RD_KAFKA_CERT_CA = 2,
990    RD_KAFKA_CERT__CNT = 3,
991}
992#[repr(u32)]
993#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
994pub enum rd_kafka_cert_enc_t {
995    RD_KAFKA_CERT_ENC_PKCS12 = 0,
996    RD_KAFKA_CERT_ENC_DER = 1,
997    RD_KAFKA_CERT_ENC_PEM = 2,
998    RD_KAFKA_CERT_ENC__CNT = 3,
999}
1000unsafe extern "C" {
1001    pub fn rd_kafka_conf_set_ssl_cert(
1002        conf: *mut rd_kafka_conf_t,
1003        cert_type: rd_kafka_cert_type_t,
1004        cert_enc: rd_kafka_cert_enc_t,
1005        buffer: *const c_void,
1006        size: usize,
1007        errstr: *mut c_char,
1008        errstr_size: usize,
1009    ) -> rd_kafka_conf_res_t;
1010}
1011unsafe extern "C" {
1012    pub fn rd_kafka_conf_set_engine_callback_data(
1013        conf: *mut rd_kafka_conf_t,
1014        callback_data: *mut c_void,
1015    );
1016}
1017unsafe extern "C" {
1018    pub fn rd_kafka_conf_set_opaque(conf: *mut rd_kafka_conf_t, opaque: *mut c_void);
1019}
1020unsafe extern "C" {
1021    pub fn rd_kafka_opaque(rk: *const rd_kafka_t) -> *mut c_void;
1022}
1023unsafe extern "C" {
1024    pub fn rd_kafka_conf_set_default_topic_conf(
1025        conf: *mut rd_kafka_conf_t,
1026        tconf: *mut rd_kafka_topic_conf_t,
1027    );
1028}
1029unsafe extern "C" {
1030    pub fn rd_kafka_conf_get_default_topic_conf(
1031        conf: *mut rd_kafka_conf_t,
1032    ) -> *mut rd_kafka_topic_conf_t;
1033}
1034unsafe extern "C" {
1035    pub fn rd_kafka_conf_get(
1036        conf: *const rd_kafka_conf_t,
1037        name: *const c_char,
1038        dest: *mut c_char,
1039        dest_size: *mut usize,
1040    ) -> rd_kafka_conf_res_t;
1041}
1042unsafe extern "C" {
1043    pub fn rd_kafka_topic_conf_get(
1044        conf: *const rd_kafka_topic_conf_t,
1045        name: *const c_char,
1046        dest: *mut c_char,
1047        dest_size: *mut usize,
1048    ) -> rd_kafka_conf_res_t;
1049}
1050unsafe extern "C" {
1051    pub fn rd_kafka_conf_dump(conf: *mut rd_kafka_conf_t, cntp: *mut usize) -> *mut *const c_char;
1052}
1053unsafe extern "C" {
1054    pub fn rd_kafka_topic_conf_dump(
1055        conf: *mut rd_kafka_topic_conf_t,
1056        cntp: *mut usize,
1057    ) -> *mut *const c_char;
1058}
1059unsafe extern "C" {
1060    pub fn rd_kafka_conf_dump_free(arr: *mut *const c_char, cnt: usize);
1061}
1062unsafe extern "C" {
1063    pub fn rd_kafka_conf_properties_show(fp: *mut FILE);
1064}
1065unsafe extern "C" {
1066    pub fn rd_kafka_topic_conf_new() -> *mut rd_kafka_topic_conf_t;
1067}
1068unsafe extern "C" {
1069    pub fn rd_kafka_topic_conf_dup(
1070        conf: *const rd_kafka_topic_conf_t,
1071    ) -> *mut rd_kafka_topic_conf_t;
1072}
1073unsafe extern "C" {
1074    pub fn rd_kafka_default_topic_conf_dup(rk: *mut rd_kafka_t) -> *mut rd_kafka_topic_conf_t;
1075}
1076unsafe extern "C" {
1077    pub fn rd_kafka_topic_conf_destroy(topic_conf: *mut rd_kafka_topic_conf_t);
1078}
1079unsafe extern "C" {
1080    pub fn rd_kafka_topic_conf_set(
1081        conf: *mut rd_kafka_topic_conf_t,
1082        name: *const c_char,
1083        value: *const c_char,
1084        errstr: *mut c_char,
1085        errstr_size: usize,
1086    ) -> rd_kafka_conf_res_t;
1087}
1088unsafe extern "C" {
1089    pub fn rd_kafka_topic_conf_set_opaque(
1090        conf: *mut rd_kafka_topic_conf_t,
1091        rkt_opaque: *mut c_void,
1092    );
1093}
1094unsafe extern "C" {
1095    pub fn rd_kafka_topic_conf_set_partitioner_cb(
1096        topic_conf: *mut rd_kafka_topic_conf_t,
1097        partitioner: Option<
1098            unsafe extern "C" fn(
1099                rkt: *const rd_kafka_topic_t,
1100                keydata: *const c_void,
1101                keylen: usize,
1102                partition_cnt: i32,
1103                rkt_opaque: *mut c_void,
1104                msg_opaque: *mut c_void,
1105            ) -> i32,
1106        >,
1107    );
1108}
1109unsafe extern "C" {
1110    pub fn rd_kafka_topic_conf_set_msg_order_cmp(
1111        topic_conf: *mut rd_kafka_topic_conf_t,
1112        msg_order_cmp: Option<
1113            unsafe extern "C" fn(
1114                a: *const rd_kafka_message_t,
1115                b: *const rd_kafka_message_t,
1116            ) -> c_int,
1117        >,
1118    );
1119}
1120unsafe extern "C" {
1121    pub fn rd_kafka_topic_partition_available(
1122        rkt: *const rd_kafka_topic_t,
1123        partition: i32,
1124    ) -> c_int;
1125}
1126unsafe extern "C" {
1127    pub fn rd_kafka_msg_partitioner_random(
1128        rkt: *const rd_kafka_topic_t,
1129        key: *const c_void,
1130        keylen: usize,
1131        partition_cnt: i32,
1132        rkt_opaque: *mut c_void,
1133        msg_opaque: *mut c_void,
1134    ) -> i32;
1135}
1136unsafe extern "C" {
1137    pub fn rd_kafka_msg_partitioner_consistent(
1138        rkt: *const rd_kafka_topic_t,
1139        key: *const c_void,
1140        keylen: usize,
1141        partition_cnt: i32,
1142        rkt_opaque: *mut c_void,
1143        msg_opaque: *mut c_void,
1144    ) -> i32;
1145}
1146unsafe extern "C" {
1147    pub fn rd_kafka_msg_partitioner_consistent_random(
1148        rkt: *const rd_kafka_topic_t,
1149        key: *const c_void,
1150        keylen: usize,
1151        partition_cnt: i32,
1152        rkt_opaque: *mut c_void,
1153        msg_opaque: *mut c_void,
1154    ) -> i32;
1155}
1156unsafe extern "C" {
1157    pub fn rd_kafka_msg_partitioner_murmur2(
1158        rkt: *const rd_kafka_topic_t,
1159        key: *const c_void,
1160        keylen: usize,
1161        partition_cnt: i32,
1162        rkt_opaque: *mut c_void,
1163        msg_opaque: *mut c_void,
1164    ) -> i32;
1165}
1166unsafe extern "C" {
1167    pub fn rd_kafka_msg_partitioner_murmur2_random(
1168        rkt: *const rd_kafka_topic_t,
1169        key: *const c_void,
1170        keylen: usize,
1171        partition_cnt: i32,
1172        rkt_opaque: *mut c_void,
1173        msg_opaque: *mut c_void,
1174    ) -> i32;
1175}
1176unsafe extern "C" {
1177    pub fn rd_kafka_msg_partitioner_fnv1a(
1178        rkt: *const rd_kafka_topic_t,
1179        key: *const c_void,
1180        keylen: usize,
1181        partition_cnt: i32,
1182        rkt_opaque: *mut c_void,
1183        msg_opaque: *mut c_void,
1184    ) -> i32;
1185}
1186unsafe extern "C" {
1187    pub fn rd_kafka_msg_partitioner_fnv1a_random(
1188        rkt: *const rd_kafka_topic_t,
1189        key: *const c_void,
1190        keylen: usize,
1191        partition_cnt: i32,
1192        rkt_opaque: *mut c_void,
1193        msg_opaque: *mut c_void,
1194    ) -> i32;
1195}
1196unsafe extern "C" {
1197    pub fn rd_kafka_new(
1198        type_: rd_kafka_type_t,
1199        conf: *mut rd_kafka_conf_t,
1200        errstr: *mut c_char,
1201        errstr_size: usize,
1202    ) -> *mut rd_kafka_t;
1203}
1204unsafe extern "C" {
1205    pub fn rd_kafka_destroy(rk: *mut rd_kafka_t);
1206}
1207unsafe extern "C" {
1208    pub fn rd_kafka_destroy_flags(rk: *mut rd_kafka_t, flags: c_int);
1209}
1210unsafe extern "C" {
1211    pub fn rd_kafka_share_queue_get_sasl(rkshare: *mut rd_kafka_share_t) -> *mut rd_kafka_queue_t;
1212}
1213unsafe extern "C" {
1214    pub fn rd_kafka_share_oauthbearer_set_token(
1215        rkshare: *mut rd_kafka_share_t,
1216        token_value: *const c_char,
1217        md_lifetime_ms: i64,
1218        md_principal_name: *const c_char,
1219        extensions: *mut *const c_char,
1220        extension_size: usize,
1221        errstr: *mut c_char,
1222        errstr_size: usize,
1223    ) -> rd_kafka_resp_err_t;
1224}
1225unsafe extern "C" {
1226    pub fn rd_kafka_share_oauthbearer_set_token_failure(
1227        rkshare: *mut rd_kafka_share_t,
1228        errstr: *const c_char,
1229    ) -> rd_kafka_resp_err_t;
1230}
1231unsafe extern "C" {
1232    pub fn rd_kafka_name(rk: *const rd_kafka_t) -> *const c_char;
1233}
1234unsafe extern "C" {
1235    pub fn rd_kafka_type(rk: *const rd_kafka_t) -> rd_kafka_type_t;
1236}
1237unsafe extern "C" {
1238    pub fn rd_kafka_memberid(rk: *const rd_kafka_t) -> *mut c_char;
1239}
1240unsafe extern "C" {
1241    pub fn rd_kafka_clusterid(rk: *mut rd_kafka_t, timeout_ms: c_int) -> *mut c_char;
1242}
1243unsafe extern "C" {
1244    pub fn rd_kafka_controllerid(rk: *mut rd_kafka_t, timeout_ms: c_int) -> i32;
1245}
1246unsafe extern "C" {
1247    pub fn rd_kafka_topic_new(
1248        rk: *mut rd_kafka_t,
1249        topic: *const c_char,
1250        conf: *mut rd_kafka_topic_conf_t,
1251    ) -> *mut rd_kafka_topic_t;
1252}
1253unsafe extern "C" {
1254    pub fn rd_kafka_topic_destroy(rkt: *mut rd_kafka_topic_t);
1255}
1256unsafe extern "C" {
1257    pub fn rd_kafka_topic_name(rkt: *const rd_kafka_topic_t) -> *const c_char;
1258}
1259unsafe extern "C" {
1260    pub fn rd_kafka_topic_opaque(rkt: *const rd_kafka_topic_t) -> *mut c_void;
1261}
1262unsafe extern "C" {
1263    pub fn rd_kafka_poll(rk: *mut rd_kafka_t, timeout_ms: c_int) -> c_int;
1264}
1265unsafe extern "C" {
1266    pub fn rd_kafka_yield(rk: *mut rd_kafka_t);
1267}
1268unsafe extern "C" {
1269    pub fn rd_kafka_pause_partitions(
1270        rk: *mut rd_kafka_t,
1271        partitions: *mut rd_kafka_topic_partition_list_t,
1272    ) -> rd_kafka_resp_err_t;
1273}
1274unsafe extern "C" {
1275    pub fn rd_kafka_resume_partitions(
1276        rk: *mut rd_kafka_t,
1277        partitions: *mut rd_kafka_topic_partition_list_t,
1278    ) -> rd_kafka_resp_err_t;
1279}
1280unsafe extern "C" {
1281    pub fn rd_kafka_query_watermark_offsets(
1282        rk: *mut rd_kafka_t,
1283        topic: *const c_char,
1284        partition: i32,
1285        low: *mut i64,
1286        high: *mut i64,
1287        timeout_ms: c_int,
1288    ) -> rd_kafka_resp_err_t;
1289}
1290unsafe extern "C" {
1291    pub fn rd_kafka_get_watermark_offsets(
1292        rk: *mut rd_kafka_t,
1293        topic: *const c_char,
1294        partition: i32,
1295        low: *mut i64,
1296        high: *mut i64,
1297    ) -> rd_kafka_resp_err_t;
1298}
1299unsafe extern "C" {
1300    pub fn rd_kafka_offsets_for_times(
1301        rk: *mut rd_kafka_t,
1302        offsets: *mut rd_kafka_topic_partition_list_t,
1303        timeout_ms: c_int,
1304    ) -> rd_kafka_resp_err_t;
1305}
1306unsafe extern "C" {
1307    pub fn rd_kafka_mem_calloc(rk: *mut rd_kafka_t, num: usize, size: usize) -> *mut c_void;
1308}
1309unsafe extern "C" {
1310    pub fn rd_kafka_mem_malloc(rk: *mut rd_kafka_t, size: usize) -> *mut c_void;
1311}
1312unsafe extern "C" {
1313    pub fn rd_kafka_mem_free(rk: *mut rd_kafka_t, ptr: *mut c_void);
1314}
1315unsafe extern "C" {
1316    pub fn rd_kafka_queue_new(rk: *mut rd_kafka_t) -> *mut rd_kafka_queue_t;
1317}
1318unsafe extern "C" {
1319    pub fn rd_kafka_queue_destroy(rkqu: *mut rd_kafka_queue_t);
1320}
1321unsafe extern "C" {
1322    pub fn rd_kafka_queue_get_main(rk: *mut rd_kafka_t) -> *mut rd_kafka_queue_t;
1323}
1324unsafe extern "C" {
1325    pub fn rd_kafka_queue_get_sasl(rk: *mut rd_kafka_t) -> *mut rd_kafka_queue_t;
1326}
1327unsafe extern "C" {
1328    pub fn rd_kafka_sasl_background_callbacks_enable(rk: *mut rd_kafka_t) -> *mut rd_kafka_error_t;
1329}
1330unsafe extern "C" {
1331    pub fn rd_kafka_sasl_set_credentials(
1332        rk: *mut rd_kafka_t,
1333        username: *const c_char,
1334        password: *const c_char,
1335    ) -> *mut rd_kafka_error_t;
1336}
1337unsafe extern "C" {
1338    pub fn rd_kafka_queue_get_consumer(rk: *mut rd_kafka_t) -> *mut rd_kafka_queue_t;
1339}
1340unsafe extern "C" {
1341    pub fn rd_kafka_queue_get_partition(
1342        rk: *mut rd_kafka_t,
1343        topic: *const c_char,
1344        partition: i32,
1345    ) -> *mut rd_kafka_queue_t;
1346}
1347unsafe extern "C" {
1348    pub fn rd_kafka_queue_get_background(rk: *mut rd_kafka_t) -> *mut rd_kafka_queue_t;
1349}
1350unsafe extern "C" {
1351    pub fn rd_kafka_queue_forward(src: *mut rd_kafka_queue_t, dst: *mut rd_kafka_queue_t);
1352}
1353unsafe extern "C" {
1354    pub fn rd_kafka_set_log_queue(
1355        rk: *mut rd_kafka_t,
1356        rkqu: *mut rd_kafka_queue_t,
1357    ) -> rd_kafka_resp_err_t;
1358}
1359unsafe extern "C" {
1360    pub fn rd_kafka_queue_length(rkqu: *mut rd_kafka_queue_t) -> usize;
1361}
1362unsafe extern "C" {
1363    pub fn rd_kafka_queue_io_event_enable(
1364        rkqu: *mut rd_kafka_queue_t,
1365        fd: c_int,
1366        payload: *const c_void,
1367        size: usize,
1368    );
1369}
1370unsafe extern "C" {
1371    pub fn rd_kafka_queue_cb_event_enable(
1372        rkqu: *mut rd_kafka_queue_t,
1373        event_cb: Option<unsafe extern "C" fn(rk: *mut rd_kafka_t, qev_opaque: *mut c_void)>,
1374        qev_opaque: *mut c_void,
1375    );
1376}
1377unsafe extern "C" {
1378    pub fn rd_kafka_queue_yield(rkqu: *mut rd_kafka_queue_t);
1379}
1380unsafe extern "C" {
1381    pub fn rd_kafka_consume_start(rkt: *mut rd_kafka_topic_t, partition: i32, offset: i64)
1382        -> c_int;
1383}
1384unsafe extern "C" {
1385    pub fn rd_kafka_consume_start_queue(
1386        rkt: *mut rd_kafka_topic_t,
1387        partition: i32,
1388        offset: i64,
1389        rkqu: *mut rd_kafka_queue_t,
1390    ) -> c_int;
1391}
1392unsafe extern "C" {
1393    pub fn rd_kafka_consume_stop(rkt: *mut rd_kafka_topic_t, partition: i32) -> c_int;
1394}
1395unsafe extern "C" {
1396    pub fn rd_kafka_seek(
1397        rkt: *mut rd_kafka_topic_t,
1398        partition: i32,
1399        offset: i64,
1400        timeout_ms: c_int,
1401    ) -> rd_kafka_resp_err_t;
1402}
1403unsafe extern "C" {
1404    pub fn rd_kafka_seek_partitions(
1405        rk: *mut rd_kafka_t,
1406        partitions: *mut rd_kafka_topic_partition_list_t,
1407        timeout_ms: c_int,
1408    ) -> *mut rd_kafka_error_t;
1409}
1410unsafe extern "C" {
1411    pub fn rd_kafka_consume(
1412        rkt: *mut rd_kafka_topic_t,
1413        partition: i32,
1414        timeout_ms: c_int,
1415    ) -> *mut rd_kafka_message_t;
1416}
1417unsafe extern "C" {
1418    pub fn rd_kafka_consume_batch(
1419        rkt: *mut rd_kafka_topic_t,
1420        partition: i32,
1421        timeout_ms: c_int,
1422        rkmessages: *mut *mut rd_kafka_message_t,
1423        rkmessages_size: usize,
1424    ) -> isize;
1425}
1426unsafe extern "C" {
1427    pub fn rd_kafka_consume_callback(
1428        rkt: *mut rd_kafka_topic_t,
1429        partition: i32,
1430        timeout_ms: c_int,
1431        consume_cb: Option<
1432            unsafe extern "C" fn(rkmessage: *mut rd_kafka_message_t, commit_opaque: *mut c_void),
1433        >,
1434        commit_opaque: *mut c_void,
1435    ) -> c_int;
1436}
1437unsafe extern "C" {
1438    pub fn rd_kafka_consume_queue(
1439        rkqu: *mut rd_kafka_queue_t,
1440        timeout_ms: c_int,
1441    ) -> *mut rd_kafka_message_t;
1442}
1443unsafe extern "C" {
1444    pub fn rd_kafka_consume_batch_queue(
1445        rkqu: *mut rd_kafka_queue_t,
1446        timeout_ms: c_int,
1447        rkmessages: *mut *mut rd_kafka_message_t,
1448        rkmessages_size: usize,
1449    ) -> isize;
1450}
1451unsafe extern "C" {
1452    pub fn rd_kafka_consume_callback_queue(
1453        rkqu: *mut rd_kafka_queue_t,
1454        timeout_ms: c_int,
1455        consume_cb: Option<
1456            unsafe extern "C" fn(rkmessage: *mut rd_kafka_message_t, commit_opaque: *mut c_void),
1457        >,
1458        commit_opaque: *mut c_void,
1459    ) -> c_int;
1460}
1461unsafe extern "C" {
1462    pub fn rd_kafka_offset_store(
1463        rkt: *mut rd_kafka_topic_t,
1464        partition: i32,
1465        offset: i64,
1466    ) -> rd_kafka_resp_err_t;
1467}
1468unsafe extern "C" {
1469    pub fn rd_kafka_offsets_store(
1470        rk: *mut rd_kafka_t,
1471        offsets: *mut rd_kafka_topic_partition_list_t,
1472    ) -> rd_kafka_resp_err_t;
1473}
1474unsafe extern "C" {
1475    pub fn rd_kafka_offset_store_message(
1476        rkmessage: *mut rd_kafka_message_t,
1477    ) -> *mut rd_kafka_error_t;
1478}
1479unsafe extern "C" {
1480    pub fn rd_kafka_subscribe(
1481        rk: *mut rd_kafka_t,
1482        topics: *const rd_kafka_topic_partition_list_t,
1483    ) -> rd_kafka_resp_err_t;
1484}
1485unsafe extern "C" {
1486    pub fn rd_kafka_unsubscribe(rk: *mut rd_kafka_t) -> rd_kafka_resp_err_t;
1487}
1488unsafe extern "C" {
1489    pub fn rd_kafka_subscription(
1490        rk: *mut rd_kafka_t,
1491        topics: *mut *mut rd_kafka_topic_partition_list_t,
1492    ) -> rd_kafka_resp_err_t;
1493}
1494unsafe extern "C" {
1495    pub fn rd_kafka_consumer_poll(
1496        rk: *mut rd_kafka_t,
1497        timeout_ms: c_int,
1498    ) -> *mut rd_kafka_message_t;
1499}
1500unsafe extern "C" {
1501    pub fn rd_kafka_consumer_close(rk: *mut rd_kafka_t) -> rd_kafka_resp_err_t;
1502}
1503unsafe extern "C" {
1504    pub fn rd_kafka_consumer_close_queue(
1505        rk: *mut rd_kafka_t,
1506        rkqu: *mut rd_kafka_queue_t,
1507    ) -> *mut rd_kafka_error_t;
1508}
1509unsafe extern "C" {
1510    pub fn rd_kafka_consumer_closed(rk: *mut rd_kafka_t) -> c_int;
1511}
1512unsafe extern "C" {
1513    pub fn rd_kafka_incremental_assign(
1514        rk: *mut rd_kafka_t,
1515        partitions: *const rd_kafka_topic_partition_list_t,
1516    ) -> *mut rd_kafka_error_t;
1517}
1518unsafe extern "C" {
1519    pub fn rd_kafka_incremental_unassign(
1520        rk: *mut rd_kafka_t,
1521        partitions: *const rd_kafka_topic_partition_list_t,
1522    ) -> *mut rd_kafka_error_t;
1523}
1524unsafe extern "C" {
1525    pub fn rd_kafka_rebalance_protocol(rk: *mut rd_kafka_t) -> *const c_char;
1526}
1527unsafe extern "C" {
1528    pub fn rd_kafka_assign(
1529        rk: *mut rd_kafka_t,
1530        partitions: *const rd_kafka_topic_partition_list_t,
1531    ) -> rd_kafka_resp_err_t;
1532}
1533unsafe extern "C" {
1534    pub fn rd_kafka_assignment(
1535        rk: *mut rd_kafka_t,
1536        partitions: *mut *mut rd_kafka_topic_partition_list_t,
1537    ) -> rd_kafka_resp_err_t;
1538}
1539unsafe extern "C" {
1540    pub fn rd_kafka_assignment_lost(rk: *mut rd_kafka_t) -> c_int;
1541}
1542unsafe extern "C" {
1543    pub fn rd_kafka_commit(
1544        rk: *mut rd_kafka_t,
1545        offsets: *const rd_kafka_topic_partition_list_t,
1546        async_: c_int,
1547    ) -> rd_kafka_resp_err_t;
1548}
1549unsafe extern "C" {
1550    pub fn rd_kafka_commit_message(
1551        rk: *mut rd_kafka_t,
1552        rkmessage: *const rd_kafka_message_t,
1553        async_: c_int,
1554    ) -> rd_kafka_resp_err_t;
1555}
1556unsafe extern "C" {
1557    pub fn rd_kafka_commit_queue(
1558        rk: *mut rd_kafka_t,
1559        offsets: *const rd_kafka_topic_partition_list_t,
1560        rkqu: *mut rd_kafka_queue_t,
1561        cb: Option<
1562            unsafe extern "C" fn(
1563                rk: *mut rd_kafka_t,
1564                err: rd_kafka_resp_err_t,
1565                offsets: *mut rd_kafka_topic_partition_list_t,
1566                commit_opaque: *mut c_void,
1567            ),
1568        >,
1569        commit_opaque: *mut c_void,
1570    ) -> rd_kafka_resp_err_t;
1571}
1572unsafe extern "C" {
1573    pub fn rd_kafka_committed(
1574        rk: *mut rd_kafka_t,
1575        partitions: *mut rd_kafka_topic_partition_list_t,
1576        timeout_ms: c_int,
1577    ) -> rd_kafka_resp_err_t;
1578}
1579unsafe extern "C" {
1580    pub fn rd_kafka_position(
1581        rk: *mut rd_kafka_t,
1582        partitions: *mut rd_kafka_topic_partition_list_t,
1583    ) -> rd_kafka_resp_err_t;
1584}
1585unsafe extern "C" {
1586    pub fn rd_kafka_consumer_group_metadata(
1587        rk: *mut rd_kafka_t,
1588    ) -> *mut rd_kafka_consumer_group_metadata_t;
1589}
1590unsafe extern "C" {
1591    pub fn rd_kafka_consumer_group_metadata_new(
1592        group_id: *const c_char,
1593    ) -> *mut rd_kafka_consumer_group_metadata_t;
1594}
1595unsafe extern "C" {
1596    pub fn rd_kafka_consumer_group_metadata_new_with_genid(
1597        group_id: *const c_char,
1598        generation_id: i32,
1599        member_id: *const c_char,
1600        group_instance_id: *const c_char,
1601    ) -> *mut rd_kafka_consumer_group_metadata_t;
1602}
1603unsafe extern "C" {
1604    pub fn rd_kafka_consumer_group_metadata_group_id(
1605        group_metadata: *const rd_kafka_consumer_group_metadata_t,
1606    ) -> *const c_char;
1607}
1608unsafe extern "C" {
1609    pub fn rd_kafka_consumer_group_metadata_group_instance_id(
1610        group_metadata: *const rd_kafka_consumer_group_metadata_t,
1611    ) -> *const c_char;
1612}
1613unsafe extern "C" {
1614    pub fn rd_kafka_consumer_group_metadata_member_id(
1615        group_metadata: *const rd_kafka_consumer_group_metadata_t,
1616    ) -> *const c_char;
1617}
1618unsafe extern "C" {
1619    pub fn rd_kafka_consumer_group_metadata_generation_id(
1620        group_metadata: *const rd_kafka_consumer_group_metadata_t,
1621    ) -> i32;
1622}
1623unsafe extern "C" {
1624    pub fn rd_kafka_consumer_group_metadata_destroy(arg1: *mut rd_kafka_consumer_group_metadata_t);
1625}
1626unsafe extern "C" {
1627    pub fn rd_kafka_consumer_group_metadata_write(
1628        cgmd: *const rd_kafka_consumer_group_metadata_t,
1629        bufferp: *mut *mut c_void,
1630        sizep: *mut usize,
1631    ) -> *mut rd_kafka_error_t;
1632}
1633unsafe extern "C" {
1634    pub fn rd_kafka_consumer_group_metadata_read(
1635        cgmdp: *mut *mut rd_kafka_consumer_group_metadata_t,
1636        buffer: *const c_void,
1637        size: usize,
1638    ) -> *mut rd_kafka_error_t;
1639}
1640unsafe extern "C" {
1641    pub fn rd_kafka_produce(
1642        rkt: *mut rd_kafka_topic_t,
1643        partition: i32,
1644        msgflags: c_int,
1645        payload: *mut c_void,
1646        len: usize,
1647        key: *const c_void,
1648        keylen: usize,
1649        msg_opaque: *mut c_void,
1650    ) -> c_int;
1651}
1652unsafe extern "C" {
1653    pub fn rd_kafka_producev(rk: *mut rd_kafka_t, ...) -> rd_kafka_resp_err_t;
1654}
1655unsafe extern "C" {
1656    pub fn rd_kafka_produceva(
1657        rk: *mut rd_kafka_t,
1658        vus: *const rd_kafka_vu_t,
1659        cnt: usize,
1660    ) -> *mut rd_kafka_error_t;
1661}
1662unsafe extern "C" {
1663    pub fn rd_kafka_produce_batch(
1664        rkt: *mut rd_kafka_topic_t,
1665        partition: i32,
1666        msgflags: c_int,
1667        rkmessages: *mut rd_kafka_message_t,
1668        message_cnt: c_int,
1669    ) -> c_int;
1670}
1671unsafe extern "C" {
1672    pub fn rd_kafka_flush(rk: *mut rd_kafka_t, timeout_ms: c_int) -> rd_kafka_resp_err_t;
1673}
1674unsafe extern "C" {
1675    pub fn rd_kafka_purge(rk: *mut rd_kafka_t, purge_flags: c_int) -> rd_kafka_resp_err_t;
1676}
1677#[repr(u32)]
1678#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1679pub enum rd_kafka_share_AcknowledgeType_s {
1680    RD_KAFKA_SHARE_ACKNOWLEDGE_TYPE_ACCEPT = 1,
1681    RD_KAFKA_SHARE_ACKNOWLEDGE_TYPE_RELEASE = 2,
1682    RD_KAFKA_SHARE_ACKNOWLEDGE_TYPE_REJECT = 3,
1683}
1684pub use self::rd_kafka_share_AcknowledgeType_s as rd_kafka_share_AcknowledgeType_t;
1685#[repr(C)]
1686#[derive(Debug)]
1687pub struct rd_kafka_share_partition_offsets_s {
1688    _unused: [u8; 0],
1689}
1690pub type rd_kafka_share_partition_offsets_t = rd_kafka_share_partition_offsets_s;
1691#[repr(C)]
1692#[derive(Debug)]
1693pub struct rd_kafka_share_partition_offsets_list_s {
1694    _unused: [u8; 0],
1695}
1696pub type rd_kafka_share_partition_offsets_list_t = rd_kafka_share_partition_offsets_list_s;
1697unsafe extern "C" {
1698    pub fn rd_kafka_share_partition_offsets_list_count(
1699        list: *const rd_kafka_share_partition_offsets_list_t,
1700    ) -> usize;
1701}
1702unsafe extern "C" {
1703    pub fn rd_kafka_share_partition_offsets_list_get(
1704        list: *const rd_kafka_share_partition_offsets_list_t,
1705        index: usize,
1706    ) -> *const rd_kafka_share_partition_offsets_t;
1707}
1708unsafe extern "C" {
1709    pub fn rd_kafka_share_partition_offsets_list_destroy(
1710        list: *mut rd_kafka_share_partition_offsets_list_t,
1711    );
1712}
1713unsafe extern "C" {
1714    pub fn rd_kafka_share_partition_offsets_partition(
1715        partition_offsets: *const rd_kafka_share_partition_offsets_t,
1716    ) -> *const rd_kafka_topic_partition_t;
1717}
1718unsafe extern "C" {
1719    pub fn rd_kafka_share_partition_offsets_offsets(
1720        partition_offsets: *const rd_kafka_share_partition_offsets_t,
1721    ) -> *const i64;
1722}
1723unsafe extern "C" {
1724    pub fn rd_kafka_share_partition_offsets_offsets_cnt(
1725        partition_offsets: *const rd_kafka_share_partition_offsets_t,
1726    ) -> usize;
1727}
1728unsafe extern "C" {
1729    pub fn rd_kafka_share_consumer_new(
1730        conf: *mut rd_kafka_conf_t,
1731        errstr: *mut c_char,
1732        errstr_size: usize,
1733    ) -> *mut rd_kafka_share_t;
1734}
1735unsafe extern "C" {
1736    pub fn rd_kafka_share_set_acknowledgement_commit_cb(
1737        rkshare: *mut rd_kafka_share_t,
1738        share_acknowledgement_commit_cb: Option<
1739            unsafe extern "C" fn(
1740                rkshare: *mut rd_kafka_share_t,
1741                partitions: *mut rd_kafka_share_partition_offsets_list_t,
1742                err: rd_kafka_resp_err_t,
1743                opaque: *mut c_void,
1744            ),
1745        >,
1746        opaque: *mut c_void,
1747    ) -> *mut rd_kafka_error_t;
1748}
1749unsafe extern "C" {
1750    pub fn rd_kafka_share_subscribe(
1751        rkshare: *mut rd_kafka_share_t,
1752        topics: *const rd_kafka_topic_partition_list_t,
1753    ) -> rd_kafka_resp_err_t;
1754}
1755unsafe extern "C" {
1756    pub fn rd_kafka_share_unsubscribe(rkshare: *mut rd_kafka_share_t) -> rd_kafka_resp_err_t;
1757}
1758unsafe extern "C" {
1759    pub fn rd_kafka_share_subscription(
1760        rkshare: *mut rd_kafka_share_t,
1761        topics: *mut *mut rd_kafka_topic_partition_list_t,
1762    ) -> rd_kafka_resp_err_t;
1763}
1764unsafe extern "C" {
1765    pub fn rd_kafka_share_poll(
1766        rkshare: *mut rd_kafka_share_t,
1767        timeout_ms: c_int,
1768        rkmessages: *mut *mut rd_kafka_messages_t,
1769    ) -> *mut rd_kafka_error_t;
1770}
1771unsafe extern "C" {
1772    pub fn rd_kafka_share_acknowledge(
1773        rkshare: *mut rd_kafka_share_t,
1774        rkmessage: *const rd_kafka_message_t,
1775    ) -> rd_kafka_resp_err_t;
1776}
1777unsafe extern "C" {
1778    pub fn rd_kafka_share_acknowledge_type(
1779        rkshare: *mut rd_kafka_share_t,
1780        rkmessage: *const rd_kafka_message_t,
1781        type_: rd_kafka_share_AcknowledgeType_t,
1782    ) -> rd_kafka_resp_err_t;
1783}
1784unsafe extern "C" {
1785    pub fn rd_kafka_share_acknowledge_offset(
1786        rkshare: *mut rd_kafka_share_t,
1787        topic: *const c_char,
1788        partition: i32,
1789        offset: i64,
1790        type_: rd_kafka_share_AcknowledgeType_t,
1791    ) -> rd_kafka_resp_err_t;
1792}
1793unsafe extern "C" {
1794    pub fn rd_kafka_share_commit_async(rkshare: *mut rd_kafka_share_t) -> *mut rd_kafka_error_t;
1795}
1796unsafe extern "C" {
1797    pub fn rd_kafka_share_commit_sync(
1798        rkshare: *mut rd_kafka_share_t,
1799        timeout_ms: c_int,
1800        partitions: *mut *mut rd_kafka_topic_partition_list_t,
1801    ) -> *mut rd_kafka_error_t;
1802}
1803unsafe extern "C" {
1804    pub fn rd_kafka_share_consumer_close(rkshare: *mut rd_kafka_share_t) -> *mut rd_kafka_error_t;
1805}
1806unsafe extern "C" {
1807    pub fn rd_kafka_share_consumer_close_queue(
1808        rkshare: *mut rd_kafka_share_t,
1809        rkqu: *mut rd_kafka_queue_t,
1810    ) -> *mut rd_kafka_error_t;
1811}
1812unsafe extern "C" {
1813    pub fn rd_kafka_share_consumer_closed(rkshare: *mut rd_kafka_share_t) -> c_int;
1814}
1815unsafe extern "C" {
1816    pub fn rd_kafka_share_destroy(rkshare: *mut rd_kafka_share_t) -> *mut rd_kafka_error_t;
1817}
1818unsafe extern "C" {
1819    pub fn rd_kafka_share_destroy_flags(
1820        rkshare: *mut rd_kafka_share_t,
1821        flags: c_int,
1822    ) -> *mut rd_kafka_error_t;
1823}
1824unsafe extern "C" {
1825    pub fn rd_kafka_share_set_log_queue(
1826        rkshare: *mut rd_kafka_share_t,
1827        rkqu: *mut rd_kafka_queue_t,
1828    ) -> *mut rd_kafka_error_t;
1829}
1830unsafe extern "C" {
1831    pub fn rd_kafka_share_sasl_background_callbacks_enable(
1832        rkshare: *mut rd_kafka_share_t,
1833    ) -> *mut rd_kafka_error_t;
1834}
1835unsafe extern "C" {
1836    pub fn rd_kafka_share_sasl_set_credentials(
1837        rkshare: *mut rd_kafka_share_t,
1838        username: *const c_char,
1839        password: *const c_char,
1840    ) -> *mut rd_kafka_error_t;
1841}
1842#[repr(C)]
1843#[derive(Debug, Copy, Clone)]
1844pub struct rd_kafka_metadata_broker {
1845    pub id: i32,
1846    pub host: *mut c_char,
1847    pub port: c_int,
1848}
1849pub type rd_kafka_metadata_broker_t = rd_kafka_metadata_broker;
1850#[repr(C)]
1851#[derive(Debug, Copy, Clone)]
1852pub struct rd_kafka_metadata_partition {
1853    pub id: i32,
1854    pub err: rd_kafka_resp_err_t,
1855    pub leader: i32,
1856    pub replica_cnt: c_int,
1857    pub replicas: *mut i32,
1858    pub isr_cnt: c_int,
1859    pub isrs: *mut i32,
1860}
1861pub type rd_kafka_metadata_partition_t = rd_kafka_metadata_partition;
1862#[repr(C)]
1863#[derive(Debug, Copy, Clone)]
1864pub struct rd_kafka_metadata_topic {
1865    pub topic: *mut c_char,
1866    pub partition_cnt: c_int,
1867    pub partitions: *mut rd_kafka_metadata_partition,
1868    pub err: rd_kafka_resp_err_t,
1869}
1870pub type rd_kafka_metadata_topic_t = rd_kafka_metadata_topic;
1871#[repr(C)]
1872#[derive(Debug, Copy, Clone)]
1873pub struct rd_kafka_metadata {
1874    pub broker_cnt: c_int,
1875    pub brokers: *mut rd_kafka_metadata_broker,
1876    pub topic_cnt: c_int,
1877    pub topics: *mut rd_kafka_metadata_topic,
1878    pub orig_broker_id: i32,
1879    pub orig_broker_name: *mut c_char,
1880}
1881pub type rd_kafka_metadata_t = rd_kafka_metadata;
1882unsafe extern "C" {
1883    pub fn rd_kafka_metadata(
1884        rk: *mut rd_kafka_t,
1885        all_topics: c_int,
1886        only_rkt: *mut rd_kafka_topic_t,
1887        metadatap: *mut *const rd_kafka_metadata,
1888        timeout_ms: c_int,
1889    ) -> rd_kafka_resp_err_t;
1890}
1891unsafe extern "C" {
1892    pub fn rd_kafka_metadata_destroy(metadata: *const rd_kafka_metadata);
1893}
1894#[repr(C)]
1895#[derive(Debug)]
1896pub struct rd_kafka_Node_s {
1897    _unused: [u8; 0],
1898}
1899pub type rd_kafka_Node_t = rd_kafka_Node_s;
1900unsafe extern "C" {
1901    pub fn rd_kafka_Node_id(node: *const rd_kafka_Node_t) -> c_int;
1902}
1903unsafe extern "C" {
1904    pub fn rd_kafka_Node_host(node: *const rd_kafka_Node_t) -> *const c_char;
1905}
1906unsafe extern "C" {
1907    pub fn rd_kafka_Node_port(node: *const rd_kafka_Node_t) -> u16;
1908}
1909unsafe extern "C" {
1910    pub fn rd_kafka_Node_rack(node: *const rd_kafka_Node_t) -> *const c_char;
1911}
1912#[repr(C)]
1913#[derive(Debug, Copy, Clone)]
1914pub struct rd_kafka_group_member_info {
1915    pub member_id: *mut c_char,
1916    pub client_id: *mut c_char,
1917    pub client_host: *mut c_char,
1918    pub member_metadata: *mut c_void,
1919    pub member_metadata_size: c_int,
1920    pub member_assignment: *mut c_void,
1921    pub member_assignment_size: c_int,
1922}
1923#[repr(u32)]
1924#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1925pub enum rd_kafka_consumer_group_state_t {
1926    RD_KAFKA_CONSUMER_GROUP_STATE_UNKNOWN = 0,
1927    RD_KAFKA_CONSUMER_GROUP_STATE_PREPARING_REBALANCE = 1,
1928    RD_KAFKA_CONSUMER_GROUP_STATE_COMPLETING_REBALANCE = 2,
1929    RD_KAFKA_CONSUMER_GROUP_STATE_STABLE = 3,
1930    RD_KAFKA_CONSUMER_GROUP_STATE_DEAD = 4,
1931    RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5,
1932    RD_KAFKA_CONSUMER_GROUP_STATE__CNT = 6,
1933}
1934#[repr(u32)]
1935#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1936pub enum rd_kafka_consumer_group_type_t {
1937    RD_KAFKA_CONSUMER_GROUP_TYPE_UNKNOWN = 0,
1938    RD_KAFKA_CONSUMER_GROUP_TYPE_CONSUMER = 1,
1939    RD_KAFKA_CONSUMER_GROUP_TYPE_CLASSIC = 2,
1940    RD_KAFKA_CONSUMER_GROUP_TYPE__CNT = 3,
1941}
1942#[repr(C)]
1943#[derive(Debug, Copy, Clone)]
1944pub struct rd_kafka_group_info {
1945    pub broker: rd_kafka_metadata_broker,
1946    pub group: *mut c_char,
1947    pub err: rd_kafka_resp_err_t,
1948    pub state: *mut c_char,
1949    pub protocol_type: *mut c_char,
1950    pub protocol: *mut c_char,
1951    pub members: *mut rd_kafka_group_member_info,
1952    pub member_cnt: c_int,
1953}
1954#[repr(C)]
1955#[derive(Debug, Copy, Clone)]
1956pub struct rd_kafka_group_list {
1957    pub groups: *mut rd_kafka_group_info,
1958    pub group_cnt: c_int,
1959}
1960unsafe extern "C" {
1961    pub fn rd_kafka_list_groups(
1962        rk: *mut rd_kafka_t,
1963        group: *const c_char,
1964        grplistp: *mut *const rd_kafka_group_list,
1965        timeout_ms: c_int,
1966    ) -> rd_kafka_resp_err_t;
1967}
1968unsafe extern "C" {
1969    pub fn rd_kafka_consumer_group_state_name(
1970        state: rd_kafka_consumer_group_state_t,
1971    ) -> *const c_char;
1972}
1973unsafe extern "C" {
1974    pub fn rd_kafka_consumer_group_state_code(
1975        name: *const c_char,
1976    ) -> rd_kafka_consumer_group_state_t;
1977}
1978unsafe extern "C" {
1979    pub fn rd_kafka_consumer_group_type_name(
1980        type_: rd_kafka_consumer_group_type_t,
1981    ) -> *const c_char;
1982}
1983unsafe extern "C" {
1984    pub fn rd_kafka_consumer_group_type_code(name: *const c_char)
1985        -> rd_kafka_consumer_group_type_t;
1986}
1987unsafe extern "C" {
1988    pub fn rd_kafka_group_list_destroy(grplist: *const rd_kafka_group_list);
1989}
1990unsafe extern "C" {
1991    pub fn rd_kafka_brokers_add(rk: *mut rd_kafka_t, brokerlist: *const c_char) -> c_int;
1992}
1993unsafe extern "C" {
1994    pub fn rd_kafka_brokers_learned_ids(rk: *mut rd_kafka_t, cntp: *mut usize) -> *mut i32;
1995}
1996unsafe extern "C" {
1997    pub fn rd_kafka_set_logger(
1998        rk: *mut rd_kafka_t,
1999        func: Option<
2000            unsafe extern "C" fn(
2001                rk: *const rd_kafka_t,
2002                level: c_int,
2003                fac: *const c_char,
2004                buf: *const c_char,
2005            ),
2006        >,
2007    );
2008}
2009unsafe extern "C" {
2010    pub fn rd_kafka_set_log_level(rk: *mut rd_kafka_t, level: c_int);
2011}
2012unsafe extern "C" {
2013    pub fn rd_kafka_log_print(
2014        rk: *const rd_kafka_t,
2015        level: c_int,
2016        fac: *const c_char,
2017        buf: *const c_char,
2018    );
2019}
2020unsafe extern "C" {
2021    pub fn rd_kafka_log_syslog(
2022        rk: *const rd_kafka_t,
2023        level: c_int,
2024        fac: *const c_char,
2025        buf: *const c_char,
2026    );
2027}
2028unsafe extern "C" {
2029    pub fn rd_kafka_outq_len(rk: *mut rd_kafka_t) -> c_int;
2030}
2031unsafe extern "C" {
2032    pub fn rd_kafka_dump(fp: *mut FILE, rk: *mut rd_kafka_t);
2033}
2034unsafe extern "C" {
2035    pub fn rd_kafka_thread_cnt() -> c_int;
2036}
2037#[repr(u32)]
2038#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2039pub enum rd_kafka_thread_type_t {
2040    RD_KAFKA_THREAD_MAIN = 0,
2041    RD_KAFKA_THREAD_BACKGROUND = 1,
2042    RD_KAFKA_THREAD_BROKER = 2,
2043}
2044unsafe extern "C" {
2045    pub fn rd_kafka_wait_destroyed(timeout_ms: c_int) -> ::std::os::raw::c_int;
2046}
2047unsafe extern "C" {
2048    pub fn rd_kafka_unittest() -> c_int;
2049}
2050unsafe extern "C" {
2051    pub fn rd_kafka_poll_set_consumer(rk: *mut rd_kafka_t) -> rd_kafka_resp_err_t;
2052}
2053pub type rd_kafka_event_type_t = c_int;
2054unsafe extern "C" {
2055    pub fn rd_kafka_event_type(rkev: *const rd_kafka_event_t) -> rd_kafka_event_type_t;
2056}
2057unsafe extern "C" {
2058    pub fn rd_kafka_event_name(rkev: *const rd_kafka_event_t) -> *const c_char;
2059}
2060unsafe extern "C" {
2061    pub fn rd_kafka_event_destroy(rkev: *mut rd_kafka_event_t);
2062}
2063unsafe extern "C" {
2064    pub fn rd_kafka_event_message_next(rkev: *mut rd_kafka_event_t) -> *const rd_kafka_message_t;
2065}
2066unsafe extern "C" {
2067    pub fn rd_kafka_event_message_array(
2068        rkev: *mut rd_kafka_event_t,
2069        rkmessages: *mut *const rd_kafka_message_t,
2070        size: usize,
2071    ) -> usize;
2072}
2073unsafe extern "C" {
2074    pub fn rd_kafka_event_message_count(rkev: *mut rd_kafka_event_t) -> usize;
2075}
2076unsafe extern "C" {
2077    pub fn rd_kafka_event_config_string(rkev: *mut rd_kafka_event_t) -> *const c_char;
2078}
2079unsafe extern "C" {
2080    pub fn rd_kafka_event_error(rkev: *mut rd_kafka_event_t) -> rd_kafka_resp_err_t;
2081}
2082unsafe extern "C" {
2083    pub fn rd_kafka_event_error_string(rkev: *mut rd_kafka_event_t) -> *const c_char;
2084}
2085unsafe extern "C" {
2086    pub fn rd_kafka_event_error_is_fatal(rkev: *mut rd_kafka_event_t) -> c_int;
2087}
2088unsafe extern "C" {
2089    pub fn rd_kafka_event_opaque(rkev: *mut rd_kafka_event_t) -> *mut c_void;
2090}
2091unsafe extern "C" {
2092    pub fn rd_kafka_event_log(
2093        rkev: *mut rd_kafka_event_t,
2094        fac: *mut *const c_char,
2095        str_: *mut *const c_char,
2096        level: *mut c_int,
2097    ) -> c_int;
2098}
2099unsafe extern "C" {
2100    pub fn rd_kafka_event_debug_contexts(
2101        rkev: *mut rd_kafka_event_t,
2102        dst: *mut c_char,
2103        dstsize: usize,
2104    ) -> c_int;
2105}
2106unsafe extern "C" {
2107    pub fn rd_kafka_event_stats(rkev: *mut rd_kafka_event_t) -> *const c_char;
2108}
2109unsafe extern "C" {
2110    pub fn rd_kafka_event_topic_partition_list(
2111        rkev: *mut rd_kafka_event_t,
2112    ) -> *mut rd_kafka_topic_partition_list_t;
2113}
2114unsafe extern "C" {
2115    pub fn rd_kafka_event_topic_partition(
2116        rkev: *mut rd_kafka_event_t,
2117    ) -> *mut rd_kafka_topic_partition_t;
2118}
2119pub type rd_kafka_CreateTopics_result_t = rd_kafka_event_t;
2120pub type rd_kafka_DeleteTopics_result_t = rd_kafka_event_t;
2121pub type rd_kafka_CreateAcls_result_t = rd_kafka_event_t;
2122pub type rd_kafka_DescribeAcls_result_t = rd_kafka_event_t;
2123pub type rd_kafka_DeleteAcls_result_t = rd_kafka_event_t;
2124pub type rd_kafka_CreatePartitions_result_t = rd_kafka_event_t;
2125pub type rd_kafka_AlterConfigs_result_t = rd_kafka_event_t;
2126pub type rd_kafka_IncrementalAlterConfigs_result_t = rd_kafka_event_t;
2127pub type rd_kafka_DescribeConfigs_result_t = rd_kafka_event_t;
2128pub type rd_kafka_DeleteRecords_result_t = rd_kafka_event_t;
2129pub type rd_kafka_ListConsumerGroups_result_t = rd_kafka_event_t;
2130pub type rd_kafka_DescribeConsumerGroups_result_t = rd_kafka_event_t;
2131pub type rd_kafka_DeleteGroups_result_t = rd_kafka_event_t;
2132pub type rd_kafka_DeleteConsumerGroupOffsets_result_t = rd_kafka_event_t;
2133pub type rd_kafka_AlterConsumerGroupOffsets_result_t = rd_kafka_event_t;
2134pub type rd_kafka_ListConsumerGroupOffsets_result_t = rd_kafka_event_t;
2135pub type rd_kafka_DescribeTopics_result_t = rd_kafka_event_t;
2136pub type rd_kafka_DescribeCluster_result_t = rd_kafka_event_t;
2137pub type rd_kafka_DescribeUserScramCredentials_result_t = rd_kafka_event_t;
2138pub type rd_kafka_AlterUserScramCredentials_result_t = rd_kafka_event_t;
2139pub type rd_kafka_ListOffsets_result_t = rd_kafka_event_t;
2140pub type rd_kafka_ElectLeaders_result_t = rd_kafka_event_t;
2141unsafe extern "C" {
2142    pub fn rd_kafka_event_CreateTopics_result(
2143        rkev: *mut rd_kafka_event_t,
2144    ) -> *const rd_kafka_CreateTopics_result_t;
2145}
2146unsafe extern "C" {
2147    pub fn rd_kafka_event_DeleteTopics_result(
2148        rkev: *mut rd_kafka_event_t,
2149    ) -> *const rd_kafka_DeleteTopics_result_t;
2150}
2151unsafe extern "C" {
2152    pub fn rd_kafka_event_CreatePartitions_result(
2153        rkev: *mut rd_kafka_event_t,
2154    ) -> *const rd_kafka_CreatePartitions_result_t;
2155}
2156unsafe extern "C" {
2157    pub fn rd_kafka_event_AlterConfigs_result(
2158        rkev: *mut rd_kafka_event_t,
2159    ) -> *const rd_kafka_AlterConfigs_result_t;
2160}
2161unsafe extern "C" {
2162    pub fn rd_kafka_event_IncrementalAlterConfigs_result(
2163        rkev: *mut rd_kafka_event_t,
2164    ) -> *const rd_kafka_IncrementalAlterConfigs_result_t;
2165}
2166unsafe extern "C" {
2167    pub fn rd_kafka_event_DescribeConfigs_result(
2168        rkev: *mut rd_kafka_event_t,
2169    ) -> *const rd_kafka_DescribeConfigs_result_t;
2170}
2171unsafe extern "C" {
2172    pub fn rd_kafka_event_DeleteRecords_result(
2173        rkev: *mut rd_kafka_event_t,
2174    ) -> *const rd_kafka_DeleteRecords_result_t;
2175}
2176unsafe extern "C" {
2177    pub fn rd_kafka_event_ListConsumerGroups_result(
2178        rkev: *mut rd_kafka_event_t,
2179    ) -> *const rd_kafka_ListConsumerGroups_result_t;
2180}
2181unsafe extern "C" {
2182    pub fn rd_kafka_event_DescribeConsumerGroups_result(
2183        rkev: *mut rd_kafka_event_t,
2184    ) -> *const rd_kafka_DescribeConsumerGroups_result_t;
2185}
2186unsafe extern "C" {
2187    pub fn rd_kafka_event_DescribeTopics_result(
2188        rkev: *mut rd_kafka_event_t,
2189    ) -> *const rd_kafka_DescribeTopics_result_t;
2190}
2191unsafe extern "C" {
2192    pub fn rd_kafka_event_DescribeCluster_result(
2193        rkev: *mut rd_kafka_event_t,
2194    ) -> *const rd_kafka_DescribeCluster_result_t;
2195}
2196unsafe extern "C" {
2197    pub fn rd_kafka_event_DeleteGroups_result(
2198        rkev: *mut rd_kafka_event_t,
2199    ) -> *const rd_kafka_DeleteGroups_result_t;
2200}
2201unsafe extern "C" {
2202    pub fn rd_kafka_event_DeleteConsumerGroupOffsets_result(
2203        rkev: *mut rd_kafka_event_t,
2204    ) -> *const rd_kafka_DeleteConsumerGroupOffsets_result_t;
2205}
2206unsafe extern "C" {
2207    pub fn rd_kafka_event_CreateAcls_result(
2208        rkev: *mut rd_kafka_event_t,
2209    ) -> *const rd_kafka_CreateAcls_result_t;
2210}
2211unsafe extern "C" {
2212    pub fn rd_kafka_event_DescribeAcls_result(
2213        rkev: *mut rd_kafka_event_t,
2214    ) -> *const rd_kafka_DescribeAcls_result_t;
2215}
2216unsafe extern "C" {
2217    pub fn rd_kafka_event_DeleteAcls_result(
2218        rkev: *mut rd_kafka_event_t,
2219    ) -> *const rd_kafka_DeleteAcls_result_t;
2220}
2221unsafe extern "C" {
2222    pub fn rd_kafka_event_ListConsumerGroupOffsets_result(
2223        rkev: *mut rd_kafka_event_t,
2224    ) -> *const rd_kafka_ListConsumerGroupOffsets_result_t;
2225}
2226unsafe extern "C" {
2227    pub fn rd_kafka_event_AlterConsumerGroupOffsets_result(
2228        rkev: *mut rd_kafka_event_t,
2229    ) -> *const rd_kafka_AlterConsumerGroupOffsets_result_t;
2230}
2231unsafe extern "C" {
2232    pub fn rd_kafka_event_ListOffsets_result(
2233        rkev: *mut rd_kafka_event_t,
2234    ) -> *const rd_kafka_ListOffsets_result_t;
2235}
2236unsafe extern "C" {
2237    pub fn rd_kafka_event_DescribeUserScramCredentials_result(
2238        rkev: *mut rd_kafka_event_t,
2239    ) -> *const rd_kafka_DescribeUserScramCredentials_result_t;
2240}
2241unsafe extern "C" {
2242    pub fn rd_kafka_event_AlterUserScramCredentials_result(
2243        rkev: *mut rd_kafka_event_t,
2244    ) -> *const rd_kafka_AlterUserScramCredentials_result_t;
2245}
2246unsafe extern "C" {
2247    pub fn rd_kafka_event_ElectLeaders_result(
2248        rkev: *mut rd_kafka_event_t,
2249    ) -> *const rd_kafka_ElectLeaders_result_t;
2250}
2251unsafe extern "C" {
2252    pub fn rd_kafka_queue_poll(
2253        rkqu: *mut rd_kafka_queue_t,
2254        timeout_ms: c_int,
2255    ) -> *mut rd_kafka_event_t;
2256}
2257unsafe extern "C" {
2258    pub fn rd_kafka_queue_poll_callback(rkqu: *mut rd_kafka_queue_t, timeout_ms: c_int) -> c_int;
2259}
2260pub type rd_kafka_plugin_f_conf_init_t = Option<
2261    unsafe extern "C" fn(
2262        conf: *mut rd_kafka_conf_t,
2263        plug_opaquep: *mut *mut c_void,
2264        errstr: *mut c_char,
2265        errstr_size: usize,
2266    ) -> rd_kafka_resp_err_t,
2267>;
2268pub type rd_kafka_interceptor_f_on_conf_set_t = Option<
2269    unsafe extern "C" fn(
2270        conf: *mut rd_kafka_conf_t,
2271        name: *const c_char,
2272        val: *const c_char,
2273        errstr: *mut c_char,
2274        errstr_size: usize,
2275        ic_opaque: *mut c_void,
2276    ) -> rd_kafka_conf_res_t,
2277>;
2278pub type rd_kafka_interceptor_f_on_conf_dup_t = Option<
2279    unsafe extern "C" fn(
2280        new_conf: *mut rd_kafka_conf_t,
2281        old_conf: *const rd_kafka_conf_t,
2282        filter_cnt: usize,
2283        filter: *mut *const c_char,
2284        ic_opaque: *mut c_void,
2285    ) -> rd_kafka_resp_err_t,
2286>;
2287pub type rd_kafka_interceptor_f_on_conf_destroy_t =
2288    Option<unsafe extern "C" fn(ic_opaque: *mut c_void) -> rd_kafka_resp_err_t>;
2289pub type rd_kafka_interceptor_f_on_new_t = Option<
2290    unsafe extern "C" fn(
2291        rk: *mut rd_kafka_t,
2292        conf: *const rd_kafka_conf_t,
2293        ic_opaque: *mut c_void,
2294        errstr: *mut c_char,
2295        errstr_size: usize,
2296    ) -> rd_kafka_resp_err_t,
2297>;
2298pub type rd_kafka_interceptor_f_on_destroy_t = Option<
2299    unsafe extern "C" fn(rk: *mut rd_kafka_t, ic_opaque: *mut c_void) -> rd_kafka_resp_err_t,
2300>;
2301pub type rd_kafka_interceptor_f_on_send_t = Option<
2302    unsafe extern "C" fn(
2303        rk: *mut rd_kafka_t,
2304        rkmessage: *mut rd_kafka_message_t,
2305        ic_opaque: *mut c_void,
2306    ) -> rd_kafka_resp_err_t,
2307>;
2308pub type rd_kafka_interceptor_f_on_acknowledgement_t = Option<
2309    unsafe extern "C" fn(
2310        rk: *mut rd_kafka_t,
2311        rkmessage: *mut rd_kafka_message_t,
2312        ic_opaque: *mut c_void,
2313    ) -> rd_kafka_resp_err_t,
2314>;
2315pub type rd_kafka_interceptor_f_on_consume_t = Option<
2316    unsafe extern "C" fn(
2317        rk: *mut rd_kafka_t,
2318        rkmessage: *mut rd_kafka_message_t,
2319        ic_opaque: *mut c_void,
2320    ) -> rd_kafka_resp_err_t,
2321>;
2322pub type rd_kafka_interceptor_f_on_commit_t = Option<
2323    unsafe extern "C" fn(
2324        rk: *mut rd_kafka_t,
2325        offsets: *const rd_kafka_topic_partition_list_t,
2326        err: rd_kafka_resp_err_t,
2327        ic_opaque: *mut c_void,
2328    ) -> rd_kafka_resp_err_t,
2329>;
2330pub type rd_kafka_interceptor_f_on_request_sent_t = Option<
2331    unsafe extern "C" fn(
2332        rk: *mut rd_kafka_t,
2333        sockfd: c_int,
2334        brokername: *const c_char,
2335        brokerid: i32,
2336        ApiKey: i16,
2337        ApiVersion: i16,
2338        CorrId: i32,
2339        size: usize,
2340        ic_opaque: *mut c_void,
2341    ) -> rd_kafka_resp_err_t,
2342>;
2343pub type rd_kafka_interceptor_f_on_response_received_t = Option<
2344    unsafe extern "C" fn(
2345        rk: *mut rd_kafka_t,
2346        sockfd: c_int,
2347        brokername: *const c_char,
2348        brokerid: i32,
2349        ApiKey: i16,
2350        ApiVersion: i16,
2351        CorrId: i32,
2352        size: usize,
2353        rtt: i64,
2354        err: rd_kafka_resp_err_t,
2355        ic_opaque: *mut c_void,
2356    ) -> rd_kafka_resp_err_t,
2357>;
2358pub type rd_kafka_interceptor_f_on_thread_start_t = Option<
2359    unsafe extern "C" fn(
2360        rk: *mut rd_kafka_t,
2361        thread_type: rd_kafka_thread_type_t,
2362        thread_name: *const c_char,
2363        ic_opaque: *mut c_void,
2364    ) -> rd_kafka_resp_err_t,
2365>;
2366pub type rd_kafka_interceptor_f_on_thread_exit_t = Option<
2367    unsafe extern "C" fn(
2368        rk: *mut rd_kafka_t,
2369        thread_type: rd_kafka_thread_type_t,
2370        thread_name: *const c_char,
2371        ic_opaque: *mut c_void,
2372    ) -> rd_kafka_resp_err_t,
2373>;
2374pub type rd_kafka_interceptor_f_on_broker_state_change_t = Option<
2375    unsafe extern "C" fn(
2376        rk: *mut rd_kafka_t,
2377        broker_id: i32,
2378        secproto: *const c_char,
2379        name: *const c_char,
2380        port: c_int,
2381        state: *const c_char,
2382        ic_opaque: *mut c_void,
2383    ) -> rd_kafka_resp_err_t,
2384>;
2385unsafe extern "C" {
2386    pub fn rd_kafka_conf_interceptor_add_on_conf_set(
2387        conf: *mut rd_kafka_conf_t,
2388        ic_name: *const c_char,
2389        on_conf_set: rd_kafka_interceptor_f_on_conf_set_t,
2390        ic_opaque: *mut c_void,
2391    ) -> rd_kafka_resp_err_t;
2392}
2393unsafe extern "C" {
2394    pub fn rd_kafka_conf_interceptor_add_on_conf_dup(
2395        conf: *mut rd_kafka_conf_t,
2396        ic_name: *const c_char,
2397        on_conf_dup: rd_kafka_interceptor_f_on_conf_dup_t,
2398        ic_opaque: *mut c_void,
2399    ) -> rd_kafka_resp_err_t;
2400}
2401unsafe extern "C" {
2402    pub fn rd_kafka_conf_interceptor_add_on_conf_destroy(
2403        conf: *mut rd_kafka_conf_t,
2404        ic_name: *const c_char,
2405        on_conf_destroy: rd_kafka_interceptor_f_on_conf_destroy_t,
2406        ic_opaque: *mut c_void,
2407    ) -> rd_kafka_resp_err_t;
2408}
2409unsafe extern "C" {
2410    pub fn rd_kafka_conf_interceptor_add_on_new(
2411        conf: *mut rd_kafka_conf_t,
2412        ic_name: *const c_char,
2413        on_new: rd_kafka_interceptor_f_on_new_t,
2414        ic_opaque: *mut c_void,
2415    ) -> rd_kafka_resp_err_t;
2416}
2417unsafe extern "C" {
2418    pub fn rd_kafka_interceptor_add_on_destroy(
2419        rk: *mut rd_kafka_t,
2420        ic_name: *const c_char,
2421        on_destroy: rd_kafka_interceptor_f_on_destroy_t,
2422        ic_opaque: *mut c_void,
2423    ) -> rd_kafka_resp_err_t;
2424}
2425unsafe extern "C" {
2426    pub fn rd_kafka_interceptor_add_on_send(
2427        rk: *mut rd_kafka_t,
2428        ic_name: *const c_char,
2429        on_send: rd_kafka_interceptor_f_on_send_t,
2430        ic_opaque: *mut c_void,
2431    ) -> rd_kafka_resp_err_t;
2432}
2433unsafe extern "C" {
2434    pub fn rd_kafka_interceptor_add_on_acknowledgement(
2435        rk: *mut rd_kafka_t,
2436        ic_name: *const c_char,
2437        on_acknowledgement: rd_kafka_interceptor_f_on_acknowledgement_t,
2438        ic_opaque: *mut c_void,
2439    ) -> rd_kafka_resp_err_t;
2440}
2441unsafe extern "C" {
2442    pub fn rd_kafka_interceptor_add_on_consume(
2443        rk: *mut rd_kafka_t,
2444        ic_name: *const c_char,
2445        on_consume: rd_kafka_interceptor_f_on_consume_t,
2446        ic_opaque: *mut c_void,
2447    ) -> rd_kafka_resp_err_t;
2448}
2449unsafe extern "C" {
2450    pub fn rd_kafka_interceptor_add_on_commit(
2451        rk: *mut rd_kafka_t,
2452        ic_name: *const c_char,
2453        on_commit: rd_kafka_interceptor_f_on_commit_t,
2454        ic_opaque: *mut c_void,
2455    ) -> rd_kafka_resp_err_t;
2456}
2457unsafe extern "C" {
2458    pub fn rd_kafka_interceptor_add_on_request_sent(
2459        rk: *mut rd_kafka_t,
2460        ic_name: *const c_char,
2461        on_request_sent: rd_kafka_interceptor_f_on_request_sent_t,
2462        ic_opaque: *mut c_void,
2463    ) -> rd_kafka_resp_err_t;
2464}
2465unsafe extern "C" {
2466    pub fn rd_kafka_interceptor_add_on_response_received(
2467        rk: *mut rd_kafka_t,
2468        ic_name: *const c_char,
2469        on_response_received: rd_kafka_interceptor_f_on_response_received_t,
2470        ic_opaque: *mut c_void,
2471    ) -> rd_kafka_resp_err_t;
2472}
2473unsafe extern "C" {
2474    pub fn rd_kafka_interceptor_add_on_thread_start(
2475        rk: *mut rd_kafka_t,
2476        ic_name: *const c_char,
2477        on_thread_start: rd_kafka_interceptor_f_on_thread_start_t,
2478        ic_opaque: *mut c_void,
2479    ) -> rd_kafka_resp_err_t;
2480}
2481unsafe extern "C" {
2482    pub fn rd_kafka_interceptor_add_on_thread_exit(
2483        rk: *mut rd_kafka_t,
2484        ic_name: *const c_char,
2485        on_thread_exit: rd_kafka_interceptor_f_on_thread_exit_t,
2486        ic_opaque: *mut c_void,
2487    ) -> rd_kafka_resp_err_t;
2488}
2489unsafe extern "C" {
2490    pub fn rd_kafka_interceptor_add_on_broker_state_change(
2491        rk: *mut rd_kafka_t,
2492        ic_name: *const c_char,
2493        on_broker_state_change: rd_kafka_interceptor_f_on_broker_state_change_t,
2494        ic_opaque: *mut c_void,
2495    ) -> rd_kafka_resp_err_t;
2496}
2497unsafe extern "C" {
2498    pub fn rd_kafka_topic_result_error(
2499        topicres: *const rd_kafka_topic_result_t,
2500    ) -> rd_kafka_resp_err_t;
2501}
2502unsafe extern "C" {
2503    pub fn rd_kafka_topic_result_error_string(
2504        topicres: *const rd_kafka_topic_result_t,
2505    ) -> *const c_char;
2506}
2507unsafe extern "C" {
2508    pub fn rd_kafka_topic_result_name(topicres: *const rd_kafka_topic_result_t) -> *const c_char;
2509}
2510unsafe extern "C" {
2511    pub fn rd_kafka_group_result_error(
2512        groupres: *const rd_kafka_group_result_t,
2513    ) -> *const rd_kafka_error_t;
2514}
2515unsafe extern "C" {
2516    pub fn rd_kafka_group_result_name(groupres: *const rd_kafka_group_result_t) -> *const c_char;
2517}
2518unsafe extern "C" {
2519    pub fn rd_kafka_group_result_partitions(
2520        groupres: *const rd_kafka_group_result_t,
2521    ) -> *const rd_kafka_topic_partition_list_t;
2522}
2523unsafe extern "C" {
2524    pub fn rd_kafka_topic_partition_result_partition(
2525        partition_result: *const rd_kafka_topic_partition_result_t,
2526    ) -> *const rd_kafka_topic_partition_t;
2527}
2528unsafe extern "C" {
2529    pub fn rd_kafka_topic_partition_result_error(
2530        partition_result: *const rd_kafka_topic_partition_result_t,
2531    ) -> *const rd_kafka_error_t;
2532}
2533#[repr(u32)]
2534#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2535pub enum rd_kafka_admin_op_t {
2536    RD_KAFKA_ADMIN_OP_ANY = 0,
2537    RD_KAFKA_ADMIN_OP_CREATETOPICS = 1,
2538    RD_KAFKA_ADMIN_OP_DELETETOPICS = 2,
2539    RD_KAFKA_ADMIN_OP_CREATEPARTITIONS = 3,
2540    RD_KAFKA_ADMIN_OP_ALTERCONFIGS = 4,
2541    RD_KAFKA_ADMIN_OP_DESCRIBECONFIGS = 5,
2542    RD_KAFKA_ADMIN_OP_DELETERECORDS = 6,
2543    RD_KAFKA_ADMIN_OP_DELETEGROUPS = 7,
2544    RD_KAFKA_ADMIN_OP_DELETECONSUMERGROUPOFFSETS = 8,
2545    RD_KAFKA_ADMIN_OP_CREATEACLS = 9,
2546    RD_KAFKA_ADMIN_OP_DESCRIBEACLS = 10,
2547    RD_KAFKA_ADMIN_OP_DELETEACLS = 11,
2548    RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPS = 12,
2549    RD_KAFKA_ADMIN_OP_DESCRIBECONSUMERGROUPS = 13,
2550    RD_KAFKA_ADMIN_OP_LISTCONSUMERGROUPOFFSETS = 14,
2551    RD_KAFKA_ADMIN_OP_ALTERCONSUMERGROUPOFFSETS = 15,
2552    RD_KAFKA_ADMIN_OP_INCREMENTALALTERCONFIGS = 16,
2553    RD_KAFKA_ADMIN_OP_DESCRIBEUSERSCRAMCREDENTIALS = 17,
2554    RD_KAFKA_ADMIN_OP_ALTERUSERSCRAMCREDENTIALS = 18,
2555    RD_KAFKA_ADMIN_OP_DESCRIBETOPICS = 19,
2556    RD_KAFKA_ADMIN_OP_DESCRIBECLUSTER = 20,
2557    RD_KAFKA_ADMIN_OP_LISTOFFSETS = 21,
2558    RD_KAFKA_ADMIN_OP_ELECTLEADERS = 22,
2559    RD_KAFKA_ADMIN_OP__CNT = 23,
2560}
2561#[repr(C)]
2562#[derive(Debug)]
2563pub struct rd_kafka_AdminOptions_s {
2564    _unused: [u8; 0],
2565}
2566pub type rd_kafka_AdminOptions_t = rd_kafka_AdminOptions_s;
2567#[repr(u32)]
2568#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2569pub enum rd_kafka_IsolationLevel_t {
2570    RD_KAFKA_ISOLATION_LEVEL_READ_UNCOMMITTED = 0,
2571    RD_KAFKA_ISOLATION_LEVEL_READ_COMMITTED = 1,
2572}
2573unsafe extern "C" {
2574    pub fn rd_kafka_AdminOptions_new(
2575        rk: *mut rd_kafka_t,
2576        for_api: rd_kafka_admin_op_t,
2577    ) -> *mut rd_kafka_AdminOptions_t;
2578}
2579unsafe extern "C" {
2580    pub fn rd_kafka_AdminOptions_destroy(options: *mut rd_kafka_AdminOptions_t);
2581}
2582unsafe extern "C" {
2583    pub fn rd_kafka_AdminOptions_set_request_timeout(
2584        options: *mut rd_kafka_AdminOptions_t,
2585        timeout_ms: c_int,
2586        errstr: *mut c_char,
2587        errstr_size: usize,
2588    ) -> rd_kafka_resp_err_t;
2589}
2590unsafe extern "C" {
2591    pub fn rd_kafka_AdminOptions_set_operation_timeout(
2592        options: *mut rd_kafka_AdminOptions_t,
2593        timeout_ms: c_int,
2594        errstr: *mut c_char,
2595        errstr_size: usize,
2596    ) -> rd_kafka_resp_err_t;
2597}
2598unsafe extern "C" {
2599    pub fn rd_kafka_AdminOptions_set_validate_only(
2600        options: *mut rd_kafka_AdminOptions_t,
2601        true_or_false: c_int,
2602        errstr: *mut c_char,
2603        errstr_size: usize,
2604    ) -> rd_kafka_resp_err_t;
2605}
2606unsafe extern "C" {
2607    pub fn rd_kafka_AdminOptions_set_broker(
2608        options: *mut rd_kafka_AdminOptions_t,
2609        broker_id: i32,
2610        errstr: *mut c_char,
2611        errstr_size: usize,
2612    ) -> rd_kafka_resp_err_t;
2613}
2614unsafe extern "C" {
2615    pub fn rd_kafka_AdminOptions_set_require_stable_offsets(
2616        options: *mut rd_kafka_AdminOptions_t,
2617        true_or_false: c_int,
2618    ) -> *mut rd_kafka_error_t;
2619}
2620unsafe extern "C" {
2621    pub fn rd_kafka_AdminOptions_set_include_authorized_operations(
2622        options: *mut rd_kafka_AdminOptions_t,
2623        true_or_false: c_int,
2624    ) -> *mut rd_kafka_error_t;
2625}
2626unsafe extern "C" {
2627    pub fn rd_kafka_AdminOptions_set_match_consumer_group_states(
2628        options: *mut rd_kafka_AdminOptions_t,
2629        consumer_group_states: *const rd_kafka_consumer_group_state_t,
2630        consumer_group_states_cnt: usize,
2631    ) -> *mut rd_kafka_error_t;
2632}
2633unsafe extern "C" {
2634    pub fn rd_kafka_AdminOptions_set_match_consumer_group_types(
2635        options: *mut rd_kafka_AdminOptions_t,
2636        consumer_group_types: *const rd_kafka_consumer_group_type_t,
2637        consumer_group_types_cnt: usize,
2638    ) -> *mut rd_kafka_error_t;
2639}
2640unsafe extern "C" {
2641    pub fn rd_kafka_AdminOptions_set_isolation_level(
2642        options: *mut rd_kafka_AdminOptions_t,
2643        value: rd_kafka_IsolationLevel_t,
2644    ) -> *mut rd_kafka_error_t;
2645}
2646unsafe extern "C" {
2647    pub fn rd_kafka_AdminOptions_set_opaque(
2648        options: *mut rd_kafka_AdminOptions_t,
2649        ev_opaque: *mut c_void,
2650    );
2651}
2652#[repr(u32)]
2653#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2654pub enum rd_kafka_AclOperation_t {
2655    RD_KAFKA_ACL_OPERATION_UNKNOWN = 0,
2656    RD_KAFKA_ACL_OPERATION_ANY = 1,
2657    RD_KAFKA_ACL_OPERATION_ALL = 2,
2658    RD_KAFKA_ACL_OPERATION_READ = 3,
2659    RD_KAFKA_ACL_OPERATION_WRITE = 4,
2660    RD_KAFKA_ACL_OPERATION_CREATE = 5,
2661    RD_KAFKA_ACL_OPERATION_DELETE = 6,
2662    RD_KAFKA_ACL_OPERATION_ALTER = 7,
2663    RD_KAFKA_ACL_OPERATION_DESCRIBE = 8,
2664    RD_KAFKA_ACL_OPERATION_CLUSTER_ACTION = 9,
2665    RD_KAFKA_ACL_OPERATION_DESCRIBE_CONFIGS = 10,
2666    RD_KAFKA_ACL_OPERATION_ALTER_CONFIGS = 11,
2667    RD_KAFKA_ACL_OPERATION_IDEMPOTENT_WRITE = 12,
2668    RD_KAFKA_ACL_OPERATION__CNT = 13,
2669}
2670#[repr(C)]
2671#[derive(Debug)]
2672pub struct rd_kafka_NewTopic_s {
2673    _unused: [u8; 0],
2674}
2675pub type rd_kafka_NewTopic_t = rd_kafka_NewTopic_s;
2676unsafe extern "C" {
2677    pub fn rd_kafka_NewTopic_new(
2678        topic: *const c_char,
2679        num_partitions: c_int,
2680        replication_factor: c_int,
2681        errstr: *mut c_char,
2682        errstr_size: usize,
2683    ) -> *mut rd_kafka_NewTopic_t;
2684}
2685unsafe extern "C" {
2686    pub fn rd_kafka_NewTopic_destroy(new_topic: *mut rd_kafka_NewTopic_t);
2687}
2688unsafe extern "C" {
2689    pub fn rd_kafka_NewTopic_destroy_array(
2690        new_topics: *mut *mut rd_kafka_NewTopic_t,
2691        new_topic_cnt: usize,
2692    );
2693}
2694unsafe extern "C" {
2695    pub fn rd_kafka_NewTopic_set_replica_assignment(
2696        new_topic: *mut rd_kafka_NewTopic_t,
2697        partition: i32,
2698        broker_ids: *mut i32,
2699        broker_id_cnt: usize,
2700        errstr: *mut c_char,
2701        errstr_size: usize,
2702    ) -> rd_kafka_resp_err_t;
2703}
2704unsafe extern "C" {
2705    pub fn rd_kafka_NewTopic_set_config(
2706        new_topic: *mut rd_kafka_NewTopic_t,
2707        name: *const c_char,
2708        value: *const c_char,
2709    ) -> rd_kafka_resp_err_t;
2710}
2711unsafe extern "C" {
2712    pub fn rd_kafka_CreateTopics(
2713        rk: *mut rd_kafka_t,
2714        new_topics: *mut *mut rd_kafka_NewTopic_t,
2715        new_topic_cnt: usize,
2716        options: *const rd_kafka_AdminOptions_t,
2717        rkqu: *mut rd_kafka_queue_t,
2718    );
2719}
2720unsafe extern "C" {
2721    pub fn rd_kafka_CreateTopics_result_topics(
2722        result: *const rd_kafka_CreateTopics_result_t,
2723        cntp: *mut usize,
2724    ) -> *mut *const rd_kafka_topic_result_t;
2725}
2726#[repr(C)]
2727#[derive(Debug)]
2728pub struct rd_kafka_DeleteTopic_s {
2729    _unused: [u8; 0],
2730}
2731pub type rd_kafka_DeleteTopic_t = rd_kafka_DeleteTopic_s;
2732unsafe extern "C" {
2733    pub fn rd_kafka_DeleteTopic_new(topic: *const c_char) -> *mut rd_kafka_DeleteTopic_t;
2734}
2735unsafe extern "C" {
2736    pub fn rd_kafka_DeleteTopic_destroy(del_topic: *mut rd_kafka_DeleteTopic_t);
2737}
2738unsafe extern "C" {
2739    pub fn rd_kafka_DeleteTopic_destroy_array(
2740        del_topics: *mut *mut rd_kafka_DeleteTopic_t,
2741        del_topic_cnt: usize,
2742    );
2743}
2744unsafe extern "C" {
2745    pub fn rd_kafka_DeleteTopics(
2746        rk: *mut rd_kafka_t,
2747        del_topics: *mut *mut rd_kafka_DeleteTopic_t,
2748        del_topic_cnt: usize,
2749        options: *const rd_kafka_AdminOptions_t,
2750        rkqu: *mut rd_kafka_queue_t,
2751    );
2752}
2753unsafe extern "C" {
2754    pub fn rd_kafka_DeleteTopics_result_topics(
2755        result: *const rd_kafka_DeleteTopics_result_t,
2756        cntp: *mut usize,
2757    ) -> *mut *const rd_kafka_topic_result_t;
2758}
2759#[repr(C)]
2760#[derive(Debug)]
2761pub struct rd_kafka_NewPartitions_s {
2762    _unused: [u8; 0],
2763}
2764pub type rd_kafka_NewPartitions_t = rd_kafka_NewPartitions_s;
2765unsafe extern "C" {
2766    pub fn rd_kafka_NewPartitions_new(
2767        topic: *const c_char,
2768        new_total_cnt: usize,
2769        errstr: *mut c_char,
2770        errstr_size: usize,
2771    ) -> *mut rd_kafka_NewPartitions_t;
2772}
2773unsafe extern "C" {
2774    pub fn rd_kafka_NewPartitions_destroy(new_parts: *mut rd_kafka_NewPartitions_t);
2775}
2776unsafe extern "C" {
2777    pub fn rd_kafka_NewPartitions_destroy_array(
2778        new_parts: *mut *mut rd_kafka_NewPartitions_t,
2779        new_parts_cnt: usize,
2780    );
2781}
2782unsafe extern "C" {
2783    pub fn rd_kafka_NewPartitions_set_replica_assignment(
2784        new_parts: *mut rd_kafka_NewPartitions_t,
2785        new_partition_idx: i32,
2786        broker_ids: *mut i32,
2787        broker_id_cnt: usize,
2788        errstr: *mut c_char,
2789        errstr_size: usize,
2790    ) -> rd_kafka_resp_err_t;
2791}
2792unsafe extern "C" {
2793    pub fn rd_kafka_CreatePartitions(
2794        rk: *mut rd_kafka_t,
2795        new_parts: *mut *mut rd_kafka_NewPartitions_t,
2796        new_parts_cnt: usize,
2797        options: *const rd_kafka_AdminOptions_t,
2798        rkqu: *mut rd_kafka_queue_t,
2799    );
2800}
2801unsafe extern "C" {
2802    pub fn rd_kafka_CreatePartitions_result_topics(
2803        result: *const rd_kafka_CreatePartitions_result_t,
2804        cntp: *mut usize,
2805    ) -> *mut *const rd_kafka_topic_result_t;
2806}
2807#[repr(u32)]
2808#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2809pub enum rd_kafka_ConfigSource_t {
2810    RD_KAFKA_CONFIG_SOURCE_UNKNOWN_CONFIG = 0,
2811    RD_KAFKA_CONFIG_SOURCE_DYNAMIC_TOPIC_CONFIG = 1,
2812    RD_KAFKA_CONFIG_SOURCE_DYNAMIC_BROKER_CONFIG = 2,
2813    RD_KAFKA_CONFIG_SOURCE_DYNAMIC_DEFAULT_BROKER_CONFIG = 3,
2814    RD_KAFKA_CONFIG_SOURCE_STATIC_BROKER_CONFIG = 4,
2815    RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5,
2816    RD_KAFKA_CONFIG_SOURCE_GROUP_CONFIG = 8,
2817    RD_KAFKA_CONFIG_SOURCE__CNT = 9,
2818}
2819unsafe extern "C" {
2820    pub fn rd_kafka_ConfigSource_name(confsource: rd_kafka_ConfigSource_t) -> *const c_char;
2821}
2822#[repr(C)]
2823#[derive(Debug)]
2824pub struct rd_kafka_ConfigEntry_s {
2825    _unused: [u8; 0],
2826}
2827pub type rd_kafka_ConfigEntry_t = rd_kafka_ConfigEntry_s;
2828unsafe extern "C" {
2829    pub fn rd_kafka_ConfigEntry_name(entry: *const rd_kafka_ConfigEntry_t) -> *const c_char;
2830}
2831unsafe extern "C" {
2832    pub fn rd_kafka_ConfigEntry_value(entry: *const rd_kafka_ConfigEntry_t) -> *const c_char;
2833}
2834unsafe extern "C" {
2835    pub fn rd_kafka_ConfigEntry_source(
2836        entry: *const rd_kafka_ConfigEntry_t,
2837    ) -> rd_kafka_ConfigSource_t;
2838}
2839unsafe extern "C" {
2840    pub fn rd_kafka_ConfigEntry_is_read_only(entry: *const rd_kafka_ConfigEntry_t) -> c_int;
2841}
2842unsafe extern "C" {
2843    pub fn rd_kafka_ConfigEntry_is_default(entry: *const rd_kafka_ConfigEntry_t) -> c_int;
2844}
2845unsafe extern "C" {
2846    pub fn rd_kafka_ConfigEntry_is_sensitive(entry: *const rd_kafka_ConfigEntry_t) -> c_int;
2847}
2848unsafe extern "C" {
2849    pub fn rd_kafka_ConfigEntry_is_synonym(entry: *const rd_kafka_ConfigEntry_t) -> c_int;
2850}
2851unsafe extern "C" {
2852    pub fn rd_kafka_ConfigEntry_synonyms(
2853        entry: *const rd_kafka_ConfigEntry_t,
2854        cntp: *mut usize,
2855    ) -> *mut *const rd_kafka_ConfigEntry_t;
2856}
2857#[repr(u32)]
2858#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2859pub enum rd_kafka_ResourceType_t {
2860    RD_KAFKA_RESOURCE_UNKNOWN = 0,
2861    RD_KAFKA_RESOURCE_ANY = 1,
2862    RD_KAFKA_RESOURCE_TOPIC = 2,
2863    RD_KAFKA_RESOURCE_GROUP = 3,
2864    RD_KAFKA_RESOURCE_BROKER = 4,
2865    RD_KAFKA_RESOURCE_TRANSACTIONAL_ID = 5,
2866    RD_KAFKA_RESOURCE__CNT = 6,
2867}
2868#[repr(u32)]
2869#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2870pub enum rd_kafka_ResourcePatternType_t {
2871    RD_KAFKA_RESOURCE_PATTERN_UNKNOWN = 0,
2872    RD_KAFKA_RESOURCE_PATTERN_ANY = 1,
2873    RD_KAFKA_RESOURCE_PATTERN_MATCH = 2,
2874    RD_KAFKA_RESOURCE_PATTERN_LITERAL = 3,
2875    RD_KAFKA_RESOURCE_PATTERN_PREFIXED = 4,
2876    RD_KAFKA_RESOURCE_PATTERN_TYPE__CNT = 5,
2877}
2878#[repr(u32)]
2879#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2880pub enum rd_kafka_AlterConfigOpType_t {
2881    RD_KAFKA_ALTER_CONFIG_OP_TYPE_SET = 0,
2882    RD_KAFKA_ALTER_CONFIG_OP_TYPE_DELETE = 1,
2883    RD_KAFKA_ALTER_CONFIG_OP_TYPE_APPEND = 2,
2884    RD_KAFKA_ALTER_CONFIG_OP_TYPE_SUBTRACT = 3,
2885    RD_KAFKA_ALTER_CONFIG_OP_TYPE__CNT = 4,
2886}
2887unsafe extern "C" {
2888    pub fn rd_kafka_ResourcePatternType_name(
2889        resource_pattern_type: rd_kafka_ResourcePatternType_t,
2890    ) -> *const c_char;
2891}
2892unsafe extern "C" {
2893    pub fn rd_kafka_ResourceType_name(restype: rd_kafka_ResourceType_t) -> *const c_char;
2894}
2895#[repr(C)]
2896#[derive(Debug)]
2897pub struct rd_kafka_ConfigResource_s {
2898    _unused: [u8; 0],
2899}
2900pub type rd_kafka_ConfigResource_t = rd_kafka_ConfigResource_s;
2901unsafe extern "C" {
2902    pub fn rd_kafka_ConfigResource_new(
2903        restype: rd_kafka_ResourceType_t,
2904        resname: *const c_char,
2905    ) -> *mut rd_kafka_ConfigResource_t;
2906}
2907unsafe extern "C" {
2908    pub fn rd_kafka_ConfigResource_destroy(config: *mut rd_kafka_ConfigResource_t);
2909}
2910unsafe extern "C" {
2911    pub fn rd_kafka_ConfigResource_destroy_array(
2912        config: *mut *mut rd_kafka_ConfigResource_t,
2913        config_cnt: usize,
2914    );
2915}
2916unsafe extern "C" {
2917    pub fn rd_kafka_ConfigResource_set_config(
2918        config: *mut rd_kafka_ConfigResource_t,
2919        name: *const c_char,
2920        value: *const c_char,
2921    ) -> rd_kafka_resp_err_t;
2922}
2923unsafe extern "C" {
2924    pub fn rd_kafka_ConfigResource_add_incremental_config(
2925        config: *mut rd_kafka_ConfigResource_t,
2926        name: *const c_char,
2927        op_type: rd_kafka_AlterConfigOpType_t,
2928        value: *const c_char,
2929    ) -> *mut rd_kafka_error_t;
2930}
2931unsafe extern "C" {
2932    pub fn rd_kafka_ConfigResource_configs(
2933        config: *const rd_kafka_ConfigResource_t,
2934        cntp: *mut usize,
2935    ) -> *mut *const rd_kafka_ConfigEntry_t;
2936}
2937unsafe extern "C" {
2938    pub fn rd_kafka_ConfigResource_type(
2939        config: *const rd_kafka_ConfigResource_t,
2940    ) -> rd_kafka_ResourceType_t;
2941}
2942unsafe extern "C" {
2943    pub fn rd_kafka_ConfigResource_name(config: *const rd_kafka_ConfigResource_t) -> *const c_char;
2944}
2945unsafe extern "C" {
2946    pub fn rd_kafka_ConfigResource_error(
2947        config: *const rd_kafka_ConfigResource_t,
2948    ) -> rd_kafka_resp_err_t;
2949}
2950unsafe extern "C" {
2951    pub fn rd_kafka_ConfigResource_error_string(
2952        config: *const rd_kafka_ConfigResource_t,
2953    ) -> *const c_char;
2954}
2955unsafe extern "C" {
2956    pub fn rd_kafka_AlterConfigs(
2957        rk: *mut rd_kafka_t,
2958        configs: *mut *mut rd_kafka_ConfigResource_t,
2959        config_cnt: usize,
2960        options: *const rd_kafka_AdminOptions_t,
2961        rkqu: *mut rd_kafka_queue_t,
2962    );
2963}
2964unsafe extern "C" {
2965    pub fn rd_kafka_AlterConfigs_result_resources(
2966        result: *const rd_kafka_AlterConfigs_result_t,
2967        cntp: *mut usize,
2968    ) -> *mut *const rd_kafka_ConfigResource_t;
2969}
2970unsafe extern "C" {
2971    pub fn rd_kafka_IncrementalAlterConfigs(
2972        rk: *mut rd_kafka_t,
2973        configs: *mut *mut rd_kafka_ConfigResource_t,
2974        config_cnt: usize,
2975        options: *const rd_kafka_AdminOptions_t,
2976        rkqu: *mut rd_kafka_queue_t,
2977    );
2978}
2979unsafe extern "C" {
2980    pub fn rd_kafka_IncrementalAlterConfigs_result_resources(
2981        result: *const rd_kafka_IncrementalAlterConfigs_result_t,
2982        cntp: *mut usize,
2983    ) -> *mut *const rd_kafka_ConfigResource_t;
2984}
2985unsafe extern "C" {
2986    pub fn rd_kafka_DescribeConfigs(
2987        rk: *mut rd_kafka_t,
2988        configs: *mut *mut rd_kafka_ConfigResource_t,
2989        config_cnt: usize,
2990        options: *const rd_kafka_AdminOptions_t,
2991        rkqu: *mut rd_kafka_queue_t,
2992    );
2993}
2994unsafe extern "C" {
2995    pub fn rd_kafka_DescribeConfigs_result_resources(
2996        result: *const rd_kafka_DescribeConfigs_result_t,
2997        cntp: *mut usize,
2998    ) -> *mut *const rd_kafka_ConfigResource_t;
2999}
3000#[repr(C)]
3001#[derive(Debug)]
3002pub struct rd_kafka_DeleteRecords_s {
3003    _unused: [u8; 0],
3004}
3005pub type rd_kafka_DeleteRecords_t = rd_kafka_DeleteRecords_s;
3006unsafe extern "C" {
3007    pub fn rd_kafka_DeleteRecords_new(
3008        before_offsets: *const rd_kafka_topic_partition_list_t,
3009    ) -> *mut rd_kafka_DeleteRecords_t;
3010}
3011unsafe extern "C" {
3012    pub fn rd_kafka_DeleteRecords_destroy(del_records: *mut rd_kafka_DeleteRecords_t);
3013}
3014unsafe extern "C" {
3015    pub fn rd_kafka_DeleteRecords_destroy_array(
3016        del_records: *mut *mut rd_kafka_DeleteRecords_t,
3017        del_record_cnt: usize,
3018    );
3019}
3020unsafe extern "C" {
3021    pub fn rd_kafka_DeleteRecords(
3022        rk: *mut rd_kafka_t,
3023        del_records: *mut *mut rd_kafka_DeleteRecords_t,
3024        del_record_cnt: usize,
3025        options: *const rd_kafka_AdminOptions_t,
3026        rkqu: *mut rd_kafka_queue_t,
3027    );
3028}
3029unsafe extern "C" {
3030    pub fn rd_kafka_DeleteRecords_result_offsets(
3031        result: *const rd_kafka_DeleteRecords_result_t,
3032    ) -> *const rd_kafka_topic_partition_list_t;
3033}
3034#[repr(C)]
3035#[derive(Debug)]
3036pub struct rd_kafka_TopicCollection_s {
3037    _unused: [u8; 0],
3038}
3039pub type rd_kafka_TopicCollection_t = rd_kafka_TopicCollection_s;
3040#[repr(C)]
3041#[derive(Debug)]
3042pub struct rd_kafka_TopicPartitionInfo_s {
3043    _unused: [u8; 0],
3044}
3045pub type rd_kafka_TopicPartitionInfo_t = rd_kafka_TopicPartitionInfo_s;
3046#[repr(C)]
3047#[derive(Debug)]
3048pub struct rd_kafka_TopicDescription_s {
3049    _unused: [u8; 0],
3050}
3051pub type rd_kafka_TopicDescription_t = rd_kafka_TopicDescription_s;
3052unsafe extern "C" {
3053    pub fn rd_kafka_TopicCollection_of_topic_names(
3054        topics: *mut *const c_char,
3055        topics_cnt: usize,
3056    ) -> *mut rd_kafka_TopicCollection_t;
3057}
3058unsafe extern "C" {
3059    pub fn rd_kafka_TopicCollection_destroy(topics: *mut rd_kafka_TopicCollection_t);
3060}
3061unsafe extern "C" {
3062    pub fn rd_kafka_DescribeTopics(
3063        rk: *mut rd_kafka_t,
3064        topics: *const rd_kafka_TopicCollection_t,
3065        options: *const rd_kafka_AdminOptions_t,
3066        rkqu: *mut rd_kafka_queue_t,
3067    );
3068}
3069unsafe extern "C" {
3070    pub fn rd_kafka_DescribeTopics_result_topics(
3071        result: *const rd_kafka_DescribeTopics_result_t,
3072        cntp: *mut usize,
3073    ) -> *mut *const rd_kafka_TopicDescription_t;
3074}
3075unsafe extern "C" {
3076    pub fn rd_kafka_TopicDescription_partitions(
3077        topicdesc: *const rd_kafka_TopicDescription_t,
3078        cntp: *mut usize,
3079    ) -> *mut *const rd_kafka_TopicPartitionInfo_t;
3080}
3081unsafe extern "C" {
3082    pub fn rd_kafka_TopicPartitionInfo_partition(
3083        partition: *const rd_kafka_TopicPartitionInfo_t,
3084    ) -> c_int;
3085}
3086unsafe extern "C" {
3087    pub fn rd_kafka_TopicPartitionInfo_leader(
3088        partition: *const rd_kafka_TopicPartitionInfo_t,
3089    ) -> *const rd_kafka_Node_t;
3090}
3091unsafe extern "C" {
3092    pub fn rd_kafka_TopicPartitionInfo_isr(
3093        partition: *const rd_kafka_TopicPartitionInfo_t,
3094        cntp: *mut usize,
3095    ) -> *mut *const rd_kafka_Node_t;
3096}
3097unsafe extern "C" {
3098    pub fn rd_kafka_TopicPartitionInfo_replicas(
3099        partition: *const rd_kafka_TopicPartitionInfo_t,
3100        cntp: *mut usize,
3101    ) -> *mut *const rd_kafka_Node_t;
3102}
3103unsafe extern "C" {
3104    pub fn rd_kafka_TopicDescription_authorized_operations(
3105        topicdesc: *const rd_kafka_TopicDescription_t,
3106        cntp: *mut usize,
3107    ) -> *const rd_kafka_AclOperation_t;
3108}
3109unsafe extern "C" {
3110    pub fn rd_kafka_TopicDescription_name(
3111        topicdesc: *const rd_kafka_TopicDescription_t,
3112    ) -> *const c_char;
3113}
3114unsafe extern "C" {
3115    pub fn rd_kafka_TopicDescription_topic_id(
3116        topicdesc: *const rd_kafka_TopicDescription_t,
3117    ) -> *const rd_kafka_Uuid_t;
3118}
3119unsafe extern "C" {
3120    pub fn rd_kafka_TopicDescription_is_internal(
3121        topicdesc: *const rd_kafka_TopicDescription_t,
3122    ) -> c_int;
3123}
3124unsafe extern "C" {
3125    pub fn rd_kafka_TopicDescription_error(
3126        topicdesc: *const rd_kafka_TopicDescription_t,
3127    ) -> *const rd_kafka_error_t;
3128}
3129unsafe extern "C" {
3130    pub fn rd_kafka_DescribeCluster(
3131        rk: *mut rd_kafka_t,
3132        options: *const rd_kafka_AdminOptions_t,
3133        rkqu: *mut rd_kafka_queue_t,
3134    );
3135}
3136unsafe extern "C" {
3137    pub fn rd_kafka_DescribeCluster_result_nodes(
3138        result: *const rd_kafka_DescribeCluster_result_t,
3139        cntp: *mut usize,
3140    ) -> *mut *const rd_kafka_Node_t;
3141}
3142unsafe extern "C" {
3143    pub fn rd_kafka_DescribeCluster_result_authorized_operations(
3144        result: *const rd_kafka_DescribeCluster_result_t,
3145        cntp: *mut usize,
3146    ) -> *const rd_kafka_AclOperation_t;
3147}
3148unsafe extern "C" {
3149    pub fn rd_kafka_DescribeCluster_result_controller(
3150        result: *const rd_kafka_DescribeCluster_result_t,
3151    ) -> *const rd_kafka_Node_t;
3152}
3153unsafe extern "C" {
3154    pub fn rd_kafka_DescribeCluster_result_cluster_id(
3155        result: *const rd_kafka_DescribeCluster_result_t,
3156    ) -> *const c_char;
3157}
3158#[repr(C)]
3159#[derive(Debug)]
3160pub struct rd_kafka_ConsumerGroupListing_s {
3161    _unused: [u8; 0],
3162}
3163pub type rd_kafka_ConsumerGroupListing_t = rd_kafka_ConsumerGroupListing_s;
3164#[repr(C)]
3165#[derive(Debug)]
3166pub struct rd_kafka_ListConsumerGroupsResult_s {
3167    _unused: [u8; 0],
3168}
3169pub type rd_kafka_ListConsumerGroupsResult_t = rd_kafka_ListConsumerGroupsResult_s;
3170unsafe extern "C" {
3171    pub fn rd_kafka_ListConsumerGroups(
3172        rk: *mut rd_kafka_t,
3173        options: *const rd_kafka_AdminOptions_t,
3174        rkqu: *mut rd_kafka_queue_t,
3175    );
3176}
3177unsafe extern "C" {
3178    pub fn rd_kafka_ConsumerGroupListing_group_id(
3179        grplist: *const rd_kafka_ConsumerGroupListing_t,
3180    ) -> *const c_char;
3181}
3182unsafe extern "C" {
3183    pub fn rd_kafka_ConsumerGroupListing_is_simple_consumer_group(
3184        grplist: *const rd_kafka_ConsumerGroupListing_t,
3185    ) -> c_int;
3186}
3187unsafe extern "C" {
3188    pub fn rd_kafka_ConsumerGroupListing_state(
3189        grplist: *const rd_kafka_ConsumerGroupListing_t,
3190    ) -> rd_kafka_consumer_group_state_t;
3191}
3192unsafe extern "C" {
3193    pub fn rd_kafka_ConsumerGroupListing_type(
3194        grplist: *const rd_kafka_ConsumerGroupListing_t,
3195    ) -> rd_kafka_consumer_group_type_t;
3196}
3197unsafe extern "C" {
3198    pub fn rd_kafka_ListConsumerGroups_result_valid(
3199        result: *const rd_kafka_ListConsumerGroups_result_t,
3200        cntp: *mut usize,
3201    ) -> *mut *const rd_kafka_ConsumerGroupListing_t;
3202}
3203unsafe extern "C" {
3204    pub fn rd_kafka_ListConsumerGroups_result_errors(
3205        result: *const rd_kafka_ListConsumerGroups_result_t,
3206        cntp: *mut usize,
3207    ) -> *mut *const rd_kafka_error_t;
3208}
3209#[repr(C)]
3210#[derive(Debug)]
3211pub struct rd_kafka_ConsumerGroupDescription_s {
3212    _unused: [u8; 0],
3213}
3214pub type rd_kafka_ConsumerGroupDescription_t = rd_kafka_ConsumerGroupDescription_s;
3215#[repr(C)]
3216#[derive(Debug)]
3217pub struct rd_kafka_MemberDescription_s {
3218    _unused: [u8; 0],
3219}
3220pub type rd_kafka_MemberDescription_t = rd_kafka_MemberDescription_s;
3221#[repr(C)]
3222#[derive(Debug)]
3223pub struct rd_kafka_MemberAssignment_s {
3224    _unused: [u8; 0],
3225}
3226pub type rd_kafka_MemberAssignment_t = rd_kafka_MemberAssignment_s;
3227unsafe extern "C" {
3228    pub fn rd_kafka_DescribeConsumerGroups(
3229        rk: *mut rd_kafka_t,
3230        groups: *mut *const c_char,
3231        groups_cnt: usize,
3232        options: *const rd_kafka_AdminOptions_t,
3233        rkqu: *mut rd_kafka_queue_t,
3234    );
3235}
3236unsafe extern "C" {
3237    pub fn rd_kafka_DescribeConsumerGroups_result_groups(
3238        result: *const rd_kafka_DescribeConsumerGroups_result_t,
3239        cntp: *mut usize,
3240    ) -> *mut *const rd_kafka_ConsumerGroupDescription_t;
3241}
3242unsafe extern "C" {
3243    pub fn rd_kafka_ConsumerGroupDescription_group_id(
3244        grpdesc: *const rd_kafka_ConsumerGroupDescription_t,
3245    ) -> *const c_char;
3246}
3247unsafe extern "C" {
3248    pub fn rd_kafka_ConsumerGroupDescription_error(
3249        grpdesc: *const rd_kafka_ConsumerGroupDescription_t,
3250    ) -> *const rd_kafka_error_t;
3251}
3252unsafe extern "C" {
3253    pub fn rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(
3254        grpdesc: *const rd_kafka_ConsumerGroupDescription_t,
3255    ) -> c_int;
3256}
3257unsafe extern "C" {
3258    pub fn rd_kafka_ConsumerGroupDescription_partition_assignor(
3259        grpdesc: *const rd_kafka_ConsumerGroupDescription_t,
3260    ) -> *const c_char;
3261}
3262unsafe extern "C" {
3263    pub fn rd_kafka_ConsumerGroupDescription_authorized_operations(
3264        grpdesc: *const rd_kafka_ConsumerGroupDescription_t,
3265        cntp: *mut usize,
3266    ) -> *const rd_kafka_AclOperation_t;
3267}
3268unsafe extern "C" {
3269    pub fn rd_kafka_ConsumerGroupDescription_state(
3270        grpdesc: *const rd_kafka_ConsumerGroupDescription_t,
3271    ) -> rd_kafka_consumer_group_state_t;
3272}
3273unsafe extern "C" {
3274    pub fn rd_kafka_ConsumerGroupDescription_coordinator(
3275        grpdesc: *const rd_kafka_ConsumerGroupDescription_t,
3276    ) -> *const rd_kafka_Node_t;
3277}
3278unsafe extern "C" {
3279    pub fn rd_kafka_ConsumerGroupDescription_type(
3280        grpdesc: *const rd_kafka_ConsumerGroupDescription_t,
3281    ) -> rd_kafka_consumer_group_type_t;
3282}
3283unsafe extern "C" {
3284    pub fn rd_kafka_ConsumerGroupDescription_member_count(
3285        grpdesc: *const rd_kafka_ConsumerGroupDescription_t,
3286    ) -> usize;
3287}
3288unsafe extern "C" {
3289    pub fn rd_kafka_ConsumerGroupDescription_member(
3290        grpdesc: *const rd_kafka_ConsumerGroupDescription_t,
3291        idx: usize,
3292    ) -> *const rd_kafka_MemberDescription_t;
3293}
3294unsafe extern "C" {
3295    pub fn rd_kafka_MemberDescription_client_id(
3296        member: *const rd_kafka_MemberDescription_t,
3297    ) -> *const c_char;
3298}
3299unsafe extern "C" {
3300    pub fn rd_kafka_MemberDescription_group_instance_id(
3301        member: *const rd_kafka_MemberDescription_t,
3302    ) -> *const c_char;
3303}
3304unsafe extern "C" {
3305    pub fn rd_kafka_MemberDescription_consumer_id(
3306        member: *const rd_kafka_MemberDescription_t,
3307    ) -> *const c_char;
3308}
3309unsafe extern "C" {
3310    pub fn rd_kafka_MemberDescription_host(
3311        member: *const rd_kafka_MemberDescription_t,
3312    ) -> *const c_char;
3313}
3314unsafe extern "C" {
3315    pub fn rd_kafka_MemberDescription_assignment(
3316        member: *const rd_kafka_MemberDescription_t,
3317    ) -> *const rd_kafka_MemberAssignment_t;
3318}
3319unsafe extern "C" {
3320    pub fn rd_kafka_MemberAssignment_partitions(
3321        assignment: *const rd_kafka_MemberAssignment_t,
3322    ) -> *const rd_kafka_topic_partition_list_t;
3323}
3324unsafe extern "C" {
3325    pub fn rd_kafka_MemberDescription_target_assignment(
3326        member: *const rd_kafka_MemberDescription_t,
3327    ) -> *const rd_kafka_MemberAssignment_t;
3328}
3329#[repr(C)]
3330#[derive(Debug)]
3331pub struct rd_kafka_DeleteGroup_s {
3332    _unused: [u8; 0],
3333}
3334pub type rd_kafka_DeleteGroup_t = rd_kafka_DeleteGroup_s;
3335unsafe extern "C" {
3336    pub fn rd_kafka_DeleteGroup_new(group: *const c_char) -> *mut rd_kafka_DeleteGroup_t;
3337}
3338unsafe extern "C" {
3339    pub fn rd_kafka_DeleteGroup_destroy(del_group: *mut rd_kafka_DeleteGroup_t);
3340}
3341unsafe extern "C" {
3342    pub fn rd_kafka_DeleteGroup_destroy_array(
3343        del_groups: *mut *mut rd_kafka_DeleteGroup_t,
3344        del_group_cnt: usize,
3345    );
3346}
3347unsafe extern "C" {
3348    pub fn rd_kafka_DeleteGroups(
3349        rk: *mut rd_kafka_t,
3350        del_groups: *mut *mut rd_kafka_DeleteGroup_t,
3351        del_group_cnt: usize,
3352        options: *const rd_kafka_AdminOptions_t,
3353        rkqu: *mut rd_kafka_queue_t,
3354    );
3355}
3356unsafe extern "C" {
3357    pub fn rd_kafka_DeleteGroups_result_groups(
3358        result: *const rd_kafka_DeleteGroups_result_t,
3359        cntp: *mut usize,
3360    ) -> *mut *const rd_kafka_group_result_t;
3361}
3362#[repr(C)]
3363#[derive(Debug)]
3364pub struct rd_kafka_ListConsumerGroupOffsets_s {
3365    _unused: [u8; 0],
3366}
3367pub type rd_kafka_ListConsumerGroupOffsets_t = rd_kafka_ListConsumerGroupOffsets_s;
3368unsafe extern "C" {
3369    pub fn rd_kafka_ListConsumerGroupOffsets_new(
3370        group_id: *const c_char,
3371        partitions: *const rd_kafka_topic_partition_list_t,
3372    ) -> *mut rd_kafka_ListConsumerGroupOffsets_t;
3373}
3374unsafe extern "C" {
3375    pub fn rd_kafka_ListConsumerGroupOffsets_destroy(
3376        list_grpoffsets: *mut rd_kafka_ListConsumerGroupOffsets_t,
3377    );
3378}
3379unsafe extern "C" {
3380    pub fn rd_kafka_ListConsumerGroupOffsets_destroy_array(
3381        list_grpoffsets: *mut *mut rd_kafka_ListConsumerGroupOffsets_t,
3382        list_grpoffset_cnt: usize,
3383    );
3384}
3385unsafe extern "C" {
3386    pub fn rd_kafka_ListConsumerGroupOffsets(
3387        rk: *mut rd_kafka_t,
3388        list_grpoffsets: *mut *mut rd_kafka_ListConsumerGroupOffsets_t,
3389        list_grpoffsets_cnt: usize,
3390        options: *const rd_kafka_AdminOptions_t,
3391        rkqu: *mut rd_kafka_queue_t,
3392    );
3393}
3394unsafe extern "C" {
3395    pub fn rd_kafka_ListConsumerGroupOffsets_result_groups(
3396        result: *const rd_kafka_ListConsumerGroupOffsets_result_t,
3397        cntp: *mut usize,
3398    ) -> *mut *const rd_kafka_group_result_t;
3399}
3400#[repr(C)]
3401#[derive(Debug)]
3402pub struct rd_kafka_AlterConsumerGroupOffsets_s {
3403    _unused: [u8; 0],
3404}
3405pub type rd_kafka_AlterConsumerGroupOffsets_t = rd_kafka_AlterConsumerGroupOffsets_s;
3406unsafe extern "C" {
3407    pub fn rd_kafka_AlterConsumerGroupOffsets_new(
3408        group_id: *const c_char,
3409        partitions: *const rd_kafka_topic_partition_list_t,
3410    ) -> *mut rd_kafka_AlterConsumerGroupOffsets_t;
3411}
3412unsafe extern "C" {
3413    pub fn rd_kafka_AlterConsumerGroupOffsets_destroy(
3414        alter_grpoffsets: *mut rd_kafka_AlterConsumerGroupOffsets_t,
3415    );
3416}
3417unsafe extern "C" {
3418    pub fn rd_kafka_AlterConsumerGroupOffsets_destroy_array(
3419        alter_grpoffsets: *mut *mut rd_kafka_AlterConsumerGroupOffsets_t,
3420        alter_grpoffset_cnt: usize,
3421    );
3422}
3423unsafe extern "C" {
3424    pub fn rd_kafka_AlterConsumerGroupOffsets(
3425        rk: *mut rd_kafka_t,
3426        alter_grpoffsets: *mut *mut rd_kafka_AlterConsumerGroupOffsets_t,
3427        alter_grpoffsets_cnt: usize,
3428        options: *const rd_kafka_AdminOptions_t,
3429        rkqu: *mut rd_kafka_queue_t,
3430    );
3431}
3432unsafe extern "C" {
3433    pub fn rd_kafka_AlterConsumerGroupOffsets_result_groups(
3434        result: *const rd_kafka_AlterConsumerGroupOffsets_result_t,
3435        cntp: *mut usize,
3436    ) -> *mut *const rd_kafka_group_result_t;
3437}
3438#[repr(C)]
3439#[derive(Debug)]
3440pub struct rd_kafka_DeleteConsumerGroupOffsets_s {
3441    _unused: [u8; 0],
3442}
3443pub type rd_kafka_DeleteConsumerGroupOffsets_t = rd_kafka_DeleteConsumerGroupOffsets_s;
3444unsafe extern "C" {
3445    pub fn rd_kafka_DeleteConsumerGroupOffsets_new(
3446        group: *const c_char,
3447        partitions: *const rd_kafka_topic_partition_list_t,
3448    ) -> *mut rd_kafka_DeleteConsumerGroupOffsets_t;
3449}
3450unsafe extern "C" {
3451    pub fn rd_kafka_DeleteConsumerGroupOffsets_destroy(
3452        del_grpoffsets: *mut rd_kafka_DeleteConsumerGroupOffsets_t,
3453    );
3454}
3455unsafe extern "C" {
3456    pub fn rd_kafka_DeleteConsumerGroupOffsets_destroy_array(
3457        del_grpoffsets: *mut *mut rd_kafka_DeleteConsumerGroupOffsets_t,
3458        del_grpoffset_cnt: usize,
3459    );
3460}
3461unsafe extern "C" {
3462    pub fn rd_kafka_DeleteConsumerGroupOffsets(
3463        rk: *mut rd_kafka_t,
3464        del_grpoffsets: *mut *mut rd_kafka_DeleteConsumerGroupOffsets_t,
3465        del_grpoffsets_cnt: usize,
3466        options: *const rd_kafka_AdminOptions_t,
3467        rkqu: *mut rd_kafka_queue_t,
3468    );
3469}
3470unsafe extern "C" {
3471    pub fn rd_kafka_DeleteConsumerGroupOffsets_result_groups(
3472        result: *const rd_kafka_DeleteConsumerGroupOffsets_result_t,
3473        cntp: *mut usize,
3474    ) -> *mut *const rd_kafka_group_result_t;
3475}
3476#[repr(i32)]
3477#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3478pub enum rd_kafka_OffsetSpec_t {
3479    RD_KAFKA_OFFSET_SPEC_MAX_TIMESTAMP = -3,
3480    RD_KAFKA_OFFSET_SPEC_EARLIEST = -2,
3481    RD_KAFKA_OFFSET_SPEC_LATEST = -1,
3482}
3483#[repr(C)]
3484#[derive(Debug)]
3485pub struct rd_kafka_ListOffsetsResultInfo_s {
3486    _unused: [u8; 0],
3487}
3488pub type rd_kafka_ListOffsetsResultInfo_t = rd_kafka_ListOffsetsResultInfo_s;
3489unsafe extern "C" {
3490    pub fn rd_kafka_ListOffsetsResultInfo_topic_partition(
3491        result_info: *const rd_kafka_ListOffsetsResultInfo_t,
3492    ) -> *const rd_kafka_topic_partition_t;
3493}
3494unsafe extern "C" {
3495    pub fn rd_kafka_ListOffsetsResultInfo_timestamp(
3496        result_info: *const rd_kafka_ListOffsetsResultInfo_t,
3497    ) -> i64;
3498}
3499unsafe extern "C" {
3500    pub fn rd_kafka_ListOffsets_result_infos(
3501        result: *const rd_kafka_ListOffsets_result_t,
3502        cntp: *mut usize,
3503    ) -> *mut *const rd_kafka_ListOffsetsResultInfo_t;
3504}
3505unsafe extern "C" {
3506    pub fn rd_kafka_ListOffsets(
3507        rk: *mut rd_kafka_t,
3508        topic_partitions: *mut rd_kafka_topic_partition_list_t,
3509        options: *const rd_kafka_AdminOptions_t,
3510        rkqu: *mut rd_kafka_queue_t,
3511    );
3512}
3513#[repr(u32)]
3514#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3515pub enum rd_kafka_ScramMechanism_t {
3516    RD_KAFKA_SCRAM_MECHANISM_UNKNOWN = 0,
3517    RD_KAFKA_SCRAM_MECHANISM_SHA_256 = 1,
3518    RD_KAFKA_SCRAM_MECHANISM_SHA_512 = 2,
3519    RD_KAFKA_SCRAM_MECHANISM__CNT = 3,
3520}
3521#[repr(C)]
3522#[derive(Debug)]
3523pub struct rd_kafka_ScramCredentialInfo_s {
3524    _unused: [u8; 0],
3525}
3526pub type rd_kafka_ScramCredentialInfo_t = rd_kafka_ScramCredentialInfo_s;
3527unsafe extern "C" {
3528    pub fn rd_kafka_ScramCredentialInfo_mechanism(
3529        scram_credential_info: *const rd_kafka_ScramCredentialInfo_t,
3530    ) -> rd_kafka_ScramMechanism_t;
3531}
3532unsafe extern "C" {
3533    pub fn rd_kafka_ScramCredentialInfo_iterations(
3534        scram_credential_info: *const rd_kafka_ScramCredentialInfo_t,
3535    ) -> i32;
3536}
3537#[repr(C)]
3538#[derive(Debug)]
3539pub struct rd_kafka_UserScramCredentialsDescription_s {
3540    _unused: [u8; 0],
3541}
3542pub type rd_kafka_UserScramCredentialsDescription_t = rd_kafka_UserScramCredentialsDescription_s;
3543unsafe extern "C" {
3544    pub fn rd_kafka_UserScramCredentialsDescription_user(
3545        description: *const rd_kafka_UserScramCredentialsDescription_t,
3546    ) -> *const c_char;
3547}
3548unsafe extern "C" {
3549    pub fn rd_kafka_UserScramCredentialsDescription_error(
3550        description: *const rd_kafka_UserScramCredentialsDescription_t,
3551    ) -> *const rd_kafka_error_t;
3552}
3553unsafe extern "C" {
3554    pub fn rd_kafka_UserScramCredentialsDescription_scramcredentialinfo_count(
3555        description: *const rd_kafka_UserScramCredentialsDescription_t,
3556    ) -> usize;
3557}
3558unsafe extern "C" {
3559    pub fn rd_kafka_UserScramCredentialsDescription_scramcredentialinfo(
3560        description: *const rd_kafka_UserScramCredentialsDescription_t,
3561        idx: usize,
3562    ) -> *const rd_kafka_ScramCredentialInfo_t;
3563}
3564unsafe extern "C" {
3565    pub fn rd_kafka_DescribeUserScramCredentials_result_descriptions(
3566        result: *const rd_kafka_DescribeUserScramCredentials_result_t,
3567        cntp: *mut usize,
3568    ) -> *mut *const rd_kafka_UserScramCredentialsDescription_t;
3569}
3570unsafe extern "C" {
3571    pub fn rd_kafka_DescribeUserScramCredentials(
3572        rk: *mut rd_kafka_t,
3573        users: *mut *const c_char,
3574        user_cnt: usize,
3575        options: *const rd_kafka_AdminOptions_t,
3576        rkqu: *mut rd_kafka_queue_t,
3577    );
3578}
3579#[repr(C)]
3580#[derive(Debug)]
3581pub struct rd_kafka_UserScramCredentialAlteration_s {
3582    _unused: [u8; 0],
3583}
3584pub type rd_kafka_UserScramCredentialAlteration_t = rd_kafka_UserScramCredentialAlteration_s;
3585unsafe extern "C" {
3586    pub fn rd_kafka_UserScramCredentialUpsertion_new(
3587        username: *const c_char,
3588        mechanism: rd_kafka_ScramMechanism_t,
3589        iterations: i32,
3590        password: *const ::std::os::raw::c_uchar,
3591        password_size: usize,
3592        salt: *const ::std::os::raw::c_uchar,
3593        salt_size: usize,
3594    ) -> *mut rd_kafka_UserScramCredentialAlteration_t;
3595}
3596unsafe extern "C" {
3597    pub fn rd_kafka_UserScramCredentialDeletion_new(
3598        username: *const c_char,
3599        mechanism: rd_kafka_ScramMechanism_t,
3600    ) -> *mut rd_kafka_UserScramCredentialAlteration_t;
3601}
3602unsafe extern "C" {
3603    pub fn rd_kafka_UserScramCredentialAlteration_destroy(
3604        alteration: *mut rd_kafka_UserScramCredentialAlteration_t,
3605    );
3606}
3607unsafe extern "C" {
3608    pub fn rd_kafka_UserScramCredentialAlteration_destroy_array(
3609        alterations: *mut *mut rd_kafka_UserScramCredentialAlteration_t,
3610        alteration_cnt: usize,
3611    );
3612}
3613#[repr(C)]
3614#[derive(Debug)]
3615pub struct rd_kafka_AlterUserScramCredentials_result_response_s {
3616    _unused: [u8; 0],
3617}
3618pub type rd_kafka_AlterUserScramCredentials_result_response_t =
3619    rd_kafka_AlterUserScramCredentials_result_response_s;
3620unsafe extern "C" {
3621    pub fn rd_kafka_AlterUserScramCredentials_result_response_user(
3622        response: *const rd_kafka_AlterUserScramCredentials_result_response_t,
3623    ) -> *const c_char;
3624}
3625unsafe extern "C" {
3626    pub fn rd_kafka_AlterUserScramCredentials_result_response_error(
3627        response: *const rd_kafka_AlterUserScramCredentials_result_response_t,
3628    ) -> *const rd_kafka_error_t;
3629}
3630unsafe extern "C" {
3631    pub fn rd_kafka_AlterUserScramCredentials_result_responses(
3632        result: *const rd_kafka_AlterUserScramCredentials_result_t,
3633        cntp: *mut usize,
3634    ) -> *mut *const rd_kafka_AlterUserScramCredentials_result_response_t;
3635}
3636unsafe extern "C" {
3637    pub fn rd_kafka_AlterUserScramCredentials(
3638        rk: *mut rd_kafka_t,
3639        alterations: *mut *mut rd_kafka_UserScramCredentialAlteration_t,
3640        alteration_cnt: usize,
3641        options: *const rd_kafka_AdminOptions_t,
3642        rkqu: *mut rd_kafka_queue_t,
3643    );
3644}
3645#[repr(C)]
3646#[derive(Debug)]
3647pub struct rd_kafka_AclBinding_s {
3648    _unused: [u8; 0],
3649}
3650pub type rd_kafka_AclBinding_t = rd_kafka_AclBinding_s;
3651pub type rd_kafka_AclBindingFilter_t = rd_kafka_AclBinding_t;
3652unsafe extern "C" {
3653    pub fn rd_kafka_acl_result_error(
3654        aclres: *const rd_kafka_acl_result_t,
3655    ) -> *const rd_kafka_error_t;
3656}
3657unsafe extern "C" {
3658    pub fn rd_kafka_AclOperation_name(acl_operation: rd_kafka_AclOperation_t) -> *const c_char;
3659}
3660#[repr(u32)]
3661#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3662pub enum rd_kafka_AclPermissionType_t {
3663    RD_KAFKA_ACL_PERMISSION_TYPE_UNKNOWN = 0,
3664    RD_KAFKA_ACL_PERMISSION_TYPE_ANY = 1,
3665    RD_KAFKA_ACL_PERMISSION_TYPE_DENY = 2,
3666    RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3,
3667    RD_KAFKA_ACL_PERMISSION_TYPE__CNT = 4,
3668}
3669unsafe extern "C" {
3670    pub fn rd_kafka_AclPermissionType_name(
3671        acl_permission_type: rd_kafka_AclPermissionType_t,
3672    ) -> *const c_char;
3673}
3674unsafe extern "C" {
3675    pub fn rd_kafka_AclBinding_new(
3676        restype: rd_kafka_ResourceType_t,
3677        name: *const c_char,
3678        resource_pattern_type: rd_kafka_ResourcePatternType_t,
3679        principal: *const c_char,
3680        host: *const c_char,
3681        operation: rd_kafka_AclOperation_t,
3682        permission_type: rd_kafka_AclPermissionType_t,
3683        errstr: *mut c_char,
3684        errstr_size: usize,
3685    ) -> *mut rd_kafka_AclBinding_t;
3686}
3687unsafe extern "C" {
3688    pub fn rd_kafka_AclBindingFilter_new(
3689        restype: rd_kafka_ResourceType_t,
3690        name: *const c_char,
3691        resource_pattern_type: rd_kafka_ResourcePatternType_t,
3692        principal: *const c_char,
3693        host: *const c_char,
3694        operation: rd_kafka_AclOperation_t,
3695        permission_type: rd_kafka_AclPermissionType_t,
3696        errstr: *mut c_char,
3697        errstr_size: usize,
3698    ) -> *mut rd_kafka_AclBindingFilter_t;
3699}
3700unsafe extern "C" {
3701    pub fn rd_kafka_AclBinding_restype(
3702        acl: *const rd_kafka_AclBinding_t,
3703    ) -> rd_kafka_ResourceType_t;
3704}
3705unsafe extern "C" {
3706    pub fn rd_kafka_AclBinding_name(acl: *const rd_kafka_AclBinding_t) -> *const c_char;
3707}
3708unsafe extern "C" {
3709    pub fn rd_kafka_AclBinding_principal(acl: *const rd_kafka_AclBinding_t) -> *const c_char;
3710}
3711unsafe extern "C" {
3712    pub fn rd_kafka_AclBinding_host(acl: *const rd_kafka_AclBinding_t) -> *const c_char;
3713}
3714unsafe extern "C" {
3715    pub fn rd_kafka_AclBinding_operation(
3716        acl: *const rd_kafka_AclBinding_t,
3717    ) -> rd_kafka_AclOperation_t;
3718}
3719unsafe extern "C" {
3720    pub fn rd_kafka_AclBinding_permission_type(
3721        acl: *const rd_kafka_AclBinding_t,
3722    ) -> rd_kafka_AclPermissionType_t;
3723}
3724unsafe extern "C" {
3725    pub fn rd_kafka_AclBinding_resource_pattern_type(
3726        acl: *const rd_kafka_AclBinding_t,
3727    ) -> rd_kafka_ResourcePatternType_t;
3728}
3729unsafe extern "C" {
3730    pub fn rd_kafka_AclBinding_error(acl: *const rd_kafka_AclBinding_t) -> *const rd_kafka_error_t;
3731}
3732unsafe extern "C" {
3733    pub fn rd_kafka_AclBinding_destroy(acl_binding: *mut rd_kafka_AclBinding_t);
3734}
3735unsafe extern "C" {
3736    pub fn rd_kafka_AclBinding_destroy_array(
3737        acl_bindings: *mut *mut rd_kafka_AclBinding_t,
3738        acl_bindings_cnt: usize,
3739    );
3740}
3741unsafe extern "C" {
3742    pub fn rd_kafka_CreateAcls_result_acls(
3743        result: *const rd_kafka_CreateAcls_result_t,
3744        cntp: *mut usize,
3745    ) -> *mut *const rd_kafka_acl_result_t;
3746}
3747unsafe extern "C" {
3748    pub fn rd_kafka_CreateAcls(
3749        rk: *mut rd_kafka_t,
3750        new_acls: *mut *mut rd_kafka_AclBinding_t,
3751        new_acls_cnt: usize,
3752        options: *const rd_kafka_AdminOptions_t,
3753        rkqu: *mut rd_kafka_queue_t,
3754    );
3755}
3756unsafe extern "C" {
3757    pub fn rd_kafka_DescribeAcls_result_acls(
3758        result: *const rd_kafka_DescribeAcls_result_t,
3759        cntp: *mut usize,
3760    ) -> *mut *const rd_kafka_AclBinding_t;
3761}
3762unsafe extern "C" {
3763    pub fn rd_kafka_DescribeAcls(
3764        rk: *mut rd_kafka_t,
3765        acl_filter: *mut rd_kafka_AclBindingFilter_t,
3766        options: *const rd_kafka_AdminOptions_t,
3767        rkqu: *mut rd_kafka_queue_t,
3768    );
3769}
3770#[repr(C)]
3771#[derive(Debug)]
3772pub struct rd_kafka_DeleteAcls_result_response_s {
3773    _unused: [u8; 0],
3774}
3775pub type rd_kafka_DeleteAcls_result_response_t = rd_kafka_DeleteAcls_result_response_s;
3776unsafe extern "C" {
3777    pub fn rd_kafka_DeleteAcls_result_responses(
3778        result: *const rd_kafka_DeleteAcls_result_t,
3779        cntp: *mut usize,
3780    ) -> *mut *const rd_kafka_DeleteAcls_result_response_t;
3781}
3782unsafe extern "C" {
3783    pub fn rd_kafka_DeleteAcls_result_response_error(
3784        result_response: *const rd_kafka_DeleteAcls_result_response_t,
3785    ) -> *const rd_kafka_error_t;
3786}
3787unsafe extern "C" {
3788    pub fn rd_kafka_DeleteAcls_result_response_matching_acls(
3789        result_response: *const rd_kafka_DeleteAcls_result_response_t,
3790        matching_acls_cntp: *mut usize,
3791    ) -> *mut *const rd_kafka_AclBinding_t;
3792}
3793unsafe extern "C" {
3794    pub fn rd_kafka_DeleteAcls(
3795        rk: *mut rd_kafka_t,
3796        del_acls: *mut *mut rd_kafka_AclBindingFilter_t,
3797        del_acls_cnt: usize,
3798        options: *const rd_kafka_AdminOptions_t,
3799        rkqu: *mut rd_kafka_queue_t,
3800    );
3801}
3802#[repr(C)]
3803#[derive(Debug)]
3804pub struct rd_kafka_ElectLeaders_s {
3805    _unused: [u8; 0],
3806}
3807pub type rd_kafka_ElectLeaders_t = rd_kafka_ElectLeaders_s;
3808#[repr(u32)]
3809#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3810pub enum rd_kafka_ElectionType_t {
3811    RD_KAFKA_ELECTION_TYPE_PREFERRED = 0,
3812    RD_KAFKA_ELECTION_TYPE_UNCLEAN = 1,
3813}
3814unsafe extern "C" {
3815    pub fn rd_kafka_ElectLeaders_new(
3816        election_type: rd_kafka_ElectionType_t,
3817        partitions: *mut rd_kafka_topic_partition_list_t,
3818    ) -> *mut rd_kafka_ElectLeaders_t;
3819}
3820unsafe extern "C" {
3821    pub fn rd_kafka_ElectLeaders_destroy(elect_leaders: *mut rd_kafka_ElectLeaders_t);
3822}
3823unsafe extern "C" {
3824    pub fn rd_kafka_ElectLeaders(
3825        rk: *mut rd_kafka_t,
3826        elect_leaders: *mut rd_kafka_ElectLeaders_t,
3827        options: *const rd_kafka_AdminOptions_t,
3828        rkqu: *mut rd_kafka_queue_t,
3829    );
3830}
3831unsafe extern "C" {
3832    pub fn rd_kafka_ElectLeaders_result_partitions(
3833        result: *const rd_kafka_ElectLeaders_result_t,
3834        cntp: *mut usize,
3835    ) -> *mut *const rd_kafka_topic_partition_result_t;
3836}
3837unsafe extern "C" {
3838    pub fn rd_kafka_oauthbearer_set_token(
3839        rk: *mut rd_kafka_t,
3840        token_value: *const c_char,
3841        md_lifetime_ms: i64,
3842        md_principal_name: *const c_char,
3843        extensions: *mut *const c_char,
3844        extension_size: usize,
3845        errstr: *mut c_char,
3846        errstr_size: usize,
3847    ) -> rd_kafka_resp_err_t;
3848}
3849unsafe extern "C" {
3850    pub fn rd_kafka_oauthbearer_set_token_failure(
3851        rk: *mut rd_kafka_t,
3852        errstr: *const c_char,
3853    ) -> rd_kafka_resp_err_t;
3854}
3855unsafe extern "C" {
3856    pub fn rd_kafka_init_transactions(
3857        rk: *mut rd_kafka_t,
3858        timeout_ms: c_int,
3859    ) -> *mut rd_kafka_error_t;
3860}
3861unsafe extern "C" {
3862    pub fn rd_kafka_begin_transaction(rk: *mut rd_kafka_t) -> *mut rd_kafka_error_t;
3863}
3864unsafe extern "C" {
3865    pub fn rd_kafka_send_offsets_to_transaction(
3866        rk: *mut rd_kafka_t,
3867        offsets: *const rd_kafka_topic_partition_list_t,
3868        cgmetadata: *const rd_kafka_consumer_group_metadata_t,
3869        timeout_ms: c_int,
3870    ) -> *mut rd_kafka_error_t;
3871}
3872unsafe extern "C" {
3873    pub fn rd_kafka_commit_transaction(
3874        rk: *mut rd_kafka_t,
3875        timeout_ms: c_int,
3876    ) -> *mut rd_kafka_error_t;
3877}
3878unsafe extern "C" {
3879    pub fn rd_kafka_abort_transaction(
3880        rk: *mut rd_kafka_t,
3881        timeout_ms: c_int,
3882    ) -> *mut rd_kafka_error_t;
3883}