1#![allow(unreachable_pub)]
2mod datagram;
5mod listener;
6mod pipe;
7mod socket_addr;
8mod split;
9mod stream;
10mod ucred;
11
12#[cfg(target_os = "linux")]
13mod seq_packet;
14pub use datagram::UnixDatagram;
15pub use listener::UnixListener;
16pub use pipe::{new_pipe, Pipe};
17#[cfg(target_os = "linux")]
18pub use seq_packet::{UnixSeqpacket, UnixSeqpacketListener};
19pub use socket_addr::SocketAddr;
20pub use split::{UnixOwnedReadHalf, UnixOwnedWriteHalf};
21pub use stream::UnixStream;
22
23#[cfg(feature = "poll-io")]
24pub mod stream_poll;
25
26pub(crate) fn path_offset(sockaddr: &libc::sockaddr_un) -> usize {
27 let base = sockaddr as *const _ as usize;
28 let path = &sockaddr.sun_path as *const _ as usize;
29 path - base
30}