Type Alias jormungandr::network::Connection

source ·
type Connection = SocketAddr;

Aliased Type§

enum Connection {
    V4(SocketAddrV4),
    V6(SocketAddrV6),
}

Variants§

§1.0.0

V4(SocketAddrV4)

An IPv4 socket address.

§1.0.0

V6(SocketAddrV6)

An IPv6 socket address.

Implementations§

source§

impl SocketAddr

source

pub fn parse_ascii(b: &[u8]) -> Result<SocketAddr, AddrParseError>

🔬This is a nightly-only experimental API. (addr_parse_ascii)

Parse a socket address from a slice of bytes.

#![feature(addr_parse_ascii)]

use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr};

let socket_v4 = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
let socket_v6 = SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)), 8080);

assert_eq!(SocketAddr::parse_ascii(b"127.0.0.1:8080"), Ok(socket_v4));
assert_eq!(SocketAddr::parse_ascii(b"[::1]:8080"), Ok(socket_v6));
source§

impl SocketAddr

1.7.0 (const: 1.69.0) · source

pub const fn new(ip: IpAddr, port: u16) -> SocketAddr

Creates a new socket address from an IP address and a port number.

Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};

let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
assert_eq!(socket.ip(), IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)));
assert_eq!(socket.port(), 8080);
1.7.0 (const: 1.69.0) · source

pub const fn ip(&self) -> IpAddr

Returns the IP address associated with this socket address.

Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};

let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
assert_eq!(socket.ip(), IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)));
1.9.0 · source

pub fn set_ip(&mut self, new_ip: IpAddr)

Changes the IP address associated with this socket address.

Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};

let mut socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
socket.set_ip(IpAddr::V4(Ipv4Addr::new(10, 10, 0, 1)));
assert_eq!(socket.ip(), IpAddr::V4(Ipv4Addr::new(10, 10, 0, 1)));
1.0.0 (const: 1.69.0) · source

pub const fn port(&self) -> u16

Returns the port number associated with this socket address.

Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};

let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
assert_eq!(socket.port(), 8080);
1.9.0 · source

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

Changes the port number associated with this socket address.

Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};

let mut socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
socket.set_port(1025);
assert_eq!(socket.port(), 1025);
1.16.0 (const: 1.69.0) · source

pub const fn is_ipv4(&self) -> bool

Returns true if the IP address in this SocketAddr is an IPv4 address, and false otherwise.

Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr};

let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
assert_eq!(socket.is_ipv4(), true);
assert_eq!(socket.is_ipv6(), false);
1.16.0 (const: 1.69.0) · source

pub const fn is_ipv6(&self) -> bool

Returns true if the IP address in this SocketAddr is an IPv6 address, and false otherwise.

Examples
use std::net::{IpAddr, Ipv6Addr, SocketAddr};

let socket = SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 65535, 0, 1)), 8080);
assert_eq!(socket.is_ipv4(), false);
assert_eq!(socket.is_ipv6(), true);

Trait Implementations§

§

impl Arbitrary for SocketAddr

§

fn arbitrary<G>(g: &mut G) -> SocketAddrwhere G: Gen,

§

fn shrink(&self) -> Box<dyn Iterator<Item = Self>, Global>

§

impl Arbitrary for SocketAddr

§

type Parameters = ()

The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default.
§

type Strategy = TupleUnion<((u32, Arc<MapInto<<SocketAddrV4 as Arbitrary>::Strategy, SocketAddr>, Global>), (u32, Arc<MapInto<<SocketAddrV6 as Arbitrary>::Strategy, SocketAddr>, Global>))>

The type of Strategy used to generate values of type Self.
§

fn arbitrary_with( _args: <SocketAddr as Arbitrary>::Parameters ) -> <SocketAddr as Arbitrary>::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). Read more
1.0.0 · source§

impl Clone for SocketAddr

source§

fn clone(&self) -> SocketAddr

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
§

impl Connected<&AddrStream> for SocketAddr

§

fn connect_info(target: &AddrStream) -> SocketAddr

Create type holding information about the connection.
1.0.0 · source§

impl Debug for SocketAddr

source§

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

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

impl<'de> Deserialize<'de> for SocketAddr

source§

fn deserialize<D>( deserializer: D ) -> Result<SocketAddr, <D as Deserializer<'de>>::Error>where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
1.0.0 · source§

impl Display for SocketAddr

source§

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

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

impl<I> From<(I, u16)> for SocketAddrwhere I: Into<IpAddr>,

source§

fn from(pieces: (I, u16)) -> SocketAddr

Converts a tuple struct (Into<IpAddr>, u16) into a SocketAddr.

This conversion creates a SocketAddr::V4 for an IpAddr::V4 and creates a SocketAddr::V6 for an IpAddr::V6.

u16 is treated as port of the newly created SocketAddr.

1.16.0 · source§

impl From<SocketAddrV4> for SocketAddr

1.16.0 · source§

impl From<SocketAddrV6> for SocketAddr

1.0.0 · source§

impl FromStr for SocketAddr

§

type Err = AddrParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<SocketAddr, AddrParseError>

Parses a string s to return a value of this type. Read more
1.0.0 · source§

impl Hash for SocketAddr

source§

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

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
1.0.0 · source§

impl Ord for SocketAddr

source§

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

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

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

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

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

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

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

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

impl PartialEq<SocketAddr> for SocketAddr

source§

fn eq(&self, other: &SocketAddr) -> 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.
1.0.0 · source§

impl PartialOrd<SocketAddr> for SocketAddr

source§

fn partial_cmp(&self, other: &SocketAddr) -> 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 Serialize for SocketAddr

source§

fn serialize<S>( &self, serializer: S ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where S: Serializer,

Serialize this value into the given Serde serializer. Read more
1.0.0 · source§

impl ToSocketAddrs for SocketAddr

§

type Iter = IntoIter<SocketAddr>

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

fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>, Error>

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

impl Copy for SocketAddr

1.0.0 · source§

impl Eq for SocketAddr

1.0.0 · source§

impl StructuralEq for SocketAddr

1.0.0 · source§

impl StructuralPartialEq for SocketAddr

§

impl ToSocketAddrs for SocketAddr