rocketmq_client_v4/protocols/header/
notify_consumer_ids_changed_request_header.rs1use crate::protocols::mq_command::{MqCommand, HEADER_SERIALIZE_METHOD_PRIVATE};
2use bytes::{Buf, Bytes};
3use log::debug;
4use serde::Deserialize;
5
6#[derive(Deserialize)]
7#[allow(non_snake_case)]
8pub struct NotifyConsumerIdsChangedRequestHeader {
9 pub consumerGroup: String,
10}
11
12impl NotifyConsumerIdsChangedRequestHeader {
13 pub fn convert_from_cmd(cmd: &MqCommand) -> Self {
14 let body = &cmd.e_body;
15 let mut body = Bytes::copy_from_slice(body);
16 debug!(
17 "NotifyConsumerIdsChangedRequestHeader, extend:{:?}",
18 String::from_utf8(cmd.e_body.clone())
19 );
20 match cmd.header_serialize_method {
21 HEADER_SERIALIZE_METHOD_PRIVATE => {
22 let consumer_group_len = body.get_i16();
23 let _ = body.copy_to_bytes(consumer_group_len as usize);
24 let consumer_group_v_len = body.get_i32();
25 let consumer_group_body = body.copy_to_bytes(consumer_group_v_len as usize);
26 return Self {
27 consumerGroup: String::from_utf8(consumer_group_body.to_vec()).unwrap(),
28 };
29 }
30 _ => {
31 let json =
32 serde_json::from_slice::<NotifyConsumerIdsChangedRequestHeader>(&body.to_vec())
33 .unwrap();
34 return json;
35 }
36 }
37 }
38}