changeset 11:13e2a5545167

Implement From conversions This implements same `From<T>` conversions that `std` does.
author Martin Habovstiak <martin.habovstiak@gmail.com>
date Sun, 29 Nov 2020 14:11:19 +0100
parents c9f42be465ca
children 4479770c2275
files src/lib.rs
diffstat 1 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib.rs	Sun Nov 29 14:04:48 2020 +0100
+++ b/src/lib.rs	Sun Nov 29 14:11:19 2020 +0100
@@ -306,6 +306,24 @@
 
 const SYSTEMD_PREFIX: &str = "systemd://";
 
+impl<I: Into<std::net::IpAddr>> From<(I, u16)> for SocketAddr {
+    fn from(value: (I, u16)) -> Self {
+        SocketAddr(SocketAddrInner::Ordinary(value.into()))
+    }
+}
+
+impl From<std::net::SocketAddrV4> for SocketAddr {
+    fn from(value: std::net::SocketAddrV4) -> Self {
+        SocketAddr(SocketAddrInner::Ordinary(value.into()))
+    }
+}
+
+impl From<std::net::SocketAddrV6> for SocketAddr {
+    fn from(value: std::net::SocketAddrV6) -> Self {
+        SocketAddr(SocketAddrInner::Ordinary(value.into()))
+    }
+}
+
 impl std::str::FromStr for SocketAddr {
     type Err = ParseError;