about summary refs log tree commit diff
path: root/src/libstd/net
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-01-07 09:00:52 +0000
committerbors <bors@rust-lang.org>2017-01-07 09:00:52 +0000
commitb9637f79e261d0b90d23bdbce6b0a16d42868bdd (patch)
treeb60e9e0b3e811a6b5989819458c65fb0b090131b /src/libstd/net
parent008e2393bddcf286393e2c14ad1312f566536bf0 (diff)
parent2d365c6b7ae0ed76d85e6dccaccc5782728e5d0b (diff)
downloadrust-b9637f79e261d0b90d23bdbce6b0a16d42868bdd.tar.gz
rust-b9637f79e261d0b90d23bdbce6b0a16d42868bdd.zip
Auto merge of #38327 - Yamakaky:into-ipaddr, r=brson
Impl From<Ipv4Addr, Ipv6Addr> for IpAddr.

Fixes https://github.com/rust-lang/rfcs/issues/1816.
Diffstat (limited to 'src/libstd/net')
-rw-r--r--src/libstd/net/addr.rs14
-rw-r--r--src/libstd/net/ip.rs14
2 files changed, 28 insertions, 0 deletions
diff --git a/src/libstd/net/addr.rs b/src/libstd/net/addr.rs
index 1ce37f6cc0a..f5348934310 100644
--- a/src/libstd/net/addr.rs
+++ b/src/libstd/net/addr.rs
@@ -446,6 +446,20 @@ impl FromInner<c::sockaddr_in6> for SocketAddrV6 {
     }
 }
 
+#[stable(feature = "ip_from_ip", since = "1.16.0")]
+impl From<SocketAddrV4> for SocketAddr {
+    fn from(sock4: SocketAddrV4) -> SocketAddr {
+        SocketAddr::V4(sock4)
+    }
+}
+
+#[stable(feature = "ip_from_ip", since = "1.16.0")]
+impl From<SocketAddrV6> for SocketAddr {
+    fn from(sock6: SocketAddrV6) -> SocketAddr {
+        SocketAddr::V6(sock6)
+    }
+}
+
 impl<'a> IntoInner<(*const c::sockaddr, c::socklen_t)> for &'a SocketAddr {
     fn into_inner(self) -> (*const c::sockaddr, c::socklen_t) {
         match *self {
diff --git a/src/libstd/net/ip.rs b/src/libstd/net/ip.rs
index 6aab7486004..249f1c76680 100644
--- a/src/libstd/net/ip.rs
+++ b/src/libstd/net/ip.rs
@@ -524,6 +524,20 @@ impl fmt::Display for IpAddr {
     }
 }
 
+#[stable(feature = "ip_from_ip", since = "1.16.0")]
+impl From<Ipv4Addr> for IpAddr {
+    fn from(ipv4: Ipv4Addr) -> IpAddr {
+        IpAddr::V4(ipv4)
+    }
+}
+
+#[stable(feature = "ip_from_ip", since = "1.16.0")]
+impl From<Ipv6Addr> for IpAddr {
+    fn from(ipv6: Ipv6Addr) -> IpAddr {
+        IpAddr::V6(ipv6)
+    }
+}
+
 #[stable(feature = "rust1", since = "1.0.0")]
 impl fmt::Display for Ipv4Addr {
     fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {