rocketmq_remoting/protocol/header/
resume_check_half_message_request_header.rs1use cheetah_string::CheetahString;
16use rocketmq_macros::RequestHeaderCodecV2;
17use serde::Deserialize;
18use serde::Serialize;
19
20#[derive(Clone, Debug, Default, Serialize, Deserialize, RequestHeaderCodecV2)]
21#[serde(rename_all = "camelCase")]
22pub struct ResumeCheckHalfMessageRequestHeader {
23 #[required]
24 pub topic: CheetahString,
25
26 pub msg_id: Option<CheetahString>,
27}
28
29#[cfg(test)]
30mod tests {
31 use std::collections::HashMap;
32
33 use cheetah_string::CheetahString;
34
35 use super::ResumeCheckHalfMessageRequestHeader;
36 use crate::protocol::command_custom_header::FromMap;
37
38 #[test]
39 fn resume_check_half_message_request_header_deserializes_from_map() {
40 let mut fields = HashMap::new();
41 fields.insert(
42 CheetahString::from_static_str("topic"),
43 CheetahString::from_static_str("half-topic"),
44 );
45 fields.insert(
46 CheetahString::from_static_str("msgId"),
47 CheetahString::from_static_str("msg-id"),
48 );
49
50 let header = <ResumeCheckHalfMessageRequestHeader as FromMap>::from(&fields)
51 .expect("header should decode from ext fields");
52
53 assert_eq!(header.topic, CheetahString::from_static_str("half-topic"));
54 assert_eq!(header.msg_id, Some(CheetahString::from_static_str("msg-id")));
55 }
56}