From ee18d8e99b03a451f9dd549fd756ce006134bd73 Mon Sep 17 00:00:00 2001 From: Abhishek Chanda Date: Fri, 4 Mar 2016 14:12:18 -0800 Subject: [PATCH] Add an impl for From trait Converts a u8 slice to a Ipv4Addr --- src/libstd/net/ip.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/libstd/net/ip.rs b/src/libstd/net/ip.rs index 68075af61cf5e..e943eb6f26f1e 100644 --- a/src/libstd/net/ip.rs +++ b/src/libstd/net/ip.rs @@ -276,6 +276,13 @@ impl From for Ipv4Addr { } } +#[stable(feature = "from_slice_v4", since = "1.9.0")] +impl From<[u8; 4]> for Ipv4Addr { + fn from(octets: [u8; 4]) -> Ipv4Addr { + Ipv4Addr::new(octets[0], octets[1], octets[2], octets[3]) + } +} + impl Ipv6Addr { /// Creates a new IPv6 address from eight 16-bit segments. /// @@ -816,6 +823,11 @@ mod tests { assert_eq!(Ipv4Addr::from(2130706433), a); } + #[test] + fn ipv4_from_u32_slice() { + assert_eq!(Ipv4Addr::from([127, 0, 0, 1]), Ipv4Addr::new(127, 0, 0, 1)) + } + #[test] fn ord() { assert!(Ipv4Addr::new(100, 64, 3, 3) < Ipv4Addr::new(192, 0, 2, 2));