1
Fork 0

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:
bors 2014-05-24 14:26:23 -07:00
commit 6304a27b80
3 changed files with 54 additions and 12 deletions

View file

@ -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
} }

View file

@ -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;
} }

View file

@ -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
} }