pub struct MultiAddr { /* private fields */ }Expand description
Composable, self-describing network address with an optional PeerId
suffix.
Wraps a TransportAddr (which describes how to reach a network
endpoint) with an optional peer identity (which describes who is behind
it).
Implementations§
Source§impl MultiAddr
impl MultiAddr
Sourcepub fn new(transport: TransportAddr) -> Self
pub fn new(transport: TransportAddr) -> Self
Create a MultiAddr from a TransportAddr.
Sourcepub fn quic(addr: SocketAddr) -> Self
pub fn quic(addr: SocketAddr) -> Self
Shorthand for TransportAddr::Quic.
Sourcepub fn tcp(addr: SocketAddr) -> Self
pub fn tcp(addr: SocketAddr) -> Self
Shorthand for TransportAddr::Tcp.
Sourcepub fn with_peer_id(self, peer_id: PeerId) -> Self
pub fn with_peer_id(self, peer_id: PeerId) -> Self
Builder: attach a PeerId to this address.
Sourcepub fn from_ip_port(ip: IpAddr, port: u16) -> Self
pub fn from_ip_port(ip: IpAddr, port: u16) -> Self
Create a QUIC MultiAddr from an IP address and port.
Sourcepub fn from_ipv4(ip: Ipv4Addr, port: u16) -> Self
pub fn from_ipv4(ip: Ipv4Addr, port: u16) -> Self
Create a QUIC MultiAddr from an IPv4 address and port.
Sourcepub fn from_ipv6(ip: Ipv6Addr, port: u16) -> Self
pub fn from_ipv6(ip: Ipv6Addr, port: u16) -> Self
Create a QUIC MultiAddr from an IPv6 address and port.
Sourcepub fn transport(&self) -> &TransportAddr
pub fn transport(&self) -> &TransportAddr
The underlying transport address.
Sourcepub fn is_quic(&self) -> bool
pub fn is_quic(&self) -> bool
true when this address uses the QUIC transport — the only transport
currently supported for dialing. When additional transports are added,
update this method (and Self::dialable_socket_addr) accordingly.
Sourcepub fn dialable_socket_addr(&self) -> Option<SocketAddr>
pub fn dialable_socket_addr(&self) -> Option<SocketAddr>
Returns the SocketAddr only for transports we can currently
dial (QUIC). Returns None for all other transports, including
IP-based ones like TCP that we do not yet support.
Use Self::socket_addr when you need the raw socket address
regardless of transport (e.g. IP diversity checks, geo lookups).
Sourcepub fn socket_addr(&self) -> Option<SocketAddr>
pub fn socket_addr(&self) -> Option<SocketAddr>
Returns the socket address for IP-based transports (Quic, Tcp,
Udp), None for non-IP transports.
Sourcepub fn ip(&self) -> Option<IpAddr>
pub fn ip(&self) -> Option<IpAddr>
Returns the IP address for IP-based transports, None otherwise.
Sourcepub fn is_loopback(&self) -> bool
pub fn is_loopback(&self) -> bool
true if this is an IP-based loopback address, false otherwise.
Sourcepub fn is_private(&self) -> bool
pub fn is_private(&self) -> bool
true if this is an IP-based private/link-local address, false
otherwise.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for MultiAddr
impl<'de> Deserialize<'de> for MultiAddr
Source§fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
Source§impl From<TransportAddr> for MultiAddr
impl From<TransportAddr> for MultiAddr
Source§fn from(transport: TransportAddr) -> Self
fn from(transport: TransportAddr) -> Self
impl Eq for MultiAddr
impl StructuralPartialEq for MultiAddr
Auto Trait Implementations§
impl Freeze for MultiAddr
impl RefUnwindSafe for MultiAddr
impl Send for MultiAddr
impl Sync for MultiAddr
impl Unpin for MultiAddr
impl UnsafeUnpin for MultiAddr
impl UnwindSafe for MultiAddr
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.