Skip to content

Commit

Permalink
Auto merge of #32050 - achanda:from-slice-v4, r=alexcrichton
Browse files Browse the repository at this point in the history
Add an impl for From trait

Converts a u8 slice to a Ipv4Addr
More discussion on this here: rust-lang/rfcs#1498 (comment)
  • Loading branch information
bors committed Mar 19, 2016
2 parents 02954ae + ee18d8e commit 10bdd80
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/libstd/net/ip.rs
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,13 @@ impl From<u32> 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.
///
Expand Down Expand Up @@ -831,6 +838,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));
Expand Down

0 comments on commit 10bdd80

Please sign in to comment.