tokio/net/unix/socketaddr.rs
1use std::fmt;
2use std::path::Path;
3
4/// An address associated with a Tokio Unix socket.
5///
6/// This type is a thin wrapper around [`std::os::unix::net::SocketAddr`]. You
7/// can convert to and from the standard library `SocketAddr` type using the
8/// [`From`] trait.
9pub struct SocketAddr(pub(super) std::os::unix::net::SocketAddr);
10
11impl SocketAddr {
12 /// Returns `true` if the address is unnamed.
13 ///
14 /// Documentation reflected in [`SocketAddr`]
15 ///
16 /// [`SocketAddr`]: std::os::unix::net::SocketAddr
17 pub fn is_unnamed(&self) -> bool {
18 self.0.is_unnamed()
19 }
20
21 /// Returns the contents of this address if it is a `pathname` address.
22 ///
23 /// Documentation reflected in [`SocketAddr`]
24 ///
25 /// [`SocketAddr`]: std::os::unix::net::SocketAddr
26 pub fn as_pathname(&self) -> Option<&Path> {
27 self.0.as_pathname()
28 }
29}
30
31impl fmt::Debug for SocketAddr {
32 fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
33 self.0.fmt(fmt)
34 }
35}
36
37impl From<std::os::unix::net::SocketAddr> for SocketAddr {
38 fn from(value: std::os::unix::net::SocketAddr) -> Self {
39 SocketAddr(value)
40 }
41}
42
43impl From<SocketAddr> for std::os::unix::net::SocketAddr {
44 fn from(value: SocketAddr) -> Self {
45 value.0
46 }
47}