Enum ockam_core::lib::net::SocketAddr 1.0.0[−][src]
pub enum SocketAddr { V4(SocketAddrV4), V6(SocketAddrV6), }
An internet socket address, either IPv4 or IPv6.
Internet socket addresses consist of an IP address, a 16-bit port number, as well
as possibly some version-dependent additional information. See SocketAddrV4
’s and
SocketAddrV6
’s respective documentation for more details.
The size of a SocketAddr
instance may vary depending on the target operating
system.
Examples
use std::net::{IpAddr, Ipv4Addr, SocketAddr}; let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); assert_eq!("127.0.0.1:8080".parse(), Ok(socket)); assert_eq!(socket.port(), 8080); assert_eq!(socket.is_ipv4(), true);
Variants
V4(SocketAddrV4)
An IPv4 socket address.
V6(SocketAddrV6)
An IPv6 socket address.
Implementations
impl SocketAddr
[src]
impl SocketAddr
[src]pub fn new(ip: IpAddr, port: u16) -> SocketAddr
1.7.0[src]
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);
pub const fn ip(&self) -> IpAddr
1.7.0[src]
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)));
pub fn set_ip(&mut self, new_ip: IpAddr)
1.9.0[src]
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)));
pub const fn port(&self) -> u16
[src]
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);
pub fn set_port(&mut self, new_port: u16)
1.9.0[src]
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);
pub const fn is_ipv4(&self) -> bool
1.16.0[src]
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);
pub const fn is_ipv6(&self) -> bool
1.16.0[src]
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 Clone for SocketAddr
[src]
impl Clone for SocketAddr
[src]pub fn clone(&self) -> SocketAddr
[src]
pub fn clone_from(&mut self, source: &Self)
[src]
impl Copy for SocketAddr
[src]
impl Copy for SocketAddr
[src]impl<'de> Deserialize<'de> for SocketAddr
[src]
impl<'de> Deserialize<'de> for SocketAddr
[src]pub fn deserialize<D>(
deserializer: D
) -> Result<SocketAddr, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
[src]
deserializer: D
) -> Result<SocketAddr, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
impl Eq for SocketAddr
[src]
impl Eq for SocketAddr
[src]impl<I> From<(I, u16)> for SocketAddr where
I: Into<IpAddr>,
1.17.0[src]
impl<I> From<(I, u16)> for SocketAddr where
I: Into<IpAddr>,
1.17.0[src]pub fn from(pieces: (I, u16)) -> SocketAddr
[src]
Converts a tuple struct (Into<IpAddr
>, u16
) into a SocketAddr
.
This conversion creates a SocketAddr::V4
for a IpAddr::V4
and creates a SocketAddr::V6
for a IpAddr::V6
.
u16
is treated as port of the newly created SocketAddr
.
impl From<SocketAddrV4> for SocketAddr
1.16.0[src]
impl From<SocketAddrV4> for SocketAddr
1.16.0[src]pub fn from(sock4: SocketAddrV4) -> SocketAddr
[src]
Converts a SocketAddrV4
into a SocketAddr::V4
.
impl From<SocketAddrV6> for SocketAddr
1.16.0[src]
impl From<SocketAddrV6> for SocketAddr
1.16.0[src]pub fn from(sock6: SocketAddrV6) -> SocketAddr
[src]
Converts a SocketAddrV6
into a SocketAddr::V6
.
impl FromStr for SocketAddr
[src]
impl FromStr for SocketAddr
[src]type Err = AddrParseError
The associated error which can be returned from parsing.
pub fn from_str(s: &str) -> Result<SocketAddr, AddrParseError>
[src]
impl Hash for SocketAddr
[src]
impl Hash for SocketAddr
[src]impl Ord for SocketAddr
[src]
impl Ord for SocketAddr
[src]impl PartialEq<SocketAddr> for SocketAddr
[src]
impl PartialEq<SocketAddr> for SocketAddr
[src]pub fn eq(&self, other: &SocketAddr) -> bool
[src]
pub fn ne(&self, other: &SocketAddr) -> bool
[src]
impl PartialOrd<SocketAddr> for SocketAddr
[src]
impl PartialOrd<SocketAddr> for SocketAddr
[src]impl Serialize for SocketAddr
[src]
impl Serialize for SocketAddr
[src]pub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
[src]
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
impl StructuralEq for SocketAddr
[src]
impl StructuralEq for SocketAddr
[src]impl StructuralPartialEq for SocketAddr
[src]
impl StructuralPartialEq for SocketAddr
[src]impl ToSocketAddrs for SocketAddr
[src]
impl ToSocketAddrs for SocketAddr
[src]type Iter = IntoIter<SocketAddr>
Returned iterator over socket addresses which this type may correspond to. Read more
pub fn to_socket_addrs(&self) -> Result<IntoIter<SocketAddr>, Error>
[src]
Auto Trait Implementations
impl RefUnwindSafe for SocketAddr
impl RefUnwindSafe for SocketAddr
impl Send for SocketAddr
impl Send for SocketAddr
impl Sync for SocketAddr
impl Sync for SocketAddr
impl Unpin for SocketAddr
impl Unpin for SocketAddr
impl UnwindSafe for SocketAddr
impl UnwindSafe for SocketAddr
Blanket Implementations
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]pub fn borrow(&self) -> &TⓘNotable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized,
[src]
Notable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut TⓘNotable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized,
[src]
Notable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized,
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,