use crate::types::Socket;
use bitflags::bitflags;
bitflags!(
#[derive(Copy, Clone, Eq, PartialEq, Debug, Hash, PartialOrd, Ord)]
pub struct FdEventFlags: u32 {
const Read = c_ares_sys::ares_fd_eventflag_t::ARES_FD_EVENT_READ as u32;
const Write = c_ares_sys::ares_fd_eventflag_t::ARES_FD_EVENT_WRITE as u32;
}
);
bitflags!(
#[derive(Copy, Clone, Eq, PartialEq, Debug, Hash, PartialOrd, Ord)]
pub struct ProcessFlags: u32 {
const SkipNonFd = c_ares_sys::ares_process_flag_t::ARES_PROCESS_FLAG_SKIP_NON_FD as u32;
}
);
#[repr(transparent)]
pub struct FdEvents(c_ares_sys::ares_fd_events_t);
impl FdEvents {
pub fn new(socket: Socket, events: FdEventFlags) -> Self {
let events = c_ares_sys::ares_fd_events_t {
fd: socket,
events: events.bits(),
};
FdEvents(events)
}
}