rocketmq_client_v4/protocols/header/
get_consumer_running_info_requestheader.rs1use 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 {}