Skip to main content

c_ares/
server_state_flags.rs

1use bitflags::bitflags;
2bitflags!(
3    /// Flags that may be provided on server state callbacks.
4    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
5    pub struct ServerStateFlags: i32 {
6        /// Query used UDP.
7        const UDP = c_ares_sys::ARES_SERV_STATE_UDP;
8
9        /// Query used TCP.
10        const TCP = c_ares_sys::ARES_SERV_STATE_TCP;
11    }
12);
13
14#[cfg(test)]
15mod tests {
16    use super::*;
17
18    #[test]
19    fn empty() {
20        let flags = ServerStateFlags::empty();
21        assert!(flags.is_empty());
22    }
23
24    #[test]
25    fn single() {
26        let flags = ServerStateFlags::UDP;
27        assert!(flags.contains(ServerStateFlags::UDP));
28        assert!(!flags.contains(ServerStateFlags::TCP));
29    }
30
31    #[test]
32    fn combine() {
33        let flags = ServerStateFlags::UDP | ServerStateFlags::TCP;
34        assert!(flags.contains(ServerStateFlags::UDP));
35        assert!(flags.contains(ServerStateFlags::TCP));
36    }
37
38    #[test]
39    fn debug() {
40        let flags = ServerStateFlags::TCP;
41        let debug = format!("{flags:?}");
42        assert!(!debug.is_empty());
43    }
44}