Skip to content

Commit a1aee33

Browse files
committed
Additional AdminClient operations.
Use cstr_to_owned
1 parent c3dbc0d commit a1aee33

File tree

1 file changed

+10
-26
lines changed

1 file changed

+10
-26
lines changed

src/group_description.rs

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
33
use crate::error::{IsError, KafkaError, RDKafkaError};
44
use crate::group_description::ConsumerGroupState::Invalid;
5+
use crate::util::cstr_to_owned;
56
use crate::TopicPartitionList;
67
use rdkafka_sys as rdsys;
78
use rdkafka_sys::types::*;
8-
use std::ffi::CStr;
99

1010
/// Result of the `AdminClient::describe_consumer_groups` method.
1111
pub type ConsumerGroupDescriptionResult = Result<ConsumerGroupDescription, (String, KafkaError)>;
@@ -66,9 +66,7 @@ impl ConsumerGroupDescription {
6666
pub(crate) unsafe fn from_ptr(
6767
ptr: *const RDKafkaConsumerGroupDescription,
6868
) -> ConsumerGroupDescriptionResult {
69-
let group_id = CStr::from_ptr(rdsys::rd_kafka_ConsumerGroupDescription_group_id(ptr))
70-
.to_string_lossy()
71-
.into_owned();
69+
let group_id = cstr_to_owned(rdsys::rd_kafka_ConsumerGroupDescription_group_id(ptr));
7270

7371
let kafka_error =
7472
RDKafkaError::from_ptr(rdsys::rd_kafka_ConsumerGroupDescription_error(ptr) as *mut _);
@@ -78,11 +76,9 @@ impl ConsumerGroupDescription {
7876
let is_simple_consumer_group: bool =
7977
rdsys::rd_kafka_ConsumerGroupDescription_is_simple_consumer_group(ptr) != 0;
8078

81-
let partition_assignor = CStr::from_ptr(
79+
let partition_assignor = cstr_to_owned(
8280
rdsys::rd_kafka_ConsumerGroupDescription_partition_assignor(ptr),
83-
)
84-
.to_string_lossy()
85-
.into_owned();
81+
);
8682

8783
let mut acl_count = 0;
8884
let acl_list =
@@ -257,15 +253,13 @@ pub struct Node {
257253
impl Node {
258254
pub(crate) unsafe fn from_ptr(ptr: *const RDKafkaNode) -> Node {
259255
let id = rdsys::rd_kafka_Node_id(ptr);
260-
let host = CStr::from_ptr(rdsys::rd_kafka_Node_host(ptr))
261-
.to_string_lossy()
262-
.into_owned();
256+
let host = cstr_to_owned(rdsys::rd_kafka_Node_host(ptr));
263257
let port = rdsys::rd_kafka_Node_port(ptr);
264258
let rack_ptr = rdsys::rd_kafka_Node_rack(ptr);
265259
let rack = if rack_ptr.is_null() {
266260
None
267261
} else {
268-
Some(CStr::from_ptr(rack_ptr).to_string_lossy().into_owned())
262+
Some(cstr_to_owned(rack_ptr))
269263
};
270264
Node {
271265
id,
@@ -341,25 +335,15 @@ impl MemberDescription {
341335
pub(crate) unsafe fn from_ptr(
342336
ptr: *const RDKafkaMemberDescription,
343337
) -> MemberDescription {
344-
let client_id = CStr::from_ptr(rdsys::rd_kafka_MemberDescription_client_id(ptr))
345-
.to_string_lossy()
346-
.into_owned();
338+
let client_id = cstr_to_owned(rdsys::rd_kafka_MemberDescription_client_id(ptr));
347339
let group_instance_id_ptr = rdsys::rd_kafka_MemberDescription_group_instance_id(ptr);
348340
let group_instance_id = if group_instance_id_ptr.is_null() {
349341
None
350342
} else {
351-
Some(
352-
CStr::from_ptr(group_instance_id_ptr)
353-
.to_string_lossy()
354-
.into_owned(),
355-
)
343+
Some(cstr_to_owned(group_instance_id_ptr))
356344
};
357-
let consumer_id = CStr::from_ptr(rdsys::rd_kafka_MemberDescription_consumer_id(ptr))
358-
.to_string_lossy()
359-
.into_owned();
360-
let host = CStr::from_ptr(rdsys::rd_kafka_MemberDescription_host(ptr))
361-
.to_string_lossy()
362-
.into_owned();
345+
let consumer_id = cstr_to_owned(rdsys::rd_kafka_MemberDescription_consumer_id(ptr));
346+
let host = cstr_to_owned(rdsys::rd_kafka_MemberDescription_host(ptr));
363347
let assignment_ptr = rdsys::rd_kafka_MemberDescription_assignment(ptr);
364348
let assignment = if assignment_ptr.is_null() {
365349
None

0 commit comments

Comments
 (0)