Make the ASCII ctype inherent methods const
This commit is contained in:
parent
a29424a226
commit
a9212b8e93
3 changed files with 41 additions and 20 deletions
|
@ -1072,8 +1072,9 @@ impl char {
|
|||
/// assert!(!esc.is_ascii_alphabetic());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_alphabetic(&self) -> bool {
|
||||
pub const fn is_ascii_alphabetic(&self) -> bool {
|
||||
self.is_ascii() && (*self as u8).is_ascii_alphabetic()
|
||||
}
|
||||
|
||||
|
@ -1104,8 +1105,9 @@ impl char {
|
|||
/// assert!(!esc.is_ascii_uppercase());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_uppercase(&self) -> bool {
|
||||
pub const fn is_ascii_uppercase(&self) -> bool {
|
||||
self.is_ascii() && (*self as u8).is_ascii_uppercase()
|
||||
}
|
||||
|
||||
|
@ -1136,8 +1138,9 @@ impl char {
|
|||
/// assert!(!esc.is_ascii_lowercase());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_lowercase(&self) -> bool {
|
||||
pub const fn is_ascii_lowercase(&self) -> bool {
|
||||
self.is_ascii() && (*self as u8).is_ascii_lowercase()
|
||||
}
|
||||
|
||||
|
@ -1171,8 +1174,9 @@ impl char {
|
|||
/// assert!(!esc.is_ascii_alphanumeric());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_alphanumeric(&self) -> bool {
|
||||
pub const fn is_ascii_alphanumeric(&self) -> bool {
|
||||
self.is_ascii() && (*self as u8).is_ascii_alphanumeric()
|
||||
}
|
||||
|
||||
|
@ -1203,8 +1207,9 @@ impl char {
|
|||
/// assert!(!esc.is_ascii_digit());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_digit(&self) -> bool {
|
||||
pub const fn is_ascii_digit(&self) -> bool {
|
||||
self.is_ascii() && (*self as u8).is_ascii_digit()
|
||||
}
|
||||
|
||||
|
@ -1238,8 +1243,9 @@ impl char {
|
|||
/// assert!(!esc.is_ascii_hexdigit());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_hexdigit(&self) -> bool {
|
||||
pub const fn is_ascii_hexdigit(&self) -> bool {
|
||||
self.is_ascii() && (*self as u8).is_ascii_hexdigit()
|
||||
}
|
||||
|
||||
|
@ -1274,8 +1280,9 @@ impl char {
|
|||
/// assert!(!esc.is_ascii_punctuation());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_punctuation(&self) -> bool {
|
||||
pub const fn is_ascii_punctuation(&self) -> bool {
|
||||
self.is_ascii() && (*self as u8).is_ascii_punctuation()
|
||||
}
|
||||
|
||||
|
@ -1306,8 +1313,9 @@ impl char {
|
|||
/// assert!(!esc.is_ascii_graphic());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_graphic(&self) -> bool {
|
||||
pub const fn is_ascii_graphic(&self) -> bool {
|
||||
self.is_ascii() && (*self as u8).is_ascii_graphic()
|
||||
}
|
||||
|
||||
|
@ -1355,8 +1363,9 @@ impl char {
|
|||
/// assert!(!esc.is_ascii_whitespace());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_whitespace(&self) -> bool {
|
||||
pub const fn is_ascii_whitespace(&self) -> bool {
|
||||
self.is_ascii() && (*self as u8).is_ascii_whitespace()
|
||||
}
|
||||
|
||||
|
@ -1389,8 +1398,9 @@ impl char {
|
|||
/// assert!(esc.is_ascii_control());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_control(&self) -> bool {
|
||||
pub const fn is_ascii_control(&self) -> bool {
|
||||
self.is_ascii() && (*self as u8).is_ascii_control()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,6 +70,7 @@
|
|||
#![feature(bound_cloned)]
|
||||
#![feature(cfg_target_has_atomic)]
|
||||
#![feature(concat_idents)]
|
||||
#![feature(const_ascii_ctype_on_intrinsics)]
|
||||
#![feature(const_alloc_layout)]
|
||||
#![feature(const_if_match)]
|
||||
#![feature(const_checked_int_methods)]
|
||||
|
|
|
@ -4448,8 +4448,9 @@ impl u8 {
|
|||
/// assert!(!esc.is_ascii_alphabetic());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_alphabetic(&self) -> bool {
|
||||
pub const fn is_ascii_alphabetic(&self) -> bool {
|
||||
matches!(*self, b'A'..=b'Z' | b'a'..=b'z')
|
||||
}
|
||||
|
||||
|
@ -4480,8 +4481,9 @@ impl u8 {
|
|||
/// assert!(!esc.is_ascii_uppercase());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_uppercase(&self) -> bool {
|
||||
pub const fn is_ascii_uppercase(&self) -> bool {
|
||||
matches!(*self, b'A'..=b'Z')
|
||||
}
|
||||
|
||||
|
@ -4512,8 +4514,9 @@ impl u8 {
|
|||
/// assert!(!esc.is_ascii_lowercase());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_lowercase(&self) -> bool {
|
||||
pub const fn is_ascii_lowercase(&self) -> bool {
|
||||
matches!(*self, b'a'..=b'z')
|
||||
}
|
||||
|
||||
|
@ -4547,8 +4550,9 @@ impl u8 {
|
|||
/// assert!(!esc.is_ascii_alphanumeric());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_alphanumeric(&self) -> bool {
|
||||
pub const fn is_ascii_alphanumeric(&self) -> bool {
|
||||
matches!(*self, b'0'..=b'9' | b'A'..=b'Z' | b'a'..=b'z')
|
||||
}
|
||||
|
||||
|
@ -4579,8 +4583,9 @@ impl u8 {
|
|||
/// assert!(!esc.is_ascii_digit());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_digit(&self) -> bool {
|
||||
pub const fn is_ascii_digit(&self) -> bool {
|
||||
matches!(*self, b'0'..=b'9')
|
||||
}
|
||||
|
||||
|
@ -4614,8 +4619,9 @@ impl u8 {
|
|||
/// assert!(!esc.is_ascii_hexdigit());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_hexdigit(&self) -> bool {
|
||||
pub const fn is_ascii_hexdigit(&self) -> bool {
|
||||
matches!(*self, b'0'..=b'9' | b'A'..=b'F' | b'a'..=b'f')
|
||||
}
|
||||
|
||||
|
@ -4650,8 +4656,9 @@ impl u8 {
|
|||
/// assert!(!esc.is_ascii_punctuation());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_punctuation(&self) -> bool {
|
||||
pub const fn is_ascii_punctuation(&self) -> bool {
|
||||
matches!(*self, b'!'..=b'/' | b':'..=b'@' | b'['..=b'`' | b'{'..=b'~')
|
||||
}
|
||||
|
||||
|
@ -4682,8 +4689,9 @@ impl u8 {
|
|||
/// assert!(!esc.is_ascii_graphic());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_graphic(&self) -> bool {
|
||||
pub const fn is_ascii_graphic(&self) -> bool {
|
||||
matches!(*self, b'!'..=b'~')
|
||||
}
|
||||
|
||||
|
@ -4731,8 +4739,9 @@ impl u8 {
|
|||
/// assert!(!esc.is_ascii_whitespace());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_whitespace(&self) -> bool {
|
||||
pub const fn is_ascii_whitespace(&self) -> bool {
|
||||
matches!(*self, b'\t' | b'\n' | b'\x0C' | b'\r' | b' ')
|
||||
}
|
||||
|
||||
|
@ -4765,8 +4774,9 @@ impl u8 {
|
|||
/// assert!(esc.is_ascii_control());
|
||||
/// ```
|
||||
#[stable(feature = "ascii_ctype_on_intrinsics", since = "1.24.0")]
|
||||
#[rustc_const_unstable(feature = "const_ascii_ctype_on_intrinsics", issue = "68983")]
|
||||
#[inline]
|
||||
pub fn is_ascii_control(&self) -> bool {
|
||||
pub const fn is_ascii_control(&self) -> bool {
|
||||
matches!(*self, b'\0'..=b'\x1F' | b'\x7F')
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue