blob: a1d35d52547965247490cda23d87d4555755c0e4 [file] [log] [blame]
/// Helper macro to execute a system call that returns an `io::Result`.
//
// Macro must be defined before any modules that uses them.
macro_rules! syscall {
($fn: ident ( $($arg: expr),* $(,)* ) ) => {{
let res = unsafe { libc::$fn($($arg, )*) };
if res == -1 {
Err(std::io::Error::last_os_error())
} else {
Ok(res)
}
}};
}
mod net;
mod selector;
pub use self::selector::{event, Event, Events, Selector};
mod sourcefd;
pub use self::sourcefd::SourceFd;
#[cfg(feature = "tcp")]
mod tcp;
#[cfg(feature = "tcp")]
pub use self::tcp::{TcpListener, TcpStream};
#[cfg(feature = "udp")]
mod udp;
#[cfg(feature = "udp")]
pub use self::udp::UdpSocket;
#[cfg(feature = "uds")]
mod uds;
#[cfg(feature = "uds")]
pub use self::uds::{SocketAddr, UnixDatagram, UnixListener, UnixStream};
mod waker;
pub use self::waker::Waker;