ソースを参照

Reworked error types

Lorenz Bung 7年前
コミット
656e52332f
2個のファイルの変更13行の追加7行の削除
  1. 10
    5
      hw9/task1/src/lib.rs
  2. 3
    2
      hw9/task1/tests/task1.rs

+ 10
- 5
hw9/task1/src/lib.rs ファイルの表示

@@ -14,11 +14,11 @@ pub fn parse(message: &str) -> Command {
14 14
                     Command::Control(cmd.to_string())
15 15
                 }
16 16
                 Some("RETRIEVE") => { Command::Retrieve }
17
-                Some(_) => { Command::NotFoundError }
18
-                None => { Command::EmptyError }
17
+                Some(_) => { Command::Error(ParseError::UnknownCommand) }
18
+                None => { Command::Error(ParseError::EmptyString) }
19 19
             }
20 20
         }
21
-        None => { Command::EmptyError }
21
+        None => { Command::Error(ParseError::EmptyString) }
22 22
     }
23 23
 }
24 24
 
@@ -27,6 +27,11 @@ pub enum Command {
27 27
     Stage(String),
28 28
     Control(String),
29 29
     Retrieve,
30
-    NotFoundError,
31
-    EmptyError,
30
+    Error(ParseError),
31
+}
32
+
33
+#[derive(Debug, PartialEq)]
34
+pub enum ParseError {
35
+    UnknownCommand,
36
+    EmptyString,
32 37
 }

+ 3
- 2
hw9/task1/tests/task1.rs ファイルの表示

@@ -5,16 +5,17 @@ mod tests {
5 5
     extern crate task1;
6 6
 
7 7
     use self::task1::Command;
8
+    use self::task1::ParseError;
8 9
     use self::task1::parse;
9 10
 
10 11
     #[test]
11 12
     fn empty_returns_correct_command() {
12
-        assert_eq!(parse("\n"), Command::EmptyError)
13
+        assert_eq!(parse("\n"), Command::Error(ParseError::EmptyString))
13 14
     }
14 15
 
15 16
     #[test]
16 17
     fn not_known_command_returns_correct_command() {
17
-        assert_eq!(parse("Hello"), Command::NotFoundError)
18
+        assert_eq!(parse("Hello"), Command::Error(ParseError::UnknownCommand))
18 19
     }
19 20
 
20 21
     #[test]

読み込み中…
キャンセル
保存