summaryrefslogtreecommitdiff
path: root/src/input.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/input.rs')
-rw-r--r--src/input.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/input.rs b/src/input.rs
index 0857c8c..0b38556 100644
--- a/src/input.rs
+++ b/src/input.rs
@@ -48,22 +48,44 @@ impl<'a> Input for &'a [u8] {
}
pub trait Character {
+ fn is_ascii(&self) -> bool;
+
fn is_alphabetic(&self) -> bool;
+ fn is_ascii_alphabetic(&self) -> bool;
+
fn is_numeric(&self) -> bool;
+ fn is_ascii_numeric(&self) -> bool {
+ self.is_ascii() && self.is_numeric()
+ }
+
fn is_whitespace(&self) -> bool;
+ fn is_ascii_whitespace(&self) -> bool;
+
fn is_alphanumeric(&self) -> bool {
self.is_alphabetic() || self.is_numeric()
}
+
+ fn is_ascii_alphanumeric(&self) -> bool {
+ self.is_ascii_alphabetic() || self.is_ascii_numeric()
+ }
}
impl Character for char {
+ fn is_ascii(&self) -> bool {
+ (*self).is_ascii()
+ }
+
fn is_alphabetic(&self) -> bool {
(*self).is_ascii_alphabetic()
}
+ fn is_ascii_alphabetic(&self) -> bool {
+ (*self).is_ascii_alphabetic()
+ }
+
fn is_numeric(&self) -> bool {
(*self).is_numeric()
}
@@ -71,6 +93,10 @@ impl Character for char {
fn is_whitespace(&self) -> bool {
(*self).is_whitespace()
}
+
+ fn is_ascii_whitespace(&self) -> bool {
+ (*self).is_ascii_whitespace()
+ }
}
#[derive(Clone)]