about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/ascii.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/libstd/ascii.rs b/src/libstd/ascii.rs
index 18b6a1ef52a..c43b4e9b6ea 100644
--- a/src/libstd/ascii.rs
+++ b/src/libstd/ascii.rs
@@ -67,7 +67,7 @@ impl Ascii {
     /// Check if the character is a number (0-9)
     #[inline]
     pub fn is_digit(&self) -> bool {
-        self.chr >= 0x31 && self.chr <= 0x39
+        self.chr >= 0x30 && self.chr <= 0x39
     }
 
     /// Check if the character is a letter or number
@@ -85,7 +85,7 @@ impl Ascii {
     /// Check if the character is a control character
     #[inline]
     pub fn is_control(&self) -> bool {
-        self.chr <= 0x20 || self.chr == 0x7F
+        self.chr < 0x20 || self.chr == 0x7F
     }
 
     /// Checks if the character is printable (except space)
@@ -498,6 +498,15 @@ mod tests {
         assert_eq!('`'.to_ascii().to_upper().to_char(), '`');
         assert_eq!('{'.to_ascii().to_upper().to_char(), '{');
 
+        assert!('0'.to_ascii().is_digit());
+        assert!('9'.to_ascii().is_digit());
+        assert!(!'/'.to_ascii().is_digit());
+        assert!(!':'.to_ascii().is_digit());
+
+        assert!((0x1fu8).to_ascii().is_control());
+        assert!(!' '.to_ascii().is_control());
+        assert!((0x7fu8).to_ascii().is_control());
+
         assert!("banana".chars().all(|c| c.is_ascii()));
         assert!(!"ประเทศไทย中华Việt Nam".chars().all(|c| c.is_ascii()));
     }