1
Fork 0

Make methods unstable const under const_ipv4

This commit is contained in:
CDirkx 2020-09-01 19:50:01 +02:00
parent fbb3673331
commit ee9e48bafc
2 changed files with 10 additions and 9 deletions

View file

@ -239,6 +239,7 @@
#![feature(const_cstr_unchecked)] #![feature(const_cstr_unchecked)]
#![feature(const_fn_transmute)] #![feature(const_fn_transmute)]
#![feature(const_raw_ptr_deref)] #![feature(const_raw_ptr_deref)]
#![feature(const_ipv4)]
#![feature(container_error_extra)] #![feature(container_error_extra)]
#![feature(core_intrinsics)] #![feature(core_intrinsics)]
#![feature(custom_test_frameworks)] #![feature(custom_test_frameworks)]

View file

@ -361,7 +361,7 @@ impl Ipv4Addr {
/// let addr = Ipv4Addr::new(127, 0, 0, 1); /// let addr = Ipv4Addr::new(127, 0, 0, 1);
/// assert_eq!(addr.octets(), [127, 0, 0, 1]); /// assert_eq!(addr.octets(), [127, 0, 0, 1]);
/// ``` /// ```
#[rustc_const_stable(feature = "const_ipv4", since = "1.48.0")] #[rustc_const_unstable(feature = "const_ipv4", issue = "76205")]
#[stable(feature = "rust1", since = "1.0.0")] #[stable(feature = "rust1", since = "1.0.0")]
pub const fn octets(&self) -> [u8; 4] { pub const fn octets(&self) -> [u8; 4] {
// This returns the order we want because s_addr is stored in big-endian. // This returns the order we want because s_addr is stored in big-endian.
@ -405,7 +405,7 @@ impl Ipv4Addr {
/// assert_eq!(Ipv4Addr::new(127, 0, 0, 1).is_loopback(), true); /// assert_eq!(Ipv4Addr::new(127, 0, 0, 1).is_loopback(), true);
/// assert_eq!(Ipv4Addr::new(45, 22, 13, 197).is_loopback(), false); /// assert_eq!(Ipv4Addr::new(45, 22, 13, 197).is_loopback(), false);
/// ``` /// ```
#[rustc_const_stable(feature = "const_ipv4", since = "1.48.0")] #[rustc_const_unstable(feature = "const_ipv4", issue = "76205")]
#[stable(since = "1.7.0", feature = "ip_17")] #[stable(since = "1.7.0", feature = "ip_17")]
pub const fn is_loopback(&self) -> bool { pub const fn is_loopback(&self) -> bool {
self.octets()[0] == 127 self.octets()[0] == 127
@ -435,7 +435,7 @@ impl Ipv4Addr {
/// assert_eq!(Ipv4Addr::new(192, 168, 0, 2).is_private(), true); /// assert_eq!(Ipv4Addr::new(192, 168, 0, 2).is_private(), true);
/// assert_eq!(Ipv4Addr::new(192, 169, 0, 2).is_private(), false); /// assert_eq!(Ipv4Addr::new(192, 169, 0, 2).is_private(), false);
/// ``` /// ```
#[rustc_const_stable(feature = "const_ipv4", since = "1.48.0")] #[rustc_const_unstable(feature = "const_ipv4", issue = "76205")]
#[stable(since = "1.7.0", feature = "ip_17")] #[stable(since = "1.7.0", feature = "ip_17")]
pub const fn is_private(&self) -> bool { pub const fn is_private(&self) -> bool {
match self.octets() { match self.octets() {
@ -462,7 +462,7 @@ impl Ipv4Addr {
/// assert_eq!(Ipv4Addr::new(169, 254, 10, 65).is_link_local(), true); /// assert_eq!(Ipv4Addr::new(169, 254, 10, 65).is_link_local(), true);
/// assert_eq!(Ipv4Addr::new(16, 89, 10, 65).is_link_local(), false); /// assert_eq!(Ipv4Addr::new(16, 89, 10, 65).is_link_local(), false);
/// ``` /// ```
#[rustc_const_stable(feature = "const_ipv4", since = "1.48.0")] #[rustc_const_unstable(feature = "const_ipv4", issue = "76205")]
#[stable(since = "1.7.0", feature = "ip_17")] #[stable(since = "1.7.0", feature = "ip_17")]
pub const fn is_link_local(&self) -> bool { pub const fn is_link_local(&self) -> bool {
match self.octets() { match self.octets() {
@ -577,7 +577,7 @@ impl Ipv4Addr {
/// assert_eq!(Ipv4Addr::new(100, 127, 255, 255).is_shared(), true); /// assert_eq!(Ipv4Addr::new(100, 127, 255, 255).is_shared(), true);
/// assert_eq!(Ipv4Addr::new(100, 128, 0, 0).is_shared(), false); /// assert_eq!(Ipv4Addr::new(100, 128, 0, 0).is_shared(), false);
/// ``` /// ```
#[rustc_const_stable(feature = "const_ipv4", since = "1.48.0")] #[rustc_const_unstable(feature = "const_ipv4", issue = "76205")]
pub const fn is_shared(&self) -> bool { pub const fn is_shared(&self) -> bool {
self.octets()[0] == 100 && (self.octets()[1] & 0b1100_0000 == 0b0100_0000) self.octets()[0] == 100 && (self.octets()[1] & 0b1100_0000 == 0b0100_0000)
} }
@ -610,7 +610,7 @@ impl Ipv4Addr {
/// assert_eq!(Ipv4Addr::new(192, 0, 1, 0).is_ietf_protocol_assignment(), false); /// assert_eq!(Ipv4Addr::new(192, 0, 1, 0).is_ietf_protocol_assignment(), false);
/// assert_eq!(Ipv4Addr::new(191, 255, 255, 255).is_ietf_protocol_assignment(), false); /// assert_eq!(Ipv4Addr::new(191, 255, 255, 255).is_ietf_protocol_assignment(), false);
/// ``` /// ```
#[rustc_const_stable(feature = "const_ipv4", since = "1.48.0")] #[rustc_const_unstable(feature = "const_ipv4", issue = "76205")]
pub const fn is_ietf_protocol_assignment(&self) -> bool { pub const fn is_ietf_protocol_assignment(&self) -> bool {
self.octets()[0] == 192 && self.octets()[1] == 0 && self.octets()[2] == 0 self.octets()[0] == 192 && self.octets()[1] == 0 && self.octets()[2] == 0
} }
@ -634,7 +634,7 @@ impl Ipv4Addr {
/// assert_eq!(Ipv4Addr::new(198, 19, 255, 255).is_benchmarking(), true); /// assert_eq!(Ipv4Addr::new(198, 19, 255, 255).is_benchmarking(), true);
/// assert_eq!(Ipv4Addr::new(198, 20, 0, 0).is_benchmarking(), false); /// assert_eq!(Ipv4Addr::new(198, 20, 0, 0).is_benchmarking(), false);
/// ``` /// ```
#[rustc_const_stable(feature = "const_ipv4", since = "1.48.0")] #[rustc_const_unstable(feature = "const_ipv4", issue = "76205")]
pub const fn is_benchmarking(&self) -> bool { pub const fn is_benchmarking(&self) -> bool {
self.octets()[0] == 198 && (self.octets()[1] & 0xfe) == 18 self.octets()[0] == 198 && (self.octets()[1] & 0xfe) == 18
} }
@ -688,7 +688,7 @@ impl Ipv4Addr {
/// assert_eq!(Ipv4Addr::new(236, 168, 10, 65).is_multicast(), true); /// assert_eq!(Ipv4Addr::new(236, 168, 10, 65).is_multicast(), true);
/// assert_eq!(Ipv4Addr::new(172, 16, 10, 65).is_multicast(), false); /// assert_eq!(Ipv4Addr::new(172, 16, 10, 65).is_multicast(), false);
/// ``` /// ```
#[rustc_const_stable(feature = "const_ipv4", since = "1.48.0")] #[rustc_const_unstable(feature = "const_ipv4", issue = "76205")]
#[stable(since = "1.7.0", feature = "ip_17")] #[stable(since = "1.7.0", feature = "ip_17")]
pub const fn is_multicast(&self) -> bool { pub const fn is_multicast(&self) -> bool {
self.octets()[0] >= 224 && self.octets()[0] <= 239 self.octets()[0] >= 224 && self.octets()[0] <= 239
@ -735,7 +735,7 @@ impl Ipv4Addr {
/// assert_eq!(Ipv4Addr::new(203, 0, 113, 6).is_documentation(), true); /// assert_eq!(Ipv4Addr::new(203, 0, 113, 6).is_documentation(), true);
/// assert_eq!(Ipv4Addr::new(193, 34, 17, 19).is_documentation(), false); /// assert_eq!(Ipv4Addr::new(193, 34, 17, 19).is_documentation(), false);
/// ``` /// ```
#[rustc_const_stable(feature = "const_ipv4", since = "1.48.0")] #[rustc_const_unstable(feature = "const_ipv4", issue = "76205")]
#[stable(since = "1.7.0", feature = "ip_17")] #[stable(since = "1.7.0", feature = "ip_17")]
pub const fn is_documentation(&self) -> bool { pub const fn is_documentation(&self) -> bool {
match self.octets() { match self.octets() {