Add missing examples to SocketAddrV6
This commit is contained in:
@@ -236,6 +236,14 @@ impl SocketAddrV4 {
|
|||||||
impl SocketAddrV6 {
|
impl SocketAddrV6 {
|
||||||
/// Creates a new socket address from the ip/port/flowinfo/scope_id
|
/// Creates a new socket address from the ip/port/flowinfo/scope_id
|
||||||
/// components.
|
/// components.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use std::net::{SocketAddrV6, Ipv6Addr};
|
||||||
|
///
|
||||||
|
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
|
||||||
|
/// ```
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn new(ip: Ipv6Addr, port: u16, flowinfo: u32, scope_id: u32)
|
pub fn new(ip: Ipv6Addr, port: u16, flowinfo: u32, scope_id: u32)
|
||||||
-> SocketAddrV6 {
|
-> SocketAddrV6 {
|
||||||
@@ -252,6 +260,15 @@ impl SocketAddrV6 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the IP address associated with this socket address.
|
/// Returns the IP address associated with this socket address.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use std::net::{SocketAddrV6, Ipv6Addr};
|
||||||
|
///
|
||||||
|
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
|
||||||
|
/// assert_eq!(socket.ip(), &Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1));
|
||||||
|
/// ```
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn ip(&self) -> &Ipv6Addr {
|
pub fn ip(&self) -> &Ipv6Addr {
|
||||||
unsafe {
|
unsafe {
|
||||||
@@ -260,18 +277,47 @@ impl SocketAddrV6 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Change the IP address associated with this socket address.
|
/// Change the IP address associated with this socket address.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use std::net::{SocketAddrV6, Ipv6Addr};
|
||||||
|
///
|
||||||
|
/// let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
|
||||||
|
/// socket.set_ip(Ipv6Addr::new(76, 45, 0, 0, 0, 0, 0, 0));
|
||||||
|
/// assert_eq!(socket.ip(), &Ipv6Addr::new(76, 45, 0, 0, 0, 0, 0, 0));
|
||||||
|
/// ```
|
||||||
#[stable(feature = "sockaddr_setters", since = "1.9.0")]
|
#[stable(feature = "sockaddr_setters", since = "1.9.0")]
|
||||||
pub fn set_ip(&mut self, new_ip: Ipv6Addr) {
|
pub fn set_ip(&mut self, new_ip: Ipv6Addr) {
|
||||||
self.inner.sin6_addr = *new_ip.as_inner()
|
self.inner.sin6_addr = *new_ip.as_inner()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the port number associated with this socket address.
|
/// Returns the port number associated with this socket address.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use std::net::{SocketAddrV6, Ipv6Addr};
|
||||||
|
///
|
||||||
|
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
|
||||||
|
/// assert_eq!(socket.port(), 8080);
|
||||||
|
/// ```
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn port(&self) -> u16 {
|
pub fn port(&self) -> u16 {
|
||||||
ntoh(self.inner.sin6_port)
|
ntoh(self.inner.sin6_port)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Change the port number associated with this socket address.
|
/// Change the port number associated with this socket address.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use std::net::{SocketAddrV6, Ipv6Addr};
|
||||||
|
///
|
||||||
|
/// let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0);
|
||||||
|
/// socket.set_port(4242);
|
||||||
|
/// assert_eq!(socket.port(), 4242);
|
||||||
|
/// ```
|
||||||
#[stable(feature = "sockaddr_setters", since = "1.9.0")]
|
#[stable(feature = "sockaddr_setters", since = "1.9.0")]
|
||||||
pub fn set_port(&mut self, new_port: u16) {
|
pub fn set_port(&mut self, new_port: u16) {
|
||||||
self.inner.sin6_port = hton(new_port);
|
self.inner.sin6_port = hton(new_port);
|
||||||
@@ -279,12 +325,31 @@ impl SocketAddrV6 {
|
|||||||
|
|
||||||
/// Returns the flow information associated with this address,
|
/// Returns the flow information associated with this address,
|
||||||
/// corresponding to the `sin6_flowinfo` field in C.
|
/// corresponding to the `sin6_flowinfo` field in C.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use std::net::{SocketAddrV6, Ipv6Addr};
|
||||||
|
///
|
||||||
|
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 10, 0);
|
||||||
|
/// assert_eq!(socket.flowinfo(), 10);
|
||||||
|
/// ```
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn flowinfo(&self) -> u32 {
|
pub fn flowinfo(&self) -> u32 {
|
||||||
self.inner.sin6_flowinfo
|
self.inner.sin6_flowinfo
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Change the flow information associated with this socket address.
|
/// Change the flow information associated with this socket address.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use std::net::{SocketAddrV6, Ipv6Addr};
|
||||||
|
///
|
||||||
|
/// let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 10, 0);
|
||||||
|
/// socket.set_flowinfo(56);
|
||||||
|
/// assert_eq!(socket.flowinfo(), 56);
|
||||||
|
/// ```
|
||||||
#[stable(feature = "sockaddr_setters", since = "1.9.0")]
|
#[stable(feature = "sockaddr_setters", since = "1.9.0")]
|
||||||
pub fn set_flowinfo(&mut self, new_flowinfo: u32) {
|
pub fn set_flowinfo(&mut self, new_flowinfo: u32) {
|
||||||
self.inner.sin6_flowinfo = new_flowinfo;
|
self.inner.sin6_flowinfo = new_flowinfo;
|
||||||
@@ -292,12 +357,31 @@ impl SocketAddrV6 {
|
|||||||
|
|
||||||
/// Returns the scope ID associated with this address,
|
/// Returns the scope ID associated with this address,
|
||||||
/// corresponding to the `sin6_scope_id` field in C.
|
/// corresponding to the `sin6_scope_id` field in C.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use std::net::{SocketAddrV6, Ipv6Addr};
|
||||||
|
///
|
||||||
|
/// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 78);
|
||||||
|
/// assert_eq!(socket.scope_id(), 78);
|
||||||
|
/// ```
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn scope_id(&self) -> u32 {
|
pub fn scope_id(&self) -> u32 {
|
||||||
self.inner.sin6_scope_id
|
self.inner.sin6_scope_id
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Change the scope ID associated with this socket address.
|
/// Change the scope ID associated with this socket address.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use std::net::{SocketAddrV6, Ipv6Addr};
|
||||||
|
///
|
||||||
|
/// let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 78);
|
||||||
|
/// socket.set_scope_id(42);
|
||||||
|
/// assert_eq!(socket.scope_id(), 42);
|
||||||
|
/// ```
|
||||||
#[stable(feature = "sockaddr_setters", since = "1.9.0")]
|
#[stable(feature = "sockaddr_setters", since = "1.9.0")]
|
||||||
pub fn set_scope_id(&mut self, new_scope_id: u32) {
|
pub fn set_scope_id(&mut self, new_scope_id: u32) {
|
||||||
self.inner.sin6_scope_id = new_scope_id;
|
self.inner.sin6_scope_id = new_scope_id;
|
||||||
|
|||||||
Reference in New Issue
Block a user