Skip to content

Commit

Permalink
Pulling out constant.
Browse files Browse the repository at this point in the history
  • Loading branch information
gilescope committed Feb 6, 2021
1 parent f165f49 commit f30c51a
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions library/core/src/char/methods.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ use crate::unicode::{self, conversions};

use super::*;

/// If 6th bit set ascii is upper case.
const ASCII_CASE_MASK: u8 = 0b10_0000u8;

#[lang = "char"]
impl char {
/// The highest valid code point a `char` can have.
Expand Down Expand Up @@ -1090,8 +1093,7 @@ impl char {
#[stable(feature = "ascii_methods_on_intrinsics", since = "1.23.0")]
#[inline]
pub fn to_ascii_uppercase(&self) -> char {
// 6th bit dictates ascii case.
if self.is_ascii_lowercase() { ((*self as u8) & !0b10_0000u8) as char } else { *self }
if self.is_ascii_lowercase() { ((*self as u8) & !ASCII_CASE_MASK) as char } else { *self }
}

/// Makes a copy of the value in its ASCII lower case equivalent.
Expand Down Expand Up @@ -1119,8 +1121,7 @@ impl char {
#[stable(feature = "ascii_methods_on_intrinsics", since = "1.23.0")]
#[inline]
pub fn to_ascii_lowercase(&self) -> char {
// 6th bit dictates ascii case.
if self.is_ascii_uppercase() { ((*self as u8) | 0b10_0000u8) as char } else { *self }
if self.is_ascii_uppercase() { ((*self as u8) | ASCII_CASE_MASK) as char } else { *self }
}

/// Checks that two values are an ASCII case-insensitive match.
Expand Down

0 comments on commit f30c51a

Please sign in to comment.