pub struct PeerAddress(pub [u8; 16]);
Expand description
A container for an IPv4 or IPv6 address. Rules: – If this is an IPv6 address, the octets are in network byte order – If this is an IPv4 address, the octets must encode an IPv6-to-IPv4-mapped address
Tuple Fields§
§0: [u8; 16]
Implementations§
Source§impl PeerAddress
impl PeerAddress
Source§impl PeerAddress
impl PeerAddress
Sourcepub fn from_bytes(inp: &[u8]) -> Option<PeerAddress>
pub fn from_bytes(inp: &[u8]) -> Option<PeerAddress>
Instantiates from a slice of bytes
Note: if this type is a hashing type, this sets the hash result to inp
exactly: this method does not perform the hash.
Sourcepub fn from_bytes_be(inp: &[u8]) -> Option<PeerAddress>
pub fn from_bytes_be(inp: &[u8]) -> Option<PeerAddress>
Instantiates from a slice of bytes, converting to host byte order
Sourcepub fn from_vec_be(b: &Vec<u8>) -> Option<PeerAddress>
pub fn from_vec_be(b: &Vec<u8>) -> Option<PeerAddress>
Instantiates from a big-endian vector of bytes, converting to host byte order
Source§impl PeerAddress
impl PeerAddress
pub fn from_slice(bytes: &[u8]) -> Option<PeerAddress>
Sourcepub fn ipv4_octets(&self) -> Option<[u8; 4]>
pub fn ipv4_octets(&self) -> Option<[u8; 4]>
Get the octet representation of this peer address as an IPv4 address. The last 4 bytes of the list contain the IPv4 address. This method returns None if the bytes don’t encode a valid IPv4-mapped address (i.e. ::ffff:0:0/96)
Sourcepub fn ipv4_bits(&self) -> Option<u32>
pub fn ipv4_bits(&self) -> Option<u32>
Return the bit representation of this peer address as an IPv4 address, in network byte order. Return None if this is not an IPv4 address.
Sourcepub fn to_socketaddr(&self, port: u16) -> SocketAddr
pub fn to_socketaddr(&self, port: u16) -> SocketAddr
Convert to SocketAddr
Sourcepub fn from_socketaddr(addr: &SocketAddr) -> PeerAddress
pub fn from_socketaddr(addr: &SocketAddr) -> PeerAddress
Convert from socket address
Sourcepub fn from_ip(addr: &IpAddr) -> PeerAddress
pub fn from_ip(addr: &IpAddr) -> PeerAddress
Convert from IP address
Sourcepub fn is_in_private_range(&self) -> bool
pub fn is_in_private_range(&self) -> bool
Is this a private IP address?
Sourcepub fn is_loopback(&self) -> bool
pub fn is_loopback(&self) -> bool
Is this a local loopback address?
pub fn to_bin(&self) -> String
Trait Implementations§
Source§impl AsRef<[u8]> for PeerAddress
impl AsRef<[u8]> for PeerAddress
Source§impl Clone for PeerAddress
impl Clone for PeerAddress
Source§fn clone(&self) -> PeerAddress
fn clone(&self) -> PeerAddress
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for PeerAddress
impl Debug for PeerAddress
Source§impl<'de> Deserialize<'de> for PeerAddress
impl<'de> Deserialize<'de> for PeerAddress
Source§fn deserialize<D: Deserializer<'de>>(d: D) -> Result<PeerAddress, D::Error>
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<PeerAddress, D::Error>
Source§impl Display for PeerAddress
impl Display for PeerAddress
Source§impl<'a> From<&'a [u8]> for PeerAddress
impl<'a> From<&'a [u8]> for PeerAddress
Source§fn from(data: &'a [u8]) -> PeerAddress
fn from(data: &'a [u8]) -> PeerAddress
Source§impl Hash for PeerAddress
impl Hash for PeerAddress
Source§impl Index<RangeFull> for PeerAddress
impl Index<RangeFull> for PeerAddress
Source§impl Index<usize> for PeerAddress
impl Index<usize> for PeerAddress
Source§impl Ord for PeerAddress
impl Ord for PeerAddress
Source§fn cmp(&self, other: &PeerAddress) -> Ordering
fn cmp(&self, other: &PeerAddress) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for PeerAddress
impl PartialEq for PeerAddress
Source§impl PartialOrd for PeerAddress
impl PartialOrd for PeerAddress
Source§impl Serialize for PeerAddress
impl Serialize for PeerAddress
Source§impl StacksMessageCodec for PeerAddress
impl StacksMessageCodec for PeerAddress
impl Copy for PeerAddress
impl Eq for PeerAddress
Auto Trait Implementations§
impl Freeze for PeerAddress
impl RefUnwindSafe for PeerAddress
impl Send for PeerAddress
impl Sync for PeerAddress
impl Unpin for PeerAddress
impl UnwindSafe for PeerAddress
Blanket Implementations§
Source§impl<A, T> AsBits<T> for A
impl<A, T> AsBits<T> for A
Source§impl<T> Base32Len for T
impl<T> Base32Len for T
Source§fn base32_len(&self) -> usize
fn base32_len(&self) -> usize
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> CheckBase32<Vec<u5>> for T
impl<T> CheckBase32<Vec<u5>> for 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§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.