From 991cdbd01f28f6fcbcb10f50bc5e7778353b5917 Mon Sep 17 00:00:00 2001 From: Jim Crossley Date: Fri, 4 Nov 2022 09:40:02 -0400 Subject: [PATCH] Use the new iter() fn for message headers Signed-off-by: Jim Crossley --- src/binding/rdkafka/kafka_consumer_record.rs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/binding/rdkafka/kafka_consumer_record.rs b/src/binding/rdkafka/kafka_consumer_record.rs index d12f34e..695ea3a 100644 --- a/src/binding/rdkafka/kafka_consumer_record.rs +++ b/src/binding/rdkafka/kafka_consumer_record.rs @@ -20,16 +20,13 @@ pub struct ConsumerRecordDeserializer { impl ConsumerRecordDeserializer { fn get_kafka_headers(message: &impl Message) -> Result>> { - let mut hm = HashMap::new(); - let headers = message - .headers() - // TODO create an error variant for invalid headers - .ok_or(crate::message::Error::WrongEncoding {})?; - for i in 0..headers.count() { - let header = headers.get(i); - hm.insert(header.key.to_string(), Vec::from(header.value.unwrap())); + match message.headers() { + None => Err(crate::message::Error::WrongEncoding {}), + Some(headers) => Ok(headers + .iter() + .map(|h| (h.key.to_string(), Vec::from(h.value.unwrap()))) + .collect()), } - Ok(hm) } pub fn new(message: &impl Message) -> Result {