rocketmq_protocol/protocol/header/
list_acl_request_header.rs1use cheetah_string::CheetahString;
16use rocketmq_macros::RequestHeaderCodec;
17use serde::Deserialize;
18use serde::Serialize;
19
20#[derive(Debug, Clone, Serialize, Deserialize, Default, RequestHeaderCodec)]
21#[serde(rename_all = "camelCase")]
22#[header(
23 type_id = "rocketmq_protocol::protocol::header::list_acl_request_header::ListAclRequestHeader",
24 java_class = "org.apache.rocketmq.remoting.protocol.header.ListAclsRequestHeader"
25)]
26pub struct ListAclRequestHeader {
27 #[header(default, default_semantic = "literal:")]
28 pub subject_filter: CheetahString,
29 #[header(default, default_semantic = "literal:")]
30 pub resource_filter: CheetahString,
31}
32
33pub type ListAclsRequestHeader = ListAclRequestHeader;
34
35#[cfg(test)]
36mod tests {
37 use super::*;
38 use cheetah_string::CheetahString;
39
40 #[test]
41 fn list_acl_request_header_serialize() {
42 let header = ListAclRequestHeader {
43 subject_filter: CheetahString::from("subjectFilterValue"),
44 resource_filter: CheetahString::from("resourceFilterValue"),
45 };
46
47 let json_str = serde_json::to_string(&header).unwrap();
48
49 assert!(json_str.contains("\"subjectFilter\":\"subjectFilterValue\""));
51 assert!(json_str.contains("\"resourceFilter\":\"resourceFilterValue\""));
52 }
53
54 #[test]
55 fn list_acl_request_header_deserialize() {
56 let json_str = r#"{
57 "subjectFilter": "subjectFilterValue",
58 "resourceFilter": "resourceFilterValue"
59 }"#;
60
61 let header: ListAclRequestHeader = serde_json::from_str(json_str).unwrap();
62
63 assert_eq!(header.subject_filter, CheetahString::from("subjectFilterValue"));
64 assert_eq!(header.resource_filter, CheetahString::from("resourceFilterValue"));
65 }
66}