rocketmq_protocol/protocol/header/
add_broker_request_header.rs1use cheetah_string::CheetahString;
16use rocketmq_macros::RequestHeaderCodec;
17use serde::Deserialize;
18use serde::Serialize;
19
20#[derive(Clone, Debug, Default, Serialize, Deserialize, RequestHeaderCodec)]
21#[serde(rename_all = "camelCase")]
22#[header(
23 type_id = "rocketmq_protocol::protocol::header::add_broker_request_header::AddBrokerRequestHeader",
24 java_class = "org.apache.rocketmq.remoting.protocol.header.AddBrokerRequestHeader"
25)]
26pub struct AddBrokerRequestHeader {
27 pub config_path: Option<CheetahString>,
28}
29
30#[cfg(test)]
31mod tests {
32 use std::collections::HashMap;
33
34 use super::*;
35 use crate::protocol::command_custom_header::CommandCustomHeader;
36 use crate::protocol::command_custom_header::FromMap;
37
38 #[test]
39 fn add_broker_request_header_serializes_config_path() {
40 let header = AddBrokerRequestHeader {
41 config_path: Some(CheetahString::from_static_str("/tmp/broker.conf")),
42 };
43
44 let map = header.to_map().expect("header should encode");
45 assert_eq!(
46 map.get(&CheetahString::from_static_str("configPath")),
47 Some(&CheetahString::from_static_str("/tmp/broker.conf"))
48 );
49 }
50
51 #[test]
52 fn add_broker_request_header_deserializes_config_path() {
53 let mut map = HashMap::new();
54 map.insert(
55 CheetahString::from_static_str("configPath"),
56 CheetahString::from_static_str("/tmp/broker.conf"),
57 );
58
59 let header = <AddBrokerRequestHeader as FromMap>::from(&map).expect("header should decode");
60 assert_eq!(
61 header.config_path,
62 Some(CheetahString::from_static_str("/tmp/broker.conf"))
63 );
64 }
65}