pub enum SocketAddress {
    IpV4(SocketAddressV4),
    IpV6(SocketAddressV6),
}
Expand description

An IP socket address, either IPv4 or IPv6, with a specific port.

Instead of using std::net::SocketAddr, this implementation is geared towards no_std environments and zerocopy decoding.

The size is also consistent across target operating systems.

Variants§

Implementations§

source§

impl SocketAddress

source

pub fn ip(&self) -> IpAddress

source

pub fn port(&self) -> u16

source

pub fn set_port(&mut self, port: u16)

source

pub const fn unicast_scope(&self) -> Option<UnicastScope>

source

pub fn to_ipv6_mapped(self) -> SocketAddressV6

Converts the IP address into a IPv6 mapped address

source

pub fn unmap(self) -> Self

Converts the IP address into IPv4 if it is mapped, otherwise the address is unchanged

Trait Implementations§

source§

impl Clone for SocketAddress

source§

fn clone(&self) -> SocketAddress

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SocketAddress

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SocketAddress

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Display for SocketAddress

source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(IpAddr, u16)> for SocketAddress

source§

fn from((ip, port): (IpAddr, u16)) -> Self

Converts to this type from the input type.
source§

impl From<SocketAddr> for SocketAddress

source§

fn from(addr: SocketAddr) -> Self

Converts to this type from the input type.
source§

impl From<SocketAddress> for LocalAddress

source§

fn from(value: SocketAddress) -> Self

Converts to this type from the input type.
source§

impl From<SocketAddress> for RemoteAddress

source§

fn from(value: SocketAddress) -> Self

Converts to this type from the input type.
source§

impl From<SocketAddress> for SocketAddr

source§

fn from(address: SocketAddress) -> Self

Converts to this type from the input type.
source§

impl From<SocketAddressV4> for SocketAddress

source§

fn from(addr: SocketAddressV4) -> Self

Converts to this type from the input type.
source§

impl From<SocketAddressV6> for SocketAddress

source§

fn from(addr: SocketAddressV6) -> Self

Converts to this type from the input type.
source§

impl Hash for SocketAddress

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<'a> IntoEvent<SocketAddress<'a>> for &'a SocketAddress

source§

impl<'a> IntoEvent<SocketAddress<'a>> for &'a SocketAddress

source§

impl Ord for SocketAddress

source§

fn cmp(&self, other: &SocketAddress) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for SocketAddress

source§

fn eq(&self, other: &SocketAddress) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for SocketAddress

source§

fn partial_cmp(&self, other: &SocketAddress) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl ToSocketAddrs for SocketAddress

§

type Iter = Once<SocketAddr>

Returned iterator over socket addresses which this type may correspond to.
source§

fn to_socket_addrs(&self) -> Result<Self::Iter>

Converts this object to an iterator of resolved SocketAddrs. Read more
source§

impl Unspecified for SocketAddress

source§

fn is_unspecified(&self) -> bool

Returns true if the value is unspecified
source§

fn filter_unspecified(self) -> Option<Self>

Coerce a potentially unspecified value into an Option
source§

impl Copy for SocketAddress

source§

impl Eq for SocketAddress

source§

impl StructuralEq for SocketAddress

source§

impl StructuralPartialEq for SocketAddress

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T, U> Upcast<T> for U
where T: UpcastFrom<U>,

source§

fn upcast(self) -> T

source§

impl<T, B> UpcastFrom<Counter<T, B>> for T

source§

fn upcast_from(value: Counter<T, B>) -> T