}
}
+#[derive(PartialEq, Debug)]
enum CharType {
Line,
Whitespace,
Some(_) => CharType::Other,
}
}
+
+#[cfg(test)]
+mod tests {
+
+ use super::*;
+
+ #[test]
+ fn test_chartype_none() {
+ assert_eq!(chartype(None), CharType::Line);
+ }
+
+ #[test]
+ fn test_chartype_cr() {
+ assert_eq!(chartype(Some(&LF)), CharType::Line);
+ }
+
+ #[test]
+ fn test_chartype_lf() {
+ assert_eq!(chartype(Some(&CR)), CharType::Line);
+ }
+
+ #[test]
+ fn test_chartype_space() {
+ assert_eq!(chartype(Some(&SPACE)), CharType::Whitespace);
+ }
+
+ #[test]
+ fn test_chartype_tab() {
+ assert_eq!(chartype(Some(&TAB)), CharType::Whitespace);
+ }
+
+ #[test]
+ fn test_chartype_alpha() {
+ const A: u8 = b'a';
+ assert_eq!(chartype(Some(&A)), CharType::Other);
+ }
+
+ #[test]
+ fn test_chartype_number() {
+ const ONE: u8 = b'1';
+ assert_eq!(chartype(Some(&ONE)), CharType::Other);
+ }
+}