From 23343a4da2dcb85a3b1b6265760eab04bb593ed9 Mon Sep 17 00:00:00 2001 From: DoumanAsh Date: Wed, 15 Jan 2025 11:37:50 +0900 Subject: [PATCH] Update librdkafka to 2.8.0 --- Cargo.lock | 2 +- rdkafka-sys/Cargo.toml | 2 +- rdkafka-sys/librdkafka | 2 +- rdkafka-sys/src/bindings.rs | 1144 ++++++++++++++++++++--------------- rdkafka-sys/src/helpers.rs | 10 +- rdkafka-sys/src/types.rs | 16 + 6 files changed, 696 insertions(+), 480 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a1ac22448..0e6154409 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1173,7 +1173,7 @@ dependencies = [ [[package]] name = "rdkafka-sys" -version = "4.8.0+2.3.0" +version = "4.9.0+2.8.0" dependencies = [ "cmake", "curl-sys", diff --git a/rdkafka-sys/Cargo.toml b/rdkafka-sys/Cargo.toml index 6a7bd4687..4e9be4f30 100644 --- a/rdkafka-sys/Cargo.toml +++ b/rdkafka-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rdkafka-sys" -version = "4.8.0+2.3.0" +version = "4.9.0+2.8.0" authors = ["Federico Giraud "] build = "build.rs" links = "rdkafka" diff --git a/rdkafka-sys/librdkafka b/rdkafka-sys/librdkafka index 95a542c87..b4c608570 160000 --- a/rdkafka-sys/librdkafka +++ b/rdkafka-sys/librdkafka @@ -1 +1 @@ -Subproject commit 95a542c87c61d2c45b445f91c73dd5442eb04f3c +Subproject commit b4c608570f796c18ff2211a7af876046d264d392 diff --git a/rdkafka-sys/src/bindings.rs b/rdkafka-sys/src/bindings.rs index 78ba16b0c..db49e5731 100644 --- a/rdkafka-sys/src/bindings.rs +++ b/rdkafka-sys/src/bindings.rs @@ -1,9 +1,9 @@ -/* automatically generated by rust-bindgen 0.66.1 */ +/* automatically generated by rust-bindgen 0.71.1 */ use libc::{c_char, c_int, c_void, sockaddr, FILE}; use num_enum::TryFromPrimitive; -pub const RD_KAFKA_VERSION: i32 = 33751295; +pub const RD_KAFKA_VERSION: i32 = 34078975; pub 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" ; pub const RD_KAFKA_DESTROY_F_NO_CONSUMER_CLOSE: i32 = 8; pub const RD_KAFKA_OFFSET_BEGINNING: i32 = -2; @@ -49,10 +49,11 @@ pub const RD_KAFKA_EVENT_ALTERUSERSCRAMCREDENTIALS_RESULT: i32 = 524288; pub const RD_KAFKA_EVENT_DESCRIBETOPICS_RESULT: i32 = 1048576; pub const RD_KAFKA_EVENT_DESCRIBECLUSTER_RESULT: i32 = 2097152; pub const RD_KAFKA_EVENT_LISTOFFSETS_RESULT: i32 = 4194304; -extern "C" { +pub const RD_KAFKA_EVENT_ELECTLEADERS_RESULT: i32 = 8388608; +unsafe extern "C" { pub fn rd_kafka_version() -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_version_str() -> *const c_char; } #[repr(u32)] @@ -68,7 +69,7 @@ pub enum rd_kafka_timestamp_type_t { RD_KAFKA_TIMESTAMP_CREATE_TIME = 1, RD_KAFKA_TIMESTAMP_LOG_APPEND_TIME = 2, } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_get_debug_contexts() -> *const c_char; } #[repr(C)] @@ -149,6 +150,12 @@ pub struct rd_kafka_Uuid_s { _unused: [u8; 0], } pub type rd_kafka_Uuid_t = rd_kafka_Uuid_s; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rd_kafka_topic_partition_result_s { + _unused: [u8; 0], +} +pub type rd_kafka_topic_partition_result_t = rd_kafka_topic_partition_result_s; #[repr(i32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, TryFromPrimitive)] pub enum rd_kafka_resp_err_t { @@ -214,6 +221,7 @@ pub enum rd_kafka_resp_err_t { RD_KAFKA_RESP_ERR__NOOP = -141, RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET = -140, RD_KAFKA_RESP_ERR__LOG_TRUNCATION = -139, + RD_KAFKA_RESP_ERR__INVALID_DIFFERENT_RECORD = -138, RD_KAFKA_RESP_ERR__END = -100, RD_KAFKA_RESP_ERR_UNKNOWN = -1, RD_KAFKA_RESP_ERR_NO_ERROR = 0, @@ -314,7 +322,14 @@ pub enum rd_kafka_resp_err_t { RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION = 95, RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED = 96, RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE = 97, - RD_KAFKA_RESP_ERR_END_ALL = 98, + RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_ID = 100, + RD_KAFKA_RESP_ERR_FENCED_MEMBER_EPOCH = 110, + RD_KAFKA_RESP_ERR_UNRELEASED_INSTANCE_ID = 111, + RD_KAFKA_RESP_ERR_UNSUPPORTED_ASSIGNOR = 112, + RD_KAFKA_RESP_ERR_STALE_MEMBER_EPOCH = 113, + RD_KAFKA_RESP_ERR_UNKNOWN_SUBSCRIPTION_ID = 117, + RD_KAFKA_RESP_ERR_TELEMETRY_TOO_LARGE = 118, + RD_KAFKA_RESP_ERR_END_ALL = 119, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -323,60 +338,60 @@ pub struct rd_kafka_err_desc { pub name: *const c_char, pub desc: *const c_char, } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_get_err_descs(errdescs: *mut *const rd_kafka_err_desc, cntp: *mut usize); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_err2str(err: rd_kafka_resp_err_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_err2name(err: rd_kafka_resp_err_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_last_error() -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_errno2err(errnox: c_int) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_errno() -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_fatal_error( rk: *mut rd_kafka_t, errstr: *mut c_char, errstr_size: usize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_test_fatal_error( rk: *mut rd_kafka_t, err: rd_kafka_resp_err_t, reason: *const c_char, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_error_code(error: *const rd_kafka_error_t) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_error_name(error: *const rd_kafka_error_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_error_string(error: *const rd_kafka_error_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_error_is_fatal(error: *const rd_kafka_error_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_error_is_retriable(error: *const rd_kafka_error_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_error_txn_requires_abort(error: *const rd_kafka_error_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_error_destroy(error: *mut rd_kafka_error_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_error_new( code: rd_kafka_resp_err_t, fmt: *const c_char, @@ -396,16 +411,16 @@ pub struct rd_kafka_topic_partition_s { pub _private: *mut c_void, } pub type rd_kafka_topic_partition_t = rd_kafka_topic_partition_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_destroy(rktpar: *mut rd_kafka_topic_partition_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_set_leader_epoch( rktpar: *mut rd_kafka_topic_partition_t, leader_epoch: i32, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_get_leader_epoch( rktpar: *const rd_kafka_topic_partition_t, ) -> i32; @@ -418,20 +433,20 @@ pub struct rd_kafka_topic_partition_list_s { pub elems: *mut rd_kafka_topic_partition_t, } pub type rd_kafka_topic_partition_list_t = rd_kafka_topic_partition_list_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_list_new(size: c_int) -> *mut rd_kafka_topic_partition_list_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_list_destroy(rkparlist: *mut rd_kafka_topic_partition_list_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_list_add( rktparlist: *mut rd_kafka_topic_partition_list_t, topic: *const c_char, partition: i32, ) -> *mut rd_kafka_topic_partition_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_list_add_range( rktparlist: *mut rd_kafka_topic_partition_list_t, topic: *const c_char, @@ -439,25 +454,25 @@ extern "C" { stop: i32, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_list_del( rktparlist: *mut rd_kafka_topic_partition_list_t, topic: *const c_char, partition: i32, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_list_del_by_idx( rktparlist: *mut rd_kafka_topic_partition_list_t, idx: c_int, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_list_copy( src: *const rd_kafka_topic_partition_list_t, ) -> *mut rd_kafka_topic_partition_list_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_list_set_offset( rktparlist: *mut rd_kafka_topic_partition_list_t, topic: *const c_char, @@ -465,14 +480,14 @@ extern "C" { offset: i64, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_list_find( rktparlist: *const rd_kafka_topic_partition_list_t, topic: *const c_char, partition: i32, ) -> *mut rd_kafka_topic_partition_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_list_sort( rktparlist: *mut rd_kafka_topic_partition_list_t, cmp: Option< @@ -534,16 +549,16 @@ pub struct rd_kafka_vu_s__bindgen_ty_1__bindgen_ty_2 { pub size: isize, } pub type rd_kafka_vu_t = rd_kafka_vu_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_headers_new(initial_count: usize) -> *mut rd_kafka_headers_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_headers_destroy(hdrs: *mut rd_kafka_headers_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_headers_copy(src: *const rd_kafka_headers_t) -> *mut rd_kafka_headers_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_header_add( hdrs: *mut rd_kafka_headers_t, name: *const c_char, @@ -552,13 +567,13 @@ extern "C" { value_size: isize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_header_remove( hdrs: *mut rd_kafka_headers_t, name: *const c_char, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_header_get_last( hdrs: *const rd_kafka_headers_t, name: *const c_char, @@ -566,7 +581,7 @@ extern "C" { sizep: *mut usize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_header_get( hdrs: *const rd_kafka_headers_t, idx: usize, @@ -575,7 +590,7 @@ extern "C" { sizep: *mut usize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_header_get_all( hdrs: *const rd_kafka_headers_t, idx: usize, @@ -598,43 +613,46 @@ pub struct rd_kafka_message_s { pub _private: *mut c_void, } pub type rd_kafka_message_t = rd_kafka_message_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_message_destroy(rkmessage: *mut rd_kafka_message_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_message_errstr(rkmessage: *const rd_kafka_message_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { + pub fn rd_kafka_message_produce_errstr(rkmessage: *const rd_kafka_message_t) -> *const c_char; +} +unsafe extern "C" { pub fn rd_kafka_message_timestamp( rkmessage: *const rd_kafka_message_t, tstype: *mut rd_kafka_timestamp_type_t, ) -> i64; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_message_latency(rkmessage: *const rd_kafka_message_t) -> i64; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_message_broker_id(rkmessage: *const rd_kafka_message_t) -> i32; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_message_headers( rkmessage: *const rd_kafka_message_t, hdrsp: *mut *mut rd_kafka_headers_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_message_detach_headers( rkmessage: *mut rd_kafka_message_t, hdrsp: *mut *mut rd_kafka_headers_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_message_set_headers( rkmessage: *mut rd_kafka_message_t, hdrs: *mut rd_kafka_headers_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_header_cnt(hdrs: *const rd_kafka_headers_t) -> usize; } #[repr(u32)] @@ -644,31 +662,31 @@ pub enum rd_kafka_msg_status_t { RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED = 1, RD_KAFKA_MSG_STATUS_PERSISTED = 2, } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_message_status(rkmessage: *const rd_kafka_message_t) -> rd_kafka_msg_status_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_message_leader_epoch(rkmessage: *const rd_kafka_message_t) -> i32; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_Uuid_base64str(uuid: *const rd_kafka_Uuid_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_Uuid_least_significant_bits(uuid: *const rd_kafka_Uuid_t) -> i64; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_Uuid_most_significant_bits(uuid: *const rd_kafka_Uuid_t) -> i64; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_Uuid_new( most_significant_bits: i64, least_significant_bits: i64, ) -> *mut rd_kafka_Uuid_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_Uuid_copy(uuid: *const rd_kafka_Uuid_t) -> *mut rd_kafka_Uuid_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_Uuid_destroy(uuid: *mut rd_kafka_Uuid_t); } #[repr(i32)] @@ -678,26 +696,26 @@ pub enum rd_kafka_conf_res_t { RD_KAFKA_CONF_INVALID = -1, RD_KAFKA_CONF_OK = 0, } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_new() -> *mut rd_kafka_conf_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_destroy(conf: *mut rd_kafka_conf_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_dup(conf: *const rd_kafka_conf_t) -> *mut rd_kafka_conf_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_dup_filter( conf: *const rd_kafka_conf_t, filter_cnt: usize, filter: *mut *const c_char, ) -> *mut rd_kafka_conf_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf(rk: *mut rd_kafka_t) -> *const rd_kafka_conf_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set( conf: *mut rd_kafka_conf_t, name: *const c_char, @@ -706,10 +724,10 @@ extern "C" { errstr_size: usize, ) -> rd_kafka_conf_res_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_events(conf: *mut rd_kafka_conf_t, events: c_int); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_background_event_cb( conf: *mut rd_kafka_conf_t, event_cb: Option< @@ -721,7 +739,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_dr_cb( conf: *mut rd_kafka_conf_t, dr_cb: Option< @@ -736,7 +754,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_dr_msg_cb( conf: *mut rd_kafka_conf_t, dr_msg_cb: Option< @@ -748,7 +766,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_consume_cb( conf: *mut rd_kafka_conf_t, consume_cb: Option< @@ -756,7 +774,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_rebalance_cb( conf: *mut rd_kafka_conf_t, rebalance_cb: Option< @@ -769,7 +787,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_offset_commit_cb( conf: *mut rd_kafka_conf_t, offset_commit_cb: Option< @@ -782,7 +800,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_error_cb( conf: *mut rd_kafka_conf_t, error_cb: Option< @@ -795,7 +813,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_throttle_cb( conf: *mut rd_kafka_conf_t, throttle_cb: Option< @@ -809,7 +827,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_log_cb( conf: *mut rd_kafka_conf_t, log_cb: Option< @@ -822,7 +840,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_stats_cb( conf: *mut rd_kafka_conf_t, stats_cb: Option< @@ -835,7 +853,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_oauthbearer_token_refresh_cb( conf: *mut rd_kafka_conf_t, oauthbearer_token_refresh_cb: Option< @@ -847,10 +865,10 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_enable_sasl_queue(conf: *mut rd_kafka_conf_t, enable: c_int); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_socket_cb( conf: *mut rd_kafka_conf_t, socket_cb: Option< @@ -863,7 +881,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_connect_cb( conf: *mut rd_kafka_conf_t, connect_cb: Option< @@ -877,13 +895,13 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_closesocket_cb( conf: *mut rd_kafka_conf_t, closesocket_cb: Option c_int>, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_ssl_cert_verify_cb( conf: *mut rd_kafka_conf_t, ssl_cert_verify_cb: Option< @@ -918,7 +936,7 @@ pub enum rd_kafka_cert_enc_t { RD_KAFKA_CERT_ENC_PEM = 2, RD_KAFKA_CERT_ENC__CNT = 3, } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_ssl_cert( conf: *mut rd_kafka_conf_t, cert_type: rd_kafka_cert_type_t, @@ -929,30 +947,30 @@ extern "C" { errstr_size: usize, ) -> rd_kafka_conf_res_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_engine_callback_data( conf: *mut rd_kafka_conf_t, callback_data: *mut c_void, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_opaque(conf: *mut rd_kafka_conf_t, opaque: *mut c_void); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_opaque(rk: *const rd_kafka_t) -> *mut c_void; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_set_default_topic_conf( conf: *mut rd_kafka_conf_t, tconf: *mut rd_kafka_topic_conf_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_get_default_topic_conf( conf: *mut rd_kafka_conf_t, ) -> *mut rd_kafka_topic_conf_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_get( conf: *const rd_kafka_conf_t, name: *const c_char, @@ -960,7 +978,7 @@ extern "C" { dest_size: *mut usize, ) -> rd_kafka_conf_res_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_conf_get( conf: *const rd_kafka_topic_conf_t, name: *const c_char, @@ -968,36 +986,36 @@ extern "C" { dest_size: *mut usize, ) -> rd_kafka_conf_res_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_dump(conf: *mut rd_kafka_conf_t, cntp: *mut usize) -> *mut *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_conf_dump( conf: *mut rd_kafka_topic_conf_t, cntp: *mut usize, ) -> *mut *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_dump_free(arr: *mut *const c_char, cnt: usize); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_properties_show(fp: *mut FILE); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_conf_new() -> *mut rd_kafka_topic_conf_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_conf_dup( conf: *const rd_kafka_topic_conf_t, ) -> *mut rd_kafka_topic_conf_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_default_topic_conf_dup(rk: *mut rd_kafka_t) -> *mut rd_kafka_topic_conf_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_conf_destroy(topic_conf: *mut rd_kafka_topic_conf_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_conf_set( conf: *mut rd_kafka_topic_conf_t, name: *const c_char, @@ -1006,13 +1024,13 @@ extern "C" { errstr_size: usize, ) -> rd_kafka_conf_res_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_conf_set_opaque( conf: *mut rd_kafka_topic_conf_t, rkt_opaque: *mut c_void, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_conf_set_partitioner_cb( topic_conf: *mut rd_kafka_topic_conf_t, partitioner: Option< @@ -1027,7 +1045,7 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_conf_set_msg_order_cmp( topic_conf: *mut rd_kafka_topic_conf_t, msg_order_cmp: Option< @@ -1038,13 +1056,13 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_partition_available( rkt: *const rd_kafka_topic_t, partition: i32, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_msg_partitioner_random( rkt: *const rd_kafka_topic_t, key: *const c_void, @@ -1054,7 +1072,7 @@ extern "C" { msg_opaque: *mut c_void, ) -> i32; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_msg_partitioner_consistent( rkt: *const rd_kafka_topic_t, key: *const c_void, @@ -1064,7 +1082,7 @@ extern "C" { msg_opaque: *mut c_void, ) -> i32; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_msg_partitioner_consistent_random( rkt: *const rd_kafka_topic_t, key: *const c_void, @@ -1074,7 +1092,7 @@ extern "C" { msg_opaque: *mut c_void, ) -> i32; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_msg_partitioner_murmur2( rkt: *const rd_kafka_topic_t, key: *const c_void, @@ -1084,7 +1102,7 @@ extern "C" { msg_opaque: *mut c_void, ) -> i32; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_msg_partitioner_murmur2_random( rkt: *const rd_kafka_topic_t, key: *const c_void, @@ -1094,7 +1112,7 @@ extern "C" { msg_opaque: *mut c_void, ) -> i32; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_msg_partitioner_fnv1a( rkt: *const rd_kafka_topic_t, key: *const c_void, @@ -1104,7 +1122,7 @@ extern "C" { msg_opaque: *mut c_void, ) -> i32; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_msg_partitioner_fnv1a_random( rkt: *const rd_kafka_topic_t, key: *const c_void, @@ -1114,7 +1132,7 @@ extern "C" { msg_opaque: *mut c_void, ) -> i32; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_new( type_: rd_kafka_type_t, conf: *mut rd_kafka_conf_t, @@ -1122,62 +1140,62 @@ extern "C" { errstr_size: usize, ) -> *mut rd_kafka_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_destroy(rk: *mut rd_kafka_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_destroy_flags(rk: *mut rd_kafka_t, flags: c_int); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_name(rk: *const rd_kafka_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_type(rk: *const rd_kafka_t) -> rd_kafka_type_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_memberid(rk: *const rd_kafka_t) -> *mut c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_clusterid(rk: *mut rd_kafka_t, timeout_ms: c_int) -> *mut c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_controllerid(rk: *mut rd_kafka_t, timeout_ms: c_int) -> i32; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_new( rk: *mut rd_kafka_t, topic: *const c_char, conf: *mut rd_kafka_topic_conf_t, ) -> *mut rd_kafka_topic_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_destroy(rkt: *mut rd_kafka_topic_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_name(rkt: *const rd_kafka_topic_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_opaque(rkt: *const rd_kafka_topic_t) -> *mut c_void; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_poll(rk: *mut rd_kafka_t, timeout_ms: c_int) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_yield(rk: *mut rd_kafka_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_pause_partitions( rk: *mut rd_kafka_t, partitions: *mut rd_kafka_topic_partition_list_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_resume_partitions( rk: *mut rd_kafka_t, partitions: *mut rd_kafka_topic_partition_list_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_query_watermark_offsets( rk: *mut rd_kafka_t, topic: *const c_char, @@ -1187,7 +1205,7 @@ extern "C" { timeout_ms: c_int, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_get_watermark_offsets( rk: *mut rd_kafka_t, topic: *const c_char, @@ -1196,70 +1214,70 @@ extern "C" { high: *mut i64, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_offsets_for_times( rk: *mut rd_kafka_t, offsets: *mut rd_kafka_topic_partition_list_t, timeout_ms: c_int, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mem_calloc(rk: *mut rd_kafka_t, num: usize, size: usize) -> *mut c_void; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mem_malloc(rk: *mut rd_kafka_t, size: usize) -> *mut c_void; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mem_free(rk: *mut rd_kafka_t, ptr: *mut c_void); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_new(rk: *mut rd_kafka_t) -> *mut rd_kafka_queue_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_destroy(rkqu: *mut rd_kafka_queue_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_get_main(rk: *mut rd_kafka_t) -> *mut rd_kafka_queue_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_get_sasl(rk: *mut rd_kafka_t) -> *mut rd_kafka_queue_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_sasl_background_callbacks_enable(rk: *mut rd_kafka_t) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_sasl_set_credentials( rk: *mut rd_kafka_t, username: *const c_char, password: *const c_char, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_get_consumer(rk: *mut rd_kafka_t) -> *mut rd_kafka_queue_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_get_partition( rk: *mut rd_kafka_t, topic: *const c_char, partition: i32, ) -> *mut rd_kafka_queue_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_get_background(rk: *mut rd_kafka_t) -> *mut rd_kafka_queue_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_forward(src: *mut rd_kafka_queue_t, dst: *mut rd_kafka_queue_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_set_log_queue( rk: *mut rd_kafka_t, rkqu: *mut rd_kafka_queue_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_length(rkqu: *mut rd_kafka_queue_t) -> usize; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_io_event_enable( rkqu: *mut rd_kafka_queue_t, fd: c_int, @@ -1267,21 +1285,21 @@ extern "C" { size: usize, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_cb_event_enable( rkqu: *mut rd_kafka_queue_t, event_cb: Option, qev_opaque: *mut c_void, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_yield(rkqu: *mut rd_kafka_queue_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consume_start(rkt: *mut rd_kafka_topic_t, partition: i32, offset: i64) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consume_start_queue( rkt: *mut rd_kafka_topic_t, partition: i32, @@ -1289,10 +1307,10 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consume_stop(rkt: *mut rd_kafka_topic_t, partition: i32) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_seek( rkt: *mut rd_kafka_topic_t, partition: i32, @@ -1300,21 +1318,21 @@ extern "C" { timeout_ms: c_int, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_seek_partitions( rk: *mut rd_kafka_t, partitions: *mut rd_kafka_topic_partition_list_t, timeout_ms: c_int, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consume( rkt: *mut rd_kafka_topic_t, partition: i32, timeout_ms: c_int, ) -> *mut rd_kafka_message_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consume_batch( rkt: *mut rd_kafka_topic_t, partition: i32, @@ -1323,7 +1341,7 @@ extern "C" { rkmessages_size: usize, ) -> isize; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consume_callback( rkt: *mut rd_kafka_topic_t, partition: i32, @@ -1334,13 +1352,13 @@ extern "C" { commit_opaque: *mut c_void, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consume_queue( rkqu: *mut rd_kafka_queue_t, timeout_ms: c_int, ) -> *mut rd_kafka_message_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consume_batch_queue( rkqu: *mut rd_kafka_queue_t, timeout_ms: c_int, @@ -1348,7 +1366,7 @@ extern "C" { rkmessages_size: usize, ) -> isize; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consume_callback_queue( rkqu: *mut rd_kafka_queue_t, timeout_ms: c_int, @@ -1358,102 +1376,102 @@ extern "C" { commit_opaque: *mut c_void, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_offset_store( rkt: *mut rd_kafka_topic_t, partition: i32, offset: i64, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_offsets_store( rk: *mut rd_kafka_t, offsets: *mut rd_kafka_topic_partition_list_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_offset_store_message( rkmessage: *mut rd_kafka_message_t, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_subscribe( rk: *mut rd_kafka_t, topics: *const rd_kafka_topic_partition_list_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_unsubscribe(rk: *mut rd_kafka_t) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_subscription( rk: *mut rd_kafka_t, topics: *mut *mut rd_kafka_topic_partition_list_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consumer_poll( rk: *mut rd_kafka_t, timeout_ms: c_int, ) -> *mut rd_kafka_message_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consumer_close(rk: *mut rd_kafka_t) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consumer_close_queue( rk: *mut rd_kafka_t, rkqu: *mut rd_kafka_queue_t, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consumer_closed(rk: *mut rd_kafka_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_incremental_assign( rk: *mut rd_kafka_t, partitions: *const rd_kafka_topic_partition_list_t, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_incremental_unassign( rk: *mut rd_kafka_t, partitions: *const rd_kafka_topic_partition_list_t, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_rebalance_protocol(rk: *mut rd_kafka_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_assign( rk: *mut rd_kafka_t, partitions: *const rd_kafka_topic_partition_list_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_assignment( rk: *mut rd_kafka_t, partitions: *mut *mut rd_kafka_topic_partition_list_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_assignment_lost(rk: *mut rd_kafka_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_commit( rk: *mut rd_kafka_t, offsets: *const rd_kafka_topic_partition_list_t, async_: c_int, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_commit_message( rk: *mut rd_kafka_t, rkmessage: *const rd_kafka_message_t, async_: c_int, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_commit_queue( rk: *mut rd_kafka_t, offsets: *const rd_kafka_topic_partition_list_t, @@ -1469,30 +1487,30 @@ extern "C" { commit_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_committed( rk: *mut rd_kafka_t, partitions: *mut rd_kafka_topic_partition_list_t, timeout_ms: c_int, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_position( rk: *mut rd_kafka_t, partitions: *mut rd_kafka_topic_partition_list_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consumer_group_metadata( rk: *mut rd_kafka_t, ) -> *mut rd_kafka_consumer_group_metadata_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consumer_group_metadata_new( group_id: *const c_char, ) -> *mut rd_kafka_consumer_group_metadata_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consumer_group_metadata_new_with_genid( group_id: *const c_char, generation_id: i32, @@ -1500,24 +1518,44 @@ extern "C" { group_instance_id: *const c_char, ) -> *mut rd_kafka_consumer_group_metadata_t; } -extern "C" { +unsafe extern "C" { + pub fn rd_kafka_consumer_group_metadata_group_id( + group_metadata: *const rd_kafka_consumer_group_metadata_t, + ) -> *const c_char; +} +unsafe extern "C" { + pub fn rd_kafka_consumer_group_metadata_group_instance_id( + group_metadata: *const rd_kafka_consumer_group_metadata_t, + ) -> *const c_char; +} +unsafe extern "C" { + pub fn rd_kafka_consumer_group_metadata_member_id( + group_metadata: *const rd_kafka_consumer_group_metadata_t, + ) -> *const c_char; +} +unsafe extern "C" { + pub fn rd_kafka_consumer_group_metadata_generation_id( + group_metadata: *const rd_kafka_consumer_group_metadata_t, + ) -> i32; +} +unsafe extern "C" { pub fn rd_kafka_consumer_group_metadata_destroy(arg1: *mut rd_kafka_consumer_group_metadata_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consumer_group_metadata_write( cgmd: *const rd_kafka_consumer_group_metadata_t, bufferp: *mut *mut c_void, sizep: *mut usize, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consumer_group_metadata_read( cgmdp: *mut *mut rd_kafka_consumer_group_metadata_t, buffer: *const c_void, size: usize, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_produce( rkt: *mut rd_kafka_topic_t, partition: i32, @@ -1529,17 +1567,17 @@ extern "C" { msg_opaque: *mut c_void, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_producev(rk: *mut rd_kafka_t, ...) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_produceva( rk: *mut rd_kafka_t, vus: *const rd_kafka_vu_t, cnt: usize, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_produce_batch( rkt: *mut rd_kafka_topic_t, partition: i32, @@ -1548,10 +1586,10 @@ extern "C" { message_cnt: c_int, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_flush(rk: *mut rd_kafka_t, timeout_ms: c_int) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_purge(rk: *mut rd_kafka_t, purge_flags: c_int) -> rd_kafka_resp_err_t; } #[repr(C)] @@ -1594,7 +1632,7 @@ pub struct rd_kafka_metadata { pub orig_broker_name: *mut c_char, } pub type rd_kafka_metadata_t = rd_kafka_metadata; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_metadata( rk: *mut rd_kafka_t, all_topics: c_int, @@ -1603,7 +1641,7 @@ extern "C" { timeout_ms: c_int, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_metadata_destroy(metadata: *const rd_kafka_metadata); } #[repr(C)] @@ -1612,16 +1650,16 @@ pub struct rd_kafka_Node_s { _unused: [u8; 0], } pub type rd_kafka_Node_t = rd_kafka_Node_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_Node_id(node: *const rd_kafka_Node_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_Node_host(node: *const rd_kafka_Node_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_Node_port(node: *const rd_kafka_Node_t) -> u16; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_Node_rack(node: *const rd_kafka_Node_t) -> *const c_char; } #[repr(C)] @@ -1646,6 +1684,14 @@ pub enum rd_kafka_consumer_group_state_t { RD_KAFKA_CONSUMER_GROUP_STATE_EMPTY = 5, RD_KAFKA_CONSUMER_GROUP_STATE__CNT = 6, } +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum rd_kafka_consumer_group_type_t { + RD_KAFKA_CONSUMER_GROUP_TYPE_UNKNOWN = 0, + RD_KAFKA_CONSUMER_GROUP_TYPE_CONSUMER = 1, + RD_KAFKA_CONSUMER_GROUP_TYPE_CLASSIC = 2, + RD_KAFKA_CONSUMER_GROUP_TYPE__CNT = 3, +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct rd_kafka_group_info { @@ -1664,7 +1710,7 @@ pub struct rd_kafka_group_list { pub groups: *mut rd_kafka_group_info, pub group_cnt: c_int, } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_list_groups( rk: *mut rd_kafka_t, group: *const c_char, @@ -1672,23 +1718,32 @@ extern "C" { timeout_ms: c_int, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consumer_group_state_name( state: rd_kafka_consumer_group_state_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_consumer_group_state_code( name: *const c_char, ) -> rd_kafka_consumer_group_state_t; } -extern "C" { +unsafe extern "C" { + pub fn rd_kafka_consumer_group_type_name( + type_: rd_kafka_consumer_group_type_t, + ) -> *const c_char; +} +unsafe extern "C" { + pub fn rd_kafka_consumer_group_type_code(name: *const c_char) + -> rd_kafka_consumer_group_type_t; +} +unsafe extern "C" { pub fn rd_kafka_group_list_destroy(grplist: *const rd_kafka_group_list); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_brokers_add(rk: *mut rd_kafka_t, brokerlist: *const c_char) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_set_logger( rk: *mut rd_kafka_t, func: Option< @@ -1701,10 +1756,10 @@ extern "C" { >, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_set_log_level(rk: *mut rd_kafka_t, level: c_int); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_log_print( rk: *const rd_kafka_t, level: c_int, @@ -1712,7 +1767,7 @@ extern "C" { buf: *const c_char, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_log_syslog( rk: *const rd_kafka_t, level: c_int, @@ -1720,13 +1775,13 @@ extern "C" { buf: *const c_char, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_outq_len(rk: *mut rd_kafka_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_dump(fp: *mut FILE, rk: *mut rd_kafka_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_thread_cnt() -> c_int; } #[repr(u32)] @@ -1736,54 +1791,54 @@ pub enum rd_kafka_thread_type_t { RD_KAFKA_THREAD_BACKGROUND = 1, RD_KAFKA_THREAD_BROKER = 2, } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_wait_destroyed(timeout_ms: c_int) -> ::std::os::raw::c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_unittest() -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_poll_set_consumer(rk: *mut rd_kafka_t) -> rd_kafka_resp_err_t; } pub type rd_kafka_event_type_t = c_int; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_type(rkev: *const rd_kafka_event_t) -> rd_kafka_event_type_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_name(rkev: *const rd_kafka_event_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_destroy(rkev: *mut rd_kafka_event_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_message_next(rkev: *mut rd_kafka_event_t) -> *const rd_kafka_message_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_message_array( rkev: *mut rd_kafka_event_t, rkmessages: *mut *const rd_kafka_message_t, size: usize, ) -> usize; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_message_count(rkev: *mut rd_kafka_event_t) -> usize; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_config_string(rkev: *mut rd_kafka_event_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_error(rkev: *mut rd_kafka_event_t) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_error_string(rkev: *mut rd_kafka_event_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_error_is_fatal(rkev: *mut rd_kafka_event_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_opaque(rkev: *mut rd_kafka_event_t) -> *mut c_void; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_log( rkev: *mut rd_kafka_event_t, fac: *mut *const c_char, @@ -1791,22 +1846,22 @@ extern "C" { level: *mut c_int, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_debug_contexts( rkev: *mut rd_kafka_event_t, dst: *mut c_char, dstsize: usize, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_stats(rkev: *mut rd_kafka_event_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_topic_partition_list( rkev: *mut rd_kafka_event_t, ) -> *mut rd_kafka_topic_partition_list_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_topic_partition( rkev: *mut rd_kafka_event_t, ) -> *mut rd_kafka_topic_partition_t; @@ -1832,118 +1887,124 @@ pub type rd_kafka_DescribeCluster_result_t = rd_kafka_event_t; pub type rd_kafka_DescribeUserScramCredentials_result_t = rd_kafka_event_t; pub type rd_kafka_AlterUserScramCredentials_result_t = rd_kafka_event_t; pub type rd_kafka_ListOffsets_result_t = rd_kafka_event_t; -extern "C" { +pub type rd_kafka_ElectLeaders_result_t = rd_kafka_event_t; +unsafe extern "C" { pub fn rd_kafka_event_CreateTopics_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_CreateTopics_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_DeleteTopics_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_DeleteTopics_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_CreatePartitions_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_CreatePartitions_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_AlterConfigs_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_AlterConfigs_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_IncrementalAlterConfigs_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_IncrementalAlterConfigs_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_DescribeConfigs_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_DescribeConfigs_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_DeleteRecords_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_DeleteRecords_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_ListConsumerGroups_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_ListConsumerGroups_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_DescribeConsumerGroups_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_DescribeConsumerGroups_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_DescribeTopics_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_DescribeTopics_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_DescribeCluster_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_DescribeCluster_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_DeleteGroups_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_DeleteGroups_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_DeleteConsumerGroupOffsets_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_DeleteConsumerGroupOffsets_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_CreateAcls_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_CreateAcls_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_DescribeAcls_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_DescribeAcls_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_DeleteAcls_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_DeleteAcls_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_ListConsumerGroupOffsets_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_ListConsumerGroupOffsets_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_AlterConsumerGroupOffsets_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_AlterConsumerGroupOffsets_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_ListOffsets_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_ListOffsets_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_DescribeUserScramCredentials_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_DescribeUserScramCredentials_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_event_AlterUserScramCredentials_result( rkev: *mut rd_kafka_event_t, ) -> *const rd_kafka_AlterUserScramCredentials_result_t; } -extern "C" { +unsafe extern "C" { + pub fn rd_kafka_event_ElectLeaders_result( + rkev: *mut rd_kafka_event_t, + ) -> *const rd_kafka_ElectLeaders_result_t; +} +unsafe extern "C" { pub fn rd_kafka_queue_poll( rkqu: *mut rd_kafka_queue_t, timeout_ms: c_int, ) -> *mut rd_kafka_event_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_queue_poll_callback(rkqu: *mut rd_kafka_queue_t, timeout_ms: c_int) -> c_int; } pub type rd_kafka_plugin_f_conf_init_t = Option< @@ -2071,7 +2132,7 @@ pub type rd_kafka_interceptor_f_on_broker_state_change_t = Option< ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t, >; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_interceptor_add_on_conf_set( conf: *mut rd_kafka_conf_t, ic_name: *const c_char, @@ -2079,7 +2140,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_interceptor_add_on_conf_dup( conf: *mut rd_kafka_conf_t, ic_name: *const c_char, @@ -2087,7 +2148,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_interceptor_add_on_conf_destroy( conf: *mut rd_kafka_conf_t, ic_name: *const c_char, @@ -2095,7 +2156,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_conf_interceptor_add_on_new( conf: *mut rd_kafka_conf_t, ic_name: *const c_char, @@ -2103,7 +2164,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_interceptor_add_on_destroy( rk: *mut rd_kafka_t, ic_name: *const c_char, @@ -2111,7 +2172,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_interceptor_add_on_send( rk: *mut rd_kafka_t, ic_name: *const c_char, @@ -2119,7 +2180,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_interceptor_add_on_acknowledgement( rk: *mut rd_kafka_t, ic_name: *const c_char, @@ -2127,7 +2188,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_interceptor_add_on_consume( rk: *mut rd_kafka_t, ic_name: *const c_char, @@ -2135,7 +2196,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_interceptor_add_on_commit( rk: *mut rd_kafka_t, ic_name: *const c_char, @@ -2143,7 +2204,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_interceptor_add_on_request_sent( rk: *mut rd_kafka_t, ic_name: *const c_char, @@ -2151,7 +2212,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_interceptor_add_on_response_received( rk: *mut rd_kafka_t, ic_name: *const c_char, @@ -2159,7 +2220,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_interceptor_add_on_thread_start( rk: *mut rd_kafka_t, ic_name: *const c_char, @@ -2167,7 +2228,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_interceptor_add_on_thread_exit( rk: *mut rd_kafka_t, ic_name: *const c_char, @@ -2175,7 +2236,7 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_interceptor_add_on_broker_state_change( rk: *mut rd_kafka_t, ic_name: *const c_char, @@ -2183,32 +2244,42 @@ extern "C" { ic_opaque: *mut c_void, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_result_error( topicres: *const rd_kafka_topic_result_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_result_error_string( topicres: *const rd_kafka_topic_result_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_topic_result_name(topicres: *const rd_kafka_topic_result_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_group_result_error( groupres: *const rd_kafka_group_result_t, ) -> *const rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_group_result_name(groupres: *const rd_kafka_group_result_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_group_result_partitions( groupres: *const rd_kafka_group_result_t, ) -> *const rd_kafka_topic_partition_list_t; } +unsafe extern "C" { + pub fn rd_kafka_topic_partition_result_partition( + partition_result: *const rd_kafka_topic_partition_result_t, + ) -> *const rd_kafka_topic_partition_t; +} +unsafe extern "C" { + pub fn rd_kafka_topic_partition_result_error( + partition_result: *const rd_kafka_topic_partition_result_t, + ) -> *const rd_kafka_error_t; +} #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum rd_kafka_admin_op_t { @@ -2234,7 +2305,8 @@ pub enum rd_kafka_admin_op_t { RD_KAFKA_ADMIN_OP_DESCRIBETOPICS = 19, RD_KAFKA_ADMIN_OP_DESCRIBECLUSTER = 20, RD_KAFKA_ADMIN_OP_LISTOFFSETS = 21, - RD_KAFKA_ADMIN_OP__CNT = 22, + RD_KAFKA_ADMIN_OP_ELECTLEADERS = 22, + RD_KAFKA_ADMIN_OP__CNT = 23, } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -2248,16 +2320,16 @@ pub enum rd_kafka_IsolationLevel_t { RD_KAFKA_ISOLATION_LEVEL_READ_UNCOMMITTED = 0, RD_KAFKA_ISOLATION_LEVEL_READ_COMMITTED = 1, } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AdminOptions_new( rk: *mut rd_kafka_t, for_api: rd_kafka_admin_op_t, ) -> *mut rd_kafka_AdminOptions_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AdminOptions_destroy(options: *mut rd_kafka_AdminOptions_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AdminOptions_set_request_timeout( options: *mut rd_kafka_AdminOptions_t, timeout_ms: c_int, @@ -2265,7 +2337,7 @@ extern "C" { errstr_size: usize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AdminOptions_set_operation_timeout( options: *mut rd_kafka_AdminOptions_t, timeout_ms: c_int, @@ -2273,7 +2345,7 @@ extern "C" { errstr_size: usize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AdminOptions_set_validate_only( options: *mut rd_kafka_AdminOptions_t, true_or_false: c_int, @@ -2281,7 +2353,7 @@ extern "C" { errstr_size: usize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AdminOptions_set_broker( options: *mut rd_kafka_AdminOptions_t, broker_id: i32, @@ -2289,32 +2361,39 @@ extern "C" { errstr_size: usize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AdminOptions_set_require_stable_offsets( options: *mut rd_kafka_AdminOptions_t, true_or_false: c_int, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AdminOptions_set_include_authorized_operations( options: *mut rd_kafka_AdminOptions_t, true_or_false: c_int, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AdminOptions_set_match_consumer_group_states( options: *mut rd_kafka_AdminOptions_t, consumer_group_states: *const rd_kafka_consumer_group_state_t, consumer_group_states_cnt: usize, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { + pub fn rd_kafka_AdminOptions_set_match_consumer_group_types( + options: *mut rd_kafka_AdminOptions_t, + consumer_group_types: *const rd_kafka_consumer_group_type_t, + consumer_group_types_cnt: usize, + ) -> *mut rd_kafka_error_t; +} +unsafe extern "C" { pub fn rd_kafka_AdminOptions_set_isolation_level( options: *mut rd_kafka_AdminOptions_t, value: rd_kafka_IsolationLevel_t, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AdminOptions_set_opaque( options: *mut rd_kafka_AdminOptions_t, ev_opaque: *mut c_void, @@ -2344,7 +2423,7 @@ pub struct rd_kafka_NewTopic_s { _unused: [u8; 0], } pub type rd_kafka_NewTopic_t = rd_kafka_NewTopic_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_NewTopic_new( topic: *const c_char, num_partitions: c_int, @@ -2353,16 +2432,16 @@ extern "C" { errstr_size: usize, ) -> *mut rd_kafka_NewTopic_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_NewTopic_destroy(new_topic: *mut rd_kafka_NewTopic_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_NewTopic_destroy_array( new_topics: *mut *mut rd_kafka_NewTopic_t, new_topic_cnt: usize, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_NewTopic_set_replica_assignment( new_topic: *mut rd_kafka_NewTopic_t, partition: i32, @@ -2372,14 +2451,14 @@ extern "C" { errstr_size: usize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_NewTopic_set_config( new_topic: *mut rd_kafka_NewTopic_t, name: *const c_char, value: *const c_char, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_CreateTopics( rk: *mut rd_kafka_t, new_topics: *mut *mut rd_kafka_NewTopic_t, @@ -2388,7 +2467,7 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_CreateTopics_result_topics( result: *const rd_kafka_CreateTopics_result_t, cntp: *mut usize, @@ -2400,19 +2479,19 @@ pub struct rd_kafka_DeleteTopic_s { _unused: [u8; 0], } pub type rd_kafka_DeleteTopic_t = rd_kafka_DeleteTopic_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteTopic_new(topic: *const c_char) -> *mut rd_kafka_DeleteTopic_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteTopic_destroy(del_topic: *mut rd_kafka_DeleteTopic_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteTopic_destroy_array( del_topics: *mut *mut rd_kafka_DeleteTopic_t, del_topic_cnt: usize, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteTopics( rk: *mut rd_kafka_t, del_topics: *mut *mut rd_kafka_DeleteTopic_t, @@ -2421,7 +2500,7 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteTopics_result_topics( result: *const rd_kafka_DeleteTopics_result_t, cntp: *mut usize, @@ -2433,7 +2512,7 @@ pub struct rd_kafka_NewPartitions_s { _unused: [u8; 0], } pub type rd_kafka_NewPartitions_t = rd_kafka_NewPartitions_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_NewPartitions_new( topic: *const c_char, new_total_cnt: usize, @@ -2441,16 +2520,16 @@ extern "C" { errstr_size: usize, ) -> *mut rd_kafka_NewPartitions_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_NewPartitions_destroy(new_parts: *mut rd_kafka_NewPartitions_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_NewPartitions_destroy_array( new_parts: *mut *mut rd_kafka_NewPartitions_t, new_parts_cnt: usize, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_NewPartitions_set_replica_assignment( new_parts: *mut rd_kafka_NewPartitions_t, new_partition_idx: i32, @@ -2460,7 +2539,7 @@ extern "C" { errstr_size: usize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_CreatePartitions( rk: *mut rd_kafka_t, new_parts: *mut *mut rd_kafka_NewPartitions_t, @@ -2469,7 +2548,7 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_CreatePartitions_result_topics( result: *const rd_kafka_CreatePartitions_result_t, cntp: *mut usize, @@ -2486,7 +2565,7 @@ pub enum rd_kafka_ConfigSource_t { RD_KAFKA_CONFIG_SOURCE_DEFAULT_CONFIG = 5, RD_KAFKA_CONFIG_SOURCE__CNT = 6, } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigSource_name(confsource: rd_kafka_ConfigSource_t) -> *const c_char; } #[repr(C)] @@ -2495,30 +2574,30 @@ pub struct rd_kafka_ConfigEntry_s { _unused: [u8; 0], } pub type rd_kafka_ConfigEntry_t = rd_kafka_ConfigEntry_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigEntry_name(entry: *const rd_kafka_ConfigEntry_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigEntry_value(entry: *const rd_kafka_ConfigEntry_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigEntry_source( entry: *const rd_kafka_ConfigEntry_t, ) -> rd_kafka_ConfigSource_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigEntry_is_read_only(entry: *const rd_kafka_ConfigEntry_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigEntry_is_default(entry: *const rd_kafka_ConfigEntry_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigEntry_is_sensitive(entry: *const rd_kafka_ConfigEntry_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigEntry_is_synonym(entry: *const rd_kafka_ConfigEntry_t) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigEntry_synonyms( entry: *const rd_kafka_ConfigEntry_t, cntp: *mut usize, @@ -2532,7 +2611,8 @@ pub enum rd_kafka_ResourceType_t { RD_KAFKA_RESOURCE_TOPIC = 2, RD_KAFKA_RESOURCE_GROUP = 3, RD_KAFKA_RESOURCE_BROKER = 4, - RD_KAFKA_RESOURCE__CNT = 5, + RD_KAFKA_RESOURCE_TRANSACTIONAL_ID = 5, + RD_KAFKA_RESOURCE__CNT = 6, } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -2553,12 +2633,12 @@ pub enum rd_kafka_AlterConfigOpType_t { RD_KAFKA_ALTER_CONFIG_OP_TYPE_SUBTRACT = 3, RD_KAFKA_ALTER_CONFIG_OP_TYPE__CNT = 4, } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ResourcePatternType_name( resource_pattern_type: rd_kafka_ResourcePatternType_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ResourceType_name(restype: rd_kafka_ResourceType_t) -> *const c_char; } #[repr(C)] @@ -2567,29 +2647,29 @@ pub struct rd_kafka_ConfigResource_s { _unused: [u8; 0], } pub type rd_kafka_ConfigResource_t = rd_kafka_ConfigResource_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigResource_new( restype: rd_kafka_ResourceType_t, resname: *const c_char, ) -> *mut rd_kafka_ConfigResource_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigResource_destroy(config: *mut rd_kafka_ConfigResource_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigResource_destroy_array( config: *mut *mut rd_kafka_ConfigResource_t, config_cnt: usize, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigResource_set_config( config: *mut rd_kafka_ConfigResource_t, name: *const c_char, value: *const c_char, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigResource_add_incremental_config( config: *mut rd_kafka_ConfigResource_t, name: *const c_char, @@ -2597,31 +2677,31 @@ extern "C" { value: *const c_char, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigResource_configs( config: *const rd_kafka_ConfigResource_t, cntp: *mut usize, ) -> *mut *const rd_kafka_ConfigEntry_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigResource_type( config: *const rd_kafka_ConfigResource_t, ) -> rd_kafka_ResourceType_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigResource_name(config: *const rd_kafka_ConfigResource_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigResource_error( config: *const rd_kafka_ConfigResource_t, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConfigResource_error_string( config: *const rd_kafka_ConfigResource_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AlterConfigs( rk: *mut rd_kafka_t, configs: *mut *mut rd_kafka_ConfigResource_t, @@ -2630,13 +2710,13 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AlterConfigs_result_resources( result: *const rd_kafka_AlterConfigs_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_ConfigResource_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_IncrementalAlterConfigs( rk: *mut rd_kafka_t, configs: *mut *mut rd_kafka_ConfigResource_t, @@ -2645,13 +2725,13 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_IncrementalAlterConfigs_result_resources( result: *const rd_kafka_IncrementalAlterConfigs_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_ConfigResource_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeConfigs( rk: *mut rd_kafka_t, configs: *mut *mut rd_kafka_ConfigResource_t, @@ -2660,7 +2740,7 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeConfigs_result_resources( result: *const rd_kafka_DescribeConfigs_result_t, cntp: *mut usize, @@ -2672,21 +2752,21 @@ pub struct rd_kafka_DeleteRecords_s { _unused: [u8; 0], } pub type rd_kafka_DeleteRecords_t = rd_kafka_DeleteRecords_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteRecords_new( before_offsets: *const rd_kafka_topic_partition_list_t, ) -> *mut rd_kafka_DeleteRecords_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteRecords_destroy(del_records: *mut rd_kafka_DeleteRecords_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteRecords_destroy_array( del_records: *mut *mut rd_kafka_DeleteRecords_t, del_record_cnt: usize, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteRecords( rk: *mut rd_kafka_t, del_records: *mut *mut rd_kafka_DeleteRecords_t, @@ -2695,7 +2775,7 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteRecords_result_offsets( result: *const rd_kafka_DeleteRecords_result_t, ) -> *const rd_kafka_topic_partition_list_t; @@ -2718,16 +2798,16 @@ pub struct rd_kafka_TopicDescription_s { _unused: [u8; 0], } pub type rd_kafka_TopicDescription_t = rd_kafka_TopicDescription_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicCollection_of_topic_names( topics: *mut *const c_char, topics_cnt: usize, ) -> *mut rd_kafka_TopicCollection_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicCollection_destroy(topics: *mut rd_kafka_TopicCollection_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeTopics( rk: *mut rd_kafka_t, topics: *const rd_kafka_TopicCollection_t, @@ -2735,91 +2815,91 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeTopics_result_topics( result: *const rd_kafka_DescribeTopics_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_TopicDescription_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicDescription_partitions( topicdesc: *const rd_kafka_TopicDescription_t, cntp: *mut usize, ) -> *mut *const rd_kafka_TopicPartitionInfo_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicPartitionInfo_partition( partition: *const rd_kafka_TopicPartitionInfo_t, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicPartitionInfo_leader( partition: *const rd_kafka_TopicPartitionInfo_t, ) -> *const rd_kafka_Node_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicPartitionInfo_isr( partition: *const rd_kafka_TopicPartitionInfo_t, cntp: *mut usize, ) -> *mut *const rd_kafka_Node_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicPartitionInfo_replicas( partition: *const rd_kafka_TopicPartitionInfo_t, cntp: *mut usize, ) -> *mut *const rd_kafka_Node_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicDescription_authorized_operations( topicdesc: *const rd_kafka_TopicDescription_t, cntp: *mut usize, ) -> *const rd_kafka_AclOperation_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicDescription_name( topicdesc: *const rd_kafka_TopicDescription_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicDescription_topic_id( topicdesc: *const rd_kafka_TopicDescription_t, ) -> *const rd_kafka_Uuid_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicDescription_is_internal( topicdesc: *const rd_kafka_TopicDescription_t, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_TopicDescription_error( topicdesc: *const rd_kafka_TopicDescription_t, ) -> *const rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeCluster( rk: *mut rd_kafka_t, options: *const rd_kafka_AdminOptions_t, rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeCluster_result_nodes( result: *const rd_kafka_DescribeCluster_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_Node_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeCluster_result_authorized_operations( result: *const rd_kafka_DescribeCluster_result_t, cntp: *mut usize, ) -> *const rd_kafka_AclOperation_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeCluster_result_controller( result: *const rd_kafka_DescribeCluster_result_t, ) -> *const rd_kafka_Node_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeCluster_result_cluster_id( result: *const rd_kafka_DescribeCluster_result_t, ) -> *const c_char; @@ -2836,35 +2916,40 @@ pub struct rd_kafka_ListConsumerGroupsResult_s { _unused: [u8; 0], } pub type rd_kafka_ListConsumerGroupsResult_t = rd_kafka_ListConsumerGroupsResult_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ListConsumerGroups( rk: *mut rd_kafka_t, options: *const rd_kafka_AdminOptions_t, rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupListing_group_id( grplist: *const rd_kafka_ConsumerGroupListing_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupListing_is_simple_consumer_group( grplist: *const rd_kafka_ConsumerGroupListing_t, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupListing_state( grplist: *const rd_kafka_ConsumerGroupListing_t, ) -> rd_kafka_consumer_group_state_t; } -extern "C" { +unsafe extern "C" { + pub fn rd_kafka_ConsumerGroupListing_type( + grplist: *const rd_kafka_ConsumerGroupListing_t, + ) -> rd_kafka_consumer_group_type_t; +} +unsafe extern "C" { pub fn rd_kafka_ListConsumerGroups_result_valid( result: *const rd_kafka_ListConsumerGroups_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_ConsumerGroupListing_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ListConsumerGroups_result_errors( result: *const rd_kafka_ListConsumerGroups_result_t, cntp: *mut usize, @@ -2888,7 +2973,7 @@ pub struct rd_kafka_MemberAssignment_s { _unused: [u8; 0], } pub type rd_kafka_MemberAssignment_t = rd_kafka_MemberAssignment_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeConsumerGroups( rk: *mut rd_kafka_t, groups: *mut *const c_char, @@ -2897,85 +2982,85 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeConsumerGroups_result_groups( result: *const rd_kafka_DescribeConsumerGroups_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_ConsumerGroupDescription_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupDescription_group_id( grpdesc: *const rd_kafka_ConsumerGroupDescription_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupDescription_error( grpdesc: *const rd_kafka_ConsumerGroupDescription_t, ) -> *const rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupDescription_is_simple_consumer_group( grpdesc: *const rd_kafka_ConsumerGroupDescription_t, ) -> c_int; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupDescription_partition_assignor( grpdesc: *const rd_kafka_ConsumerGroupDescription_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupDescription_authorized_operations( grpdesc: *const rd_kafka_ConsumerGroupDescription_t, cntp: *mut usize, ) -> *const rd_kafka_AclOperation_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupDescription_state( grpdesc: *const rd_kafka_ConsumerGroupDescription_t, ) -> rd_kafka_consumer_group_state_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupDescription_coordinator( grpdesc: *const rd_kafka_ConsumerGroupDescription_t, ) -> *const rd_kafka_Node_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupDescription_member_count( grpdesc: *const rd_kafka_ConsumerGroupDescription_t, ) -> usize; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ConsumerGroupDescription_member( grpdesc: *const rd_kafka_ConsumerGroupDescription_t, idx: usize, ) -> *const rd_kafka_MemberDescription_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_MemberDescription_client_id( member: *const rd_kafka_MemberDescription_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_MemberDescription_group_instance_id( member: *const rd_kafka_MemberDescription_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_MemberDescription_consumer_id( member: *const rd_kafka_MemberDescription_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_MemberDescription_host( member: *const rd_kafka_MemberDescription_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_MemberDescription_assignment( member: *const rd_kafka_MemberDescription_t, ) -> *const rd_kafka_MemberAssignment_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_MemberAssignment_partitions( assignment: *const rd_kafka_MemberAssignment_t, ) -> *const rd_kafka_topic_partition_list_t; @@ -2986,19 +3071,19 @@ pub struct rd_kafka_DeleteGroup_s { _unused: [u8; 0], } pub type rd_kafka_DeleteGroup_t = rd_kafka_DeleteGroup_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteGroup_new(group: *const c_char) -> *mut rd_kafka_DeleteGroup_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteGroup_destroy(del_group: *mut rd_kafka_DeleteGroup_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteGroup_destroy_array( del_groups: *mut *mut rd_kafka_DeleteGroup_t, del_group_cnt: usize, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteGroups( rk: *mut rd_kafka_t, del_groups: *mut *mut rd_kafka_DeleteGroup_t, @@ -3007,7 +3092,7 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteGroups_result_groups( result: *const rd_kafka_DeleteGroups_result_t, cntp: *mut usize, @@ -3019,24 +3104,24 @@ pub struct rd_kafka_ListConsumerGroupOffsets_s { _unused: [u8; 0], } pub type rd_kafka_ListConsumerGroupOffsets_t = rd_kafka_ListConsumerGroupOffsets_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ListConsumerGroupOffsets_new( group_id: *const c_char, partitions: *const rd_kafka_topic_partition_list_t, ) -> *mut rd_kafka_ListConsumerGroupOffsets_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ListConsumerGroupOffsets_destroy( list_grpoffsets: *mut rd_kafka_ListConsumerGroupOffsets_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ListConsumerGroupOffsets_destroy_array( list_grpoffsets: *mut *mut rd_kafka_ListConsumerGroupOffsets_t, list_grpoffset_cnt: usize, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ListConsumerGroupOffsets( rk: *mut rd_kafka_t, list_grpoffsets: *mut *mut rd_kafka_ListConsumerGroupOffsets_t, @@ -3045,7 +3130,7 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ListConsumerGroupOffsets_result_groups( result: *const rd_kafka_ListConsumerGroupOffsets_result_t, cntp: *mut usize, @@ -3057,24 +3142,24 @@ pub struct rd_kafka_AlterConsumerGroupOffsets_s { _unused: [u8; 0], } pub type rd_kafka_AlterConsumerGroupOffsets_t = rd_kafka_AlterConsumerGroupOffsets_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AlterConsumerGroupOffsets_new( group_id: *const c_char, partitions: *const rd_kafka_topic_partition_list_t, ) -> *mut rd_kafka_AlterConsumerGroupOffsets_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AlterConsumerGroupOffsets_destroy( alter_grpoffsets: *mut rd_kafka_AlterConsumerGroupOffsets_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AlterConsumerGroupOffsets_destroy_array( alter_grpoffsets: *mut *mut rd_kafka_AlterConsumerGroupOffsets_t, alter_grpoffset_cnt: usize, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AlterConsumerGroupOffsets( rk: *mut rd_kafka_t, alter_grpoffsets: *mut *mut rd_kafka_AlterConsumerGroupOffsets_t, @@ -3083,7 +3168,7 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AlterConsumerGroupOffsets_result_groups( result: *const rd_kafka_AlterConsumerGroupOffsets_result_t, cntp: *mut usize, @@ -3095,24 +3180,24 @@ pub struct rd_kafka_DeleteConsumerGroupOffsets_s { _unused: [u8; 0], } pub type rd_kafka_DeleteConsumerGroupOffsets_t = rd_kafka_DeleteConsumerGroupOffsets_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteConsumerGroupOffsets_new( group: *const c_char, partitions: *const rd_kafka_topic_partition_list_t, ) -> *mut rd_kafka_DeleteConsumerGroupOffsets_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteConsumerGroupOffsets_destroy( del_grpoffsets: *mut rd_kafka_DeleteConsumerGroupOffsets_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteConsumerGroupOffsets_destroy_array( del_grpoffsets: *mut *mut rd_kafka_DeleteConsumerGroupOffsets_t, del_grpoffset_cnt: usize, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteConsumerGroupOffsets( rk: *mut rd_kafka_t, del_grpoffsets: *mut *mut rd_kafka_DeleteConsumerGroupOffsets_t, @@ -3121,7 +3206,7 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteConsumerGroupOffsets_result_groups( result: *const rd_kafka_DeleteConsumerGroupOffsets_result_t, cntp: *mut usize, @@ -3140,23 +3225,23 @@ pub struct rd_kafka_ListOffsetsResultInfo_s { _unused: [u8; 0], } pub type rd_kafka_ListOffsetsResultInfo_t = rd_kafka_ListOffsetsResultInfo_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ListOffsetsResultInfo_topic_partition( result_info: *const rd_kafka_ListOffsetsResultInfo_t, ) -> *const rd_kafka_topic_partition_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ListOffsetsResultInfo_timestamp( result_info: *const rd_kafka_ListOffsetsResultInfo_t, ) -> i64; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ListOffsets_result_infos( result: *const rd_kafka_ListOffsets_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_ListOffsetsResultInfo_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ListOffsets( rk: *mut rd_kafka_t, topic_partitions: *mut rd_kafka_topic_partition_list_t, @@ -3178,12 +3263,12 @@ pub struct rd_kafka_ScramCredentialInfo_s { _unused: [u8; 0], } pub type rd_kafka_ScramCredentialInfo_t = rd_kafka_ScramCredentialInfo_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ScramCredentialInfo_mechanism( scram_credential_info: *const rd_kafka_ScramCredentialInfo_t, ) -> rd_kafka_ScramMechanism_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_ScramCredentialInfo_iterations( scram_credential_info: *const rd_kafka_ScramCredentialInfo_t, ) -> i32; @@ -3194,34 +3279,34 @@ pub struct rd_kafka_UserScramCredentialsDescription_s { _unused: [u8; 0], } pub type rd_kafka_UserScramCredentialsDescription_t = rd_kafka_UserScramCredentialsDescription_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_UserScramCredentialsDescription_user( description: *const rd_kafka_UserScramCredentialsDescription_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_UserScramCredentialsDescription_error( description: *const rd_kafka_UserScramCredentialsDescription_t, ) -> *const rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_UserScramCredentialsDescription_scramcredentialinfo_count( description: *const rd_kafka_UserScramCredentialsDescription_t, ) -> usize; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_UserScramCredentialsDescription_scramcredentialinfo( description: *const rd_kafka_UserScramCredentialsDescription_t, idx: usize, ) -> *const rd_kafka_ScramCredentialInfo_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeUserScramCredentials_result_descriptions( result: *const rd_kafka_DescribeUserScramCredentials_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_UserScramCredentialsDescription_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeUserScramCredentials( rk: *mut rd_kafka_t, users: *mut *const c_char, @@ -3236,7 +3321,7 @@ pub struct rd_kafka_UserScramCredentialAlteration_s { _unused: [u8; 0], } pub type rd_kafka_UserScramCredentialAlteration_t = rd_kafka_UserScramCredentialAlteration_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_UserScramCredentialUpsertion_new( username: *const c_char, mechanism: rd_kafka_ScramMechanism_t, @@ -3247,18 +3332,18 @@ extern "C" { salt_size: usize, ) -> *mut rd_kafka_UserScramCredentialAlteration_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_UserScramCredentialDeletion_new( username: *const c_char, mechanism: rd_kafka_ScramMechanism_t, ) -> *mut rd_kafka_UserScramCredentialAlteration_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_UserScramCredentialAlteration_destroy( alteration: *mut rd_kafka_UserScramCredentialAlteration_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_UserScramCredentialAlteration_destroy_array( alterations: *mut *mut rd_kafka_UserScramCredentialAlteration_t, alteration_cnt: usize, @@ -3271,23 +3356,23 @@ pub struct rd_kafka_AlterUserScramCredentials_result_response_s { } pub type rd_kafka_AlterUserScramCredentials_result_response_t = rd_kafka_AlterUserScramCredentials_result_response_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AlterUserScramCredentials_result_response_user( response: *const rd_kafka_AlterUserScramCredentials_result_response_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AlterUserScramCredentials_result_response_error( response: *const rd_kafka_AlterUserScramCredentials_result_response_t, ) -> *const rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AlterUserScramCredentials_result_responses( result: *const rd_kafka_AlterUserScramCredentials_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_AlterUserScramCredentials_result_response_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AlterUserScramCredentials( rk: *mut rd_kafka_t, alterations: *mut *mut rd_kafka_UserScramCredentialAlteration_t, @@ -3303,12 +3388,12 @@ pub struct rd_kafka_AclBinding_s { } pub type rd_kafka_AclBinding_t = rd_kafka_AclBinding_s; pub type rd_kafka_AclBindingFilter_t = rd_kafka_AclBinding_t; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_acl_result_error( aclres: *const rd_kafka_acl_result_t, ) -> *const rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclOperation_name(acl_operation: rd_kafka_AclOperation_t) -> *const c_char; } #[repr(u32)] @@ -3320,12 +3405,12 @@ pub enum rd_kafka_AclPermissionType_t { RD_KAFKA_ACL_PERMISSION_TYPE_ALLOW = 3, RD_KAFKA_ACL_PERMISSION_TYPE__CNT = 4, } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclPermissionType_name( acl_permission_type: rd_kafka_AclPermissionType_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBinding_new( restype: rd_kafka_ResourceType_t, name: *const c_char, @@ -3338,7 +3423,7 @@ extern "C" { errstr_size: usize, ) -> *mut rd_kafka_AclBinding_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBindingFilter_new( restype: rd_kafka_ResourceType_t, name: *const c_char, @@ -3351,54 +3436,54 @@ extern "C" { errstr_size: usize, ) -> *mut rd_kafka_AclBindingFilter_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBinding_restype( acl: *const rd_kafka_AclBinding_t, ) -> rd_kafka_ResourceType_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBinding_name(acl: *const rd_kafka_AclBinding_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBinding_principal(acl: *const rd_kafka_AclBinding_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBinding_host(acl: *const rd_kafka_AclBinding_t) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBinding_operation( acl: *const rd_kafka_AclBinding_t, ) -> rd_kafka_AclOperation_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBinding_permission_type( acl: *const rd_kafka_AclBinding_t, ) -> rd_kafka_AclPermissionType_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBinding_resource_pattern_type( acl: *const rd_kafka_AclBinding_t, ) -> rd_kafka_ResourcePatternType_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBinding_error(acl: *const rd_kafka_AclBinding_t) -> *const rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBinding_destroy(acl_binding: *mut rd_kafka_AclBinding_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_AclBinding_destroy_array( acl_bindings: *mut *mut rd_kafka_AclBinding_t, acl_bindings_cnt: usize, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_CreateAcls_result_acls( result: *const rd_kafka_CreateAcls_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_acl_result_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_CreateAcls( rk: *mut rd_kafka_t, new_acls: *mut *mut rd_kafka_AclBinding_t, @@ -3407,13 +3492,13 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeAcls_result_acls( result: *const rd_kafka_DescribeAcls_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_AclBinding_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DescribeAcls( rk: *mut rd_kafka_t, acl_filter: *mut rd_kafka_AclBindingFilter_t, @@ -3427,24 +3512,24 @@ pub struct rd_kafka_DeleteAcls_result_response_s { _unused: [u8; 0], } pub type rd_kafka_DeleteAcls_result_response_t = rd_kafka_DeleteAcls_result_response_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteAcls_result_responses( result: *const rd_kafka_DeleteAcls_result_t, cntp: *mut usize, ) -> *mut *const rd_kafka_DeleteAcls_result_response_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteAcls_result_response_error( result_response: *const rd_kafka_DeleteAcls_result_response_t, ) -> *const rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteAcls_result_response_matching_acls( result_response: *const rd_kafka_DeleteAcls_result_response_t, matching_acls_cntp: *mut usize, ) -> *mut *const rd_kafka_AclBinding_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_DeleteAcls( rk: *mut rd_kafka_t, del_acls: *mut *mut rd_kafka_AclBindingFilter_t, @@ -3453,7 +3538,42 @@ extern "C" { rkqu: *mut rd_kafka_queue_t, ); } -extern "C" { +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rd_kafka_ElectLeaders_s { + _unused: [u8; 0], +} +pub type rd_kafka_ElectLeaders_t = rd_kafka_ElectLeaders_s; +#[repr(u32)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum rd_kafka_ElectionType_t { + RD_KAFKA_ELECTION_TYPE_PREFERRED = 0, + RD_KAFKA_ELECTION_TYPE_UNCLEAN = 1, +} +unsafe extern "C" { + pub fn rd_kafka_ElectLeaders_new( + election_type: rd_kafka_ElectionType_t, + partitions: *mut rd_kafka_topic_partition_list_t, + ) -> *mut rd_kafka_ElectLeaders_t; +} +unsafe extern "C" { + pub fn rd_kafka_ElectLeaders_destroy(elect_leaders: *mut rd_kafka_ElectLeaders_t); +} +unsafe extern "C" { + pub fn rd_kafka_ElectLeaders( + rk: *mut rd_kafka_t, + elect_leaders: *mut rd_kafka_ElectLeaders_t, + options: *const rd_kafka_AdminOptions_t, + rkqu: *mut rd_kafka_queue_t, + ); +} +unsafe extern "C" { + pub fn rd_kafka_ElectLeaders_result_partitions( + result: *const rd_kafka_ElectLeaders_result_t, + cntp: *mut usize, + ) -> *mut *const rd_kafka_topic_partition_result_t; +} +unsafe extern "C" { pub fn rd_kafka_oauthbearer_set_token( rk: *mut rd_kafka_t, token_value: *const c_char, @@ -3465,22 +3585,22 @@ extern "C" { errstr_size: usize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_oauthbearer_set_token_failure( rk: *mut rd_kafka_t, errstr: *const c_char, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_init_transactions( rk: *mut rd_kafka_t, timeout_ms: c_int, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_begin_transaction(rk: *mut rd_kafka_t) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_send_offsets_to_transaction( rk: *mut rd_kafka_t, offsets: *const rd_kafka_topic_partition_list_t, @@ -3488,13 +3608,13 @@ extern "C" { timeout_ms: c_int, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_commit_transaction( rk: *mut rd_kafka_t, timeout_ms: c_int, ) -> *mut rd_kafka_error_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_abort_transaction( rk: *mut rd_kafka_t, timeout_ms: c_int, @@ -3506,32 +3626,32 @@ pub struct rd_kafka_mock_cluster_s { _unused: [u8; 0], } pub type rd_kafka_mock_cluster_t = rd_kafka_mock_cluster_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_cluster_new( rk: *mut rd_kafka_t, broker_cnt: c_int, ) -> *mut rd_kafka_mock_cluster_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_cluster_destroy(mcluster: *mut rd_kafka_mock_cluster_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_cluster_handle( mcluster: *const rd_kafka_mock_cluster_t, ) -> *mut rd_kafka_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_handle_mock_cluster(rk: *const rd_kafka_t) -> *mut rd_kafka_mock_cluster_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_cluster_bootstraps( mcluster: *const rd_kafka_mock_cluster_t, ) -> *const c_char; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_clear_request_errors(mcluster: *mut rd_kafka_mock_cluster_t, ApiKey: i16); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_push_request_errors( mcluster: *mut rd_kafka_mock_cluster_t, ApiKey: i16, @@ -3539,7 +3659,7 @@ extern "C" { ... ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_push_request_errors_array( mcluster: *mut rd_kafka_mock_cluster_t, ApiKey: i16, @@ -3547,7 +3667,13 @@ extern "C" { errors: *const rd_kafka_resp_err_t, ); } -extern "C" { +unsafe extern "C" { + pub fn rd_kafka_mock_group_initial_rebalance_delay_ms( + mcluster: *mut rd_kafka_mock_cluster_t, + delay_ms: i32, + ); +} +unsafe extern "C" { pub fn rd_kafka_mock_broker_push_request_error_rtts( mcluster: *mut rd_kafka_mock_cluster_t, broker_id: i32, @@ -3556,7 +3682,7 @@ extern "C" { ... ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_broker_error_stack_cnt( mcluster: *mut rd_kafka_mock_cluster_t, broker_id: i32, @@ -3564,14 +3690,14 @@ extern "C" { cntp: *mut usize, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_topic_set_error( mcluster: *mut rd_kafka_mock_cluster_t, topic: *const c_char, err: rd_kafka_resp_err_t, ); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_topic_create( mcluster: *mut rd_kafka_mock_cluster_t, topic: *const c_char, @@ -3579,7 +3705,7 @@ extern "C" { replication_factor: c_int, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_partition_set_leader( mcluster: *mut rd_kafka_mock_cluster_t, topic: *const c_char, @@ -3587,7 +3713,7 @@ extern "C" { broker_id: i32, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_partition_set_follower( mcluster: *mut rd_kafka_mock_cluster_t, topic: *const c_char, @@ -3595,7 +3721,7 @@ extern "C" { broker_id: i32, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_partition_set_follower_wmarks( mcluster: *mut rd_kafka_mock_cluster_t, topic: *const c_char, @@ -3604,33 +3730,42 @@ extern "C" { hi: i64, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { + pub fn rd_kafka_mock_partition_push_leader_response( + mcluster: *mut rd_kafka_mock_cluster_t, + topic: *const c_char, + partition: c_int, + leader_id: i32, + leader_epoch: i32, + ) -> rd_kafka_resp_err_t; +} +unsafe extern "C" { pub fn rd_kafka_mock_broker_set_down( mcluster: *mut rd_kafka_mock_cluster_t, broker_id: i32, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_broker_set_up( mcluster: *mut rd_kafka_mock_cluster_t, broker_id: i32, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_broker_set_rtt( mcluster: *mut rd_kafka_mock_cluster_t, broker_id: i32, rtt_ms: c_int, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_broker_set_rack( mcluster: *mut rd_kafka_mock_cluster_t, broker_id: i32, rack: *const c_char, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_coordinator_set( mcluster: *mut rd_kafka_mock_cluster_t, key_type: *const c_char, @@ -3638,7 +3773,7 @@ extern "C" { broker_id: i32, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_set_apiversion( mcluster: *mut rd_kafka_mock_cluster_t, ApiKey: i16, @@ -3646,10 +3781,10 @@ extern "C" { MaxVersion: i16, ) -> rd_kafka_resp_err_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_start_request_tracking(mcluster: *mut rd_kafka_mock_cluster_t); } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_stop_request_tracking(mcluster: *mut rd_kafka_mock_cluster_t); } #[repr(C)] @@ -3658,24 +3793,81 @@ pub struct rd_kafka_mock_request_s { _unused: [u8; 0], } pub type rd_kafka_mock_request_t = rd_kafka_mock_request_s; -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_request_destroy(mreq: *mut rd_kafka_mock_request_t); } -extern "C" { +unsafe extern "C" { + pub fn rd_kafka_mock_request_destroy_array( + mreqs: *mut *mut rd_kafka_mock_request_t, + mreq_cnt: usize, + ); +} +unsafe extern "C" { pub fn rd_kafka_mock_request_id(mreq: *mut rd_kafka_mock_request_t) -> i32; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_request_api_key(mreq: *mut rd_kafka_mock_request_t) -> i16; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_request_timestamp(mreq: *mut rd_kafka_mock_request_t) -> i64; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_get_requests( mcluster: *mut rd_kafka_mock_cluster_t, cntp: *mut usize, ) -> *mut *mut rd_kafka_mock_request_t; } -extern "C" { +unsafe extern "C" { pub fn rd_kafka_mock_clear_requests(mcluster: *mut rd_kafka_mock_cluster_t); } +unsafe extern "C" { + pub fn rd_kafka_mock_telemetry_set_requested_metrics( + mcluster: *mut rd_kafka_mock_cluster_t, + metrics: *mut *mut c_char, + metrics_cnt: usize, + ) -> rd_kafka_resp_err_t; +} +unsafe extern "C" { + pub fn rd_kafka_mock_telemetry_set_push_interval( + mcluster: *mut rd_kafka_mock_cluster_t, + push_interval_ms: i64, + ) -> rd_kafka_resp_err_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rd_kafka_mock_cgrp_consumer_target_assignment_s { + _unused: [u8; 0], +} +pub type rd_kafka_mock_cgrp_consumer_target_assignment_t = + rd_kafka_mock_cgrp_consumer_target_assignment_s; +unsafe extern "C" { + pub fn rd_kafka_mock_cgrp_consumer_target_assignment_new( + member_ids: *mut *mut c_char, + member_cnt: c_int, + assignment: *mut *mut rd_kafka_topic_partition_list_t, + ) -> *mut rd_kafka_mock_cgrp_consumer_target_assignment_t; +} +unsafe extern "C" { + pub fn rd_kafka_mock_cgrp_consumer_target_assignment_destroy( + target_assignment: *mut rd_kafka_mock_cgrp_consumer_target_assignment_t, + ); +} +unsafe extern "C" { + pub fn rd_kafka_mock_cgrp_consumer_target_assignment( + mcluster: *mut rd_kafka_mock_cluster_t, + group_id: *const c_char, + target_assignment: *mut rd_kafka_mock_cgrp_consumer_target_assignment_t, + ); +} +unsafe extern "C" { + pub fn rd_kafka_mock_set_group_consumer_session_timeout_ms( + mcluster: *mut rd_kafka_mock_cluster_t, + group_consumer_session_timeout_ms: c_int, + ); +} +unsafe extern "C" { + pub fn rd_kafka_mock_set_group_consumer_heartbeat_interval_ms( + mcluster: *mut rd_kafka_mock_cluster_t, + group_consumer_heartbeat_interval_ms: c_int, + ); +} diff --git a/rdkafka-sys/src/helpers.rs b/rdkafka-sys/src/helpers.rs index 8e5cc60b6..f1f33acdf 100644 --- a/rdkafka-sys/src/helpers.rs +++ b/rdkafka-sys/src/helpers.rs @@ -68,6 +68,8 @@ pub fn rd_kafka_resp_err_t_to_rdkafka_error(err: RDKafkaRespErr) -> RDKafkaError RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST => AssignmentLost, RD_KAFKA_RESP_ERR__NOOP => Noop, RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET => AutoOffsetReset, + RD_KAFKA_RESP_ERR__LOG_TRUNCATION => LogTruncation, + RD_KAFKA_RESP_ERR__INVALID_DIFFERENT_RECORD => InvalidDifferentRecord, RD_KAFKA_RESP_ERR__END => End, RD_KAFKA_RESP_ERR_UNKNOWN => Unknown, RD_KAFKA_RESP_ERR_NO_ERROR => NoError, @@ -173,6 +175,12 @@ pub fn rd_kafka_resp_err_t_to_rdkafka_error(err: RDKafkaRespErr) -> RDKafkaError RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED => FeatureUpdateFailed, RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE => PrincipalDeserializationFailure, RD_KAFKA_RESP_ERR_END_ALL => EndAll, - RD_KAFKA_RESP_ERR__LOG_TRUNCATION => LogTruncation, + RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_ID => UnknownTopicId, + RD_KAFKA_RESP_ERR_FENCED_MEMBER_EPOCH => FencedMemberEpoch, + RD_KAFKA_RESP_ERR_UNRELEASED_INSTANCE_ID => UnreleasedInstanceId, + RD_KAFKA_RESP_ERR_UNSUPPORTED_ASSIGNOR => UnsupportedAssignor, + RD_KAFKA_RESP_ERR_STALE_MEMBER_EPOCH => StaleMemberEpoch, + RD_KAFKA_RESP_ERR_UNKNOWN_SUBSCRIPTION_ID => UnknownSubscriptionId, + RD_KAFKA_RESP_ERR_TELEMETRY_TOO_LARGE => TelemetryTooLarge, } } diff --git a/rdkafka-sys/src/types.rs b/rdkafka-sys/src/types.rs index 0005073ba..7ffae058c 100644 --- a/rdkafka-sys/src/types.rs +++ b/rdkafka-sys/src/types.rs @@ -249,6 +249,8 @@ pub enum RDKafkaErrorCode { AutoOffsetReset = -140, /// Partition log truncation detected LogTruncation = -139, + /// A different record in the batch was invalid and this message failed persisting. + InvalidDifferentRecord = -138, #[doc(hidden)] End = -100, /// Unknown broker error. @@ -456,6 +458,20 @@ pub enum RDKafkaErrorCode { FeatureUpdateFailed = 96, /// Request principal deserialization failed during forwarding. PrincipalDeserializationFailure = 97, + /// Unknown Topic Id + UnknownTopicId = 100, + /// The member epoch is fenced by the group coordinator + FencedMemberEpoch = 110, + /// The instance ID is still used by another member in the consumer group + UnreleasedInstanceId = 111, + /// The assignor or its version range is not supported by the consumer group + UnsupportedAssignor = 112, + /// The member epoch is stale + StaleMemberEpoch = 113, + /// Client sent a push telemetry request with an invalid or outdated subscription ID. + UnknownSubscriptionId = 117, + /// Client sent a push telemetry request larger than the maximum size the broker will accept. + TelemetryTooLarge = 118, #[doc(hidden)] EndAll, }