rocketmq_remoting/protocol/header/
update_group_forbidden_request_header.rs1use cheetah_string::CheetahString;
16use rocketmq_macros::RequestHeaderCodecV2;
17use serde::Deserialize;
18use serde::Serialize;
19
20use crate::rpc::topic_request_header::TopicRequestHeader;
21
22#[derive(Clone, Debug, Serialize, Deserialize, Default, RequestHeaderCodecV2)]
23#[serde(rename_all = "camelCase")]
24pub struct UpdateGroupForbiddenRequestHeader {
25 #[required]
26 pub group: CheetahString,
27
28 #[required]
29 pub topic: CheetahString,
30
31 pub readable: Option<bool>,
32
33 #[serde(flatten)]
34 pub topic_request_header: Option<TopicRequestHeader>,
35}
36
37#[cfg(test)]
38mod tests {
39 use std::collections::HashMap;
40
41 use super::*;
42 use crate::protocol::command_custom_header::FromMap;
43
44 #[test]
45 fn update_group_forbidden_request_header_deserializes_from_map() {
46 let mut map = HashMap::new();
47 map.insert(
48 CheetahString::from_static_str("group"),
49 CheetahString::from_static_str("group-a"),
50 );
51 map.insert(
52 CheetahString::from_static_str("topic"),
53 CheetahString::from_static_str("topic-a"),
54 );
55 map.insert(
56 CheetahString::from_static_str("readable"),
57 CheetahString::from_static_str("false"),
58 );
59
60 let header = <UpdateGroupForbiddenRequestHeader as FromMap>::from(&map).expect("header from map");
61 assert_eq!(header.group, CheetahString::from_static_str("group-a"));
62 assert_eq!(header.topic, CheetahString::from_static_str("topic-a"));
63 assert_eq!(header.readable, Some(false));
64 }
65}