-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ipv4Addr and Ipv6Addr convenience constructors. #44395
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -342,6 +342,34 @@ impl Ipv4Addr { | |
} | ||
} | ||
|
||
/// Creates a new IPv4 address with the address pointing to localhost: 127.0.0.1. | ||
/// | ||
/// # Examples | ||
/// | ||
/// ``` | ||
/// use std::net::Ipv4Addr; | ||
/// | ||
/// let addr = Ipv4Addr::localhost(); | ||
/// assert_eq!(addr, Ipv4Addr::new(127, 0, 0, 1)); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing line closing the code example:
|
||
/// ``` | ||
pub fn localhost() -> Ipv4Addr { | ||
Ipv4Addr::new(127, 0, 0, 1) | ||
} | ||
|
||
/// Creates a new IPv4 address representing an unspecified address: 0.0.0.0 | ||
/// | ||
/// # Examples | ||
/// | ||
/// ``` | ||
/// use std::net::Ipv4Addr; | ||
/// | ||
/// let addr = Ipv4Addr::unspecified(); | ||
/// assert_eq!(addr, Ipv4Addr::new(0, 0, 0, 0)); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing line closing the code example:
|
||
/// ``` | ||
pub fn unspecified() -> Ipv4Addr { | ||
Ipv4Addr::new(0, 0, 0, 0) | ||
} | ||
|
||
/// Returns the four eight-bit integers that make up this address. | ||
/// | ||
/// # Examples | ||
|
@@ -788,6 +816,34 @@ impl Ipv6Addr { | |
Ipv6Addr { inner: addr } | ||
} | ||
|
||
/// Creates a new IPv6 address representing localhost: `::1`. | ||
/// | ||
/// # Examples | ||
/// | ||
/// ``` | ||
/// use std::net::Ipv6Addr; | ||
/// | ||
/// let addr = Ipv6Addr::localhost(); | ||
/// assert_eq!(addr, Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing line closing the code example:
|
||
/// ``` | ||
pub fn localhost() -> Ipv6Addr { | ||
Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1) | ||
} | ||
|
||
/// Creates a new IPv6 address representing the unspecified address: `::` | ||
/// | ||
/// # Examples | ||
/// | ||
/// ``` | ||
/// use std::net::Ipv6Addr; | ||
/// | ||
/// let addr = Ipv6Addr::unspecified(); | ||
/// assert_eq!(addr, Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0)); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing line closing the code example:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. All resolved. Thanks. |
||
/// ``` | ||
pub fn unspecified() -> Ipv6Addr { | ||
Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0) | ||
} | ||
|
||
/// Returns the eight 16-bit segments that make up this address. | ||
/// | ||
/// # Examples | ||
|
@@ -1681,6 +1737,22 @@ mod tests { | |
assert_eq!(Ipv6Addr::from(0x112233445566778899aabbccddeeff11u128), a); | ||
} | ||
|
||
#[test] | ||
fn ipv4_from_constructors() { | ||
assert_eq!(Ipv4Addr::localhost(), Ipv4Addr::new(127, 0, 0, 1)); | ||
assert!(Ipv4Addr::localhost().is_loopback()); | ||
assert_eq!(Ipv4Addr::unspecified(), Ipv4Addr::new(0, 0, 0, 0)); | ||
assert!(Ipv4Addr::unspecified().is_unspecified()); | ||
} | ||
|
||
#[test] | ||
fn ipv6_from_contructors() { | ||
assert_eq!(Ipv6Addr::localhost(), Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)); | ||
assert!(Ipv6Addr::localhost().is_loopback()); | ||
assert_eq!(Ipv6Addr::unspecified(), Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0)); | ||
assert!(Ipv6Addr::unspecified().is_unspecified()); | ||
} | ||
|
||
#[test] | ||
fn ipv4_from_octets() { | ||
assert_eq!(Ipv4Addr::from([127, 0, 0, 1]), Ipv4Addr::new(127, 0, 0, 1)) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe you need to add
# #![feature(ip)]
to this and the other new examples in order for the doc tests to work. The first#
hides the line from the docs (which you might not want to do to make it clear that it is needed for this usage).