rocketmq_remoting/protocol/header/
view_message_request_header.rs1use cheetah_string::CheetahString;
16use rocketmq_macros::RequestHeaderCodecV2;
17use serde::Deserialize;
18use serde::Serialize;
19
20#[derive(Debug, Clone, Serialize, Deserialize, RequestHeaderCodecV2, Default)]
21pub struct ViewMessageRequestHeader {
22 pub topic: Option<CheetahString>,
23 pub offset: i64,
24}
25
26#[cfg(test)]
27mod tests {
28 use super::*;
29
30 #[test]
31 fn test_view_message_request_header_with_none_topic() {
32 let header = ViewMessageRequestHeader {
33 topic: None,
34 offset: 100,
35 };
36
37 assert!(header.topic.is_none());
38 assert_eq!(header.offset, 100);
39 }
40
41 #[test]
42 fn test_view_message_request_header_with_topic_value() {
43 let topic_name = CheetahString::from("test_topic");
44 let header = ViewMessageRequestHeader {
45 topic: Some(topic_name.clone()),
46 offset: 200,
47 };
48
49 assert!(header.topic.is_some());
50 assert_eq!(header.topic.unwrap(), topic_name);
51 assert_eq!(header.offset, 200);
52 }
53}