1use crate::types::Socket;
2use bitflags::bitflags;
3
4bitflags!(
5 #[derive(Copy, Clone, Eq, PartialEq, Debug, Hash, PartialOrd, Ord)]
7 pub struct FdEventFlags: u32 {
8 const Read = c_ares_sys::ares_fd_eventflag_t::ARES_FD_EVENT_READ as u32;
10 const Write = c_ares_sys::ares_fd_eventflag_t::ARES_FD_EVENT_WRITE as u32;
12 }
13);
14
15bitflags!(
16 #[derive(Copy, Clone, Eq, PartialEq, Debug, Hash, PartialOrd, Ord)]
18 pub struct ProcessFlags: u32 {
19 const SkipNonFd = c_ares_sys::ares_process_flag_t::ARES_PROCESS_FLAG_SKIP_NON_FD as u32;
21 }
22);
23
24#[repr(transparent)]
26pub struct FdEvents(c_ares_sys::ares_fd_events_t);
27
28impl FdEvents {
29 pub fn new(socket: Socket, events: FdEventFlags) -> Self {
31 let events = c_ares_sys::ares_fd_events_t {
32 fd: socket,
33 events: events.bits(),
34 };
35 FdEvents(events)
36 }
37}