auto merge of #14401 : aochagavia/rust/pr4, r=alexcrichton
Some functions implemented for the Ascii struct have the same functionality as other functions implemented for the normal chars. For consistency, I think they should have the same name, so I renamed the functions in Ascii to match the names in the Char trait. * Renamed `to_lower` to `to_lowercase` * Renamed `to_upper` to `to_uppercase` * Renamed `is_alpha` to `is_alphabetic` * Renamed `is_alnum` to `is_alphanumeric` * Renamed `is_lower` to `is_lowercase` * Renamed `is_upper` to `is_uppercase` [breaking-change]
This commit is contained in:
commit
6304a27b80
3 changed files with 54 additions and 12 deletions
|
@ -819,7 +819,7 @@ fn check_expected_errors(expected_errors: Vec<errors::ExpectedError> ,
|
||||||
let i = s.chars();
|
let i = s.chars();
|
||||||
let c : Vec<char> = i.map( |c| {
|
let c : Vec<char> = i.map( |c| {
|
||||||
if c.is_ascii() {
|
if c.is_ascii() {
|
||||||
c.to_ascii().to_lower().to_char()
|
c.to_ascii().to_lowercase().to_char()
|
||||||
} else {
|
} else {
|
||||||
c
|
c
|
||||||
}
|
}
|
||||||
|
|
|
@ -553,18 +553,18 @@ fn in_char_specifiers(specifiers: &[CharSpecifier], c: char, options: MatchOptio
|
||||||
// FIXME: work with non-ascii chars properly (issue #1347)
|
// FIXME: work with non-ascii chars properly (issue #1347)
|
||||||
if !options.case_sensitive && c.is_ascii() && start.is_ascii() && end.is_ascii() {
|
if !options.case_sensitive && c.is_ascii() && start.is_ascii() && end.is_ascii() {
|
||||||
|
|
||||||
let start = start.to_ascii().to_lower();
|
let start = start.to_ascii().to_lowercase();
|
||||||
let end = end.to_ascii().to_lower();
|
let end = end.to_ascii().to_lowercase();
|
||||||
|
|
||||||
let start_up = start.to_upper();
|
let start_up = start.to_uppercase();
|
||||||
let end_up = end.to_upper();
|
let end_up = end.to_uppercase();
|
||||||
|
|
||||||
// only allow case insensitive matching when
|
// only allow case insensitive matching when
|
||||||
// both start and end are within a-z or A-Z
|
// both start and end are within a-z or A-Z
|
||||||
if start != start_up && end != end_up {
|
if start != start_up && end != end_up {
|
||||||
let start = start.to_char();
|
let start = start.to_char();
|
||||||
let end = end.to_char();
|
let end = end.to_char();
|
||||||
let c = c.to_ascii().to_lower().to_char();
|
let c = c.to_ascii().to_lowercase().to_char();
|
||||||
if c >= start && c <= end {
|
if c >= start && c <= end {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,15 +39,29 @@ impl Ascii {
|
||||||
self.chr as char
|
self.chr as char
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
#[allow(missing_doc)]
|
||||||
|
#[deprecated="renamed to `to_lowercase`"]
|
||||||
|
pub fn to_lower(self) -> Ascii {
|
||||||
|
self.to_lowercase()
|
||||||
|
}
|
||||||
|
|
||||||
/// Convert to lowercase.
|
/// Convert to lowercase.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn to_lower(self) -> Ascii {
|
pub fn to_lowercase(self) -> Ascii {
|
||||||
Ascii{chr: ASCII_LOWER_MAP[self.chr as uint]}
|
Ascii{chr: ASCII_LOWER_MAP[self.chr as uint]}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
#[allow(missing_doc)]
|
||||||
|
#[deprecated="renamed to `to_uppercase`"]
|
||||||
|
pub fn to_upper(self) -> Ascii {
|
||||||
|
self.to_uppercase()
|
||||||
|
}
|
||||||
|
|
||||||
/// Convert to uppercase.
|
/// Convert to uppercase.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn to_upper(self) -> Ascii {
|
pub fn to_uppercase(self) -> Ascii {
|
||||||
Ascii{chr: ASCII_UPPER_MAP[self.chr as uint]}
|
Ascii{chr: ASCII_UPPER_MAP[self.chr as uint]}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,9 +73,16 @@ impl Ascii {
|
||||||
|
|
||||||
// the following methods are like ctype, and the implementation is inspired by musl
|
// the following methods are like ctype, and the implementation is inspired by musl
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
#[allow(missing_doc)]
|
||||||
|
#[deprecated="renamed to `is_alphabetic`"]
|
||||||
|
pub fn is_alpha(&self) -> bool {
|
||||||
|
self.is_alphabetic()
|
||||||
|
}
|
||||||
|
|
||||||
/// Check if the character is a letter (a-z, A-Z)
|
/// Check if the character is a letter (a-z, A-Z)
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn is_alpha(&self) -> bool {
|
pub fn is_alphabetic(&self) -> bool {
|
||||||
(self.chr >= 0x41 && self.chr <= 0x5A) || (self.chr >= 0x61 && self.chr <= 0x7A)
|
(self.chr >= 0x41 && self.chr <= 0x5A) || (self.chr >= 0x61 && self.chr <= 0x7A)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,9 +92,16 @@ impl Ascii {
|
||||||
self.chr >= 0x30 && self.chr <= 0x39
|
self.chr >= 0x30 && self.chr <= 0x39
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
#[allow(missing_doc)]
|
||||||
|
#[deprecated="renamed to `is_alphanumeric`"]
|
||||||
|
pub fn is_alnum(&self) -> bool {
|
||||||
|
self.is_alphanumeric()
|
||||||
|
}
|
||||||
|
|
||||||
/// Check if the character is a letter or number
|
/// Check if the character is a letter or number
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn is_alnum(&self) -> bool {
|
pub fn is_alphanumeric(&self) -> bool {
|
||||||
self.is_alpha() || self.is_digit()
|
self.is_alpha() || self.is_digit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,15 +129,29 @@ impl Ascii {
|
||||||
(self.chr - 0x20) < 0x5F
|
(self.chr - 0x20) < 0x5F
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
#[allow(missing_doc)]
|
||||||
|
#[deprecated="renamed to `is_lowercase`"]
|
||||||
|
pub fn is_lower(&self) -> bool {
|
||||||
|
self.is_lowercase()
|
||||||
|
}
|
||||||
|
|
||||||
/// Checks if the character is lowercase
|
/// Checks if the character is lowercase
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn is_lower(&self) -> bool {
|
pub fn is_lowercase(&self) -> bool {
|
||||||
(self.chr - 'a' as u8) < 26
|
(self.chr - 'a' as u8) < 26
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
#[allow(missing_doc)]
|
||||||
|
#[deprecated="renamed to `is_uppercase`"]
|
||||||
|
pub fn is_upper(&self) -> bool {
|
||||||
|
self.is_uppercase()
|
||||||
|
}
|
||||||
|
|
||||||
/// Checks if the character is uppercase
|
/// Checks if the character is uppercase
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn is_upper(&self) -> bool {
|
pub fn is_uppercase(&self) -> bool {
|
||||||
(self.chr - 'A' as u8) < 26
|
(self.chr - 'A' as u8) < 26
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue