rocketmq_remoting/protocol/header/
empty_header.rs1use 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}