miltr_common/optneg/
capability.rs1bitflags::bitflags! {
2 #[derive(Debug, PartialEq, Eq, Clone, Copy)]
6 pub struct Capability: u32 {
7 const SMFIF_ADDHDRS = 0x0000_0001;
9 const SMFIF_CHGBODY = 0x0000_0002;
11 const SMFIF_ADDRCPT = 0x0000_0004;
13 const SMFIF_DELRCPT = 0x0000_0008;
15 const SMFIF_CHGHDRS = 0x0000_0010;
17 const SMFIF_QUARANTINE = 0x0000_0020;
19 const SMFIF_CHGFROM = 0x0000_0040;
21 const SMFIF_ADDRCPT_PAR = 0x0000_0080;
23 }
27}
28
29impl Default for Capability {
30 fn default() -> Self {
32 Capability::all()
33 }
34}
35
36impl Capability {
37 #[must_use]
41 pub fn merge_regarding_version(self, _version: u32, other: Self) -> Self {
42 self.intersection(other)
43 }
44}
45
46#[cfg(test)]
47mod test {
48 use super::*;
49
50 #[test]
51 fn test_create_valid() {
52 let input: u32 = 0x0000_0001;
53
54 let bitflags = Capability::from_bits(input);
55
56 assert!(bitflags.is_some());
57 }
58
59 #[test]
60 fn test_create_invalid() {
61 let input: u32 = 0x0000_0100;
63
64 let bitflags = Capability::from_bits(input);
65
66 assert!(bitflags.is_none());
67 }
68}