rocketmq_client_v4/protocols/header/
get_consumer_running_info_requestheader.rs

1use crate::protocols::mq_command::MqCommand;
2use crate::protocols::{mq_command, SerializeDeserialize};
3use serde_json::Value;
4
5#[derive(Debug)]
6#[allow(non_snake_case)]
7pub struct GetConsumerRunningInfoRequestHeader {
8    pub consumerGroup: String,
9    pub clientId: String,
10    pub jstackEnable: Option<bool>,
11}
12
13impl GetConsumerRunningInfoRequestHeader {
14    pub fn convert_from_command(cmd: &MqCommand) -> Self {
15        match cmd.header_serialize_method {
16            mq_command::HEADER_SERIALIZE_METHOD_PRIVATE => {
17                let map = Self::bytes_1_to_map(cmd.e_body.clone());
18
19                Self {
20                    consumerGroup: map.get("consumerGroup").unwrap().to_string(),
21                    clientId: map.get("clientId").unwrap().to_string(),
22                    jstackEnable: None,
23                }
24            }
25            _ => {
26                let json = serde_json::from_slice::<Value>(&cmd.e_body).unwrap();
27                let consumer_group = json
28                    .get("consumerGroup")
29                    .unwrap()
30                    .as_str()
31                    .unwrap()
32                    .to_string();
33                let client_id = json.get("clientId").unwrap().as_str().unwrap().to_string();
34                let j_stack = match json.get("jstackEnable") {
35                    Some(v) => Some(v.as_str().unwrap() == "true"),
36                    None => None,
37                };
38                Self {
39                    consumerGroup: consumer_group,
40                    clientId: client_id,
41                    jstackEnable: j_stack,
42                }
43            }
44        }
45    }
46}
47
48impl SerializeDeserialize for GetConsumerRunningInfoRequestHeader {}