| ... | @@ -182,20 +182,14 @@ pub const isASCII = isAscii; | ... | @@ -182,20 +182,14 @@ pub const isASCII = isAscii; |
| 182 | | 182 | |
| 183 | /// Uppercases the character and returns it as-is if already uppercase or not a letter. | 183 | /// Uppercases the character and returns it as-is if already uppercase or not a letter. |
| 184 | pub fn toUpper(c: u8) u8 { | 184 | pub fn toUpper(c: u8) u8 { |
| 185 | if (isLower(c)) { | 185 | const mask = @as(u8, @intFromBool(isLower(c))) << 5; |
| 186 | return c & 0b11011111; | 186 | return c ^ mask; |
| 187 | } else { | | |
| 188 | return c; | | |
| 189 | } | | |
| 190 | } | 187 | } |
| 191 | | 188 | |
| 192 | /// Lowercases the character and returns it as-is if already lowercase or not a letter. | 189 | /// Lowercases the character and returns it as-is if already lowercase or not a letter. |
| 193 | pub fn toLower(c: u8) u8 { | 190 | pub fn toLower(c: u8) u8 { |
| 194 | if (isUpper(c)) { | 191 | const mask = @as(u8, @intFromBool(isUpper(c))) << 5; |
| 195 | return c | 0b00100000; | 192 | return c | mask; |
| 196 | } else { | | |
| 197 | return c; | | |
| 198 | } | | |
| 199 | } | 193 | } |
| 200 | | 194 | |
| 201 | test "ASCII character classes" { | 195 | test "ASCII character classes" { |