Skip to main content

rocketmq_remoting/protocol/header/
empty_header.rs

1use std::collections::HashMap;
2
3use cheetah_string::CheetahString;
4use serde::Deserialize;
5use serde::Serialize;
6
7use crate::protocol::command_custom_header::CommandCustomHeader;
8#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
9pub struct EmptyHeader {}
10
11impl CommandCustomHeader for EmptyHeader {
12    fn to_map(&self) -> Option<HashMap<CheetahString, CheetahString>> {
13        None
14    }
15}
16
17#[cfg(test)]
18mod tests {
19    use super::*;
20    use serde_json;
21
22    #[test]
23    fn test_empty_header_lifecycle() {
24        let header = EmptyHeader::default();
25
26        let cloned = header.clone();
27        assert_eq!(header, cloned);
28
29        let json = serde_json::to_string(&header).unwrap();
30        assert_eq!(json, "{}");
31        let de: EmptyHeader = serde_json::from_str(&json).unwrap();
32        assert_eq!(header, de);
33        assert!(header.to_map().is_none());
34
35        assert!(format!("{:?}", header).contains("EmptyHeader"));
36    }
37}