aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2018-10-23 15:40:38 +0200
committerTeddy Wing2018-10-23 15:40:38 +0200
commitb419ee9c6809d1e4081c885380fbf8c8103dad49 (patch)
tree48ced8f26949f93645281d95dca22c710f965e11
parent8369a753e24e1e2d986e9988793655f8923e182c (diff)
downloaddome-key-map-b419ee9c6809d1e4081c885380fbf8c8103dad49.tar.bz2
do_trial(): Fix unreachable `DurationError` patterns
I was getting these warnings: warning: unreachable pattern --> src/trial.rs:41:17 | 40 | DurationError => return trial_expired(), | ------------- matches any value 41 | e => { | ^ unreachable pattern warning: unreachable pattern --> src/trial.rs:55:9 | 54 | DurationError => trial_expired(), | ------------- matches any value 55 | Err(e) => (), | ^^^^^^ unreachable pattern Wasn't correctly matching the `DurationError`s. Add an 'error-chain' `ErrorKind` for `DurationError` to make it the same type as the others matched in the first `match` pattern.
-rw-r--r--src/errors.rs1
-rw-r--r--src/trial.rs9
2 files changed, 7 insertions, 3 deletions
diff --git a/src/errors.rs b/src/errors.rs
index f84bb2e..75079e3 100644
--- a/src/errors.rs
+++ b/src/errors.rs
@@ -8,6 +8,7 @@ error_chain! {
Io(::std::io::Error);
DateCrypt(DateCryptError);
+ Duration(DurationError);
}
}
diff --git a/src/trial.rs b/src/trial.rs
index 2b535a7..38c8a82 100644
--- a/src/trial.rs
+++ b/src/trial.rs
@@ -31,7 +31,7 @@ fn do_trial() {
::std::process::exit(exitcode::IOERR);
},
},
- DurationError => return trial_expired(),
+ ErrorKind::Duration(_) => return trial_expired(),
e => {
eprintln!("{}", e);
::std::process::exit(exitcode::SOFTWARE);
@@ -45,8 +45,11 @@ fn do_trial() {
match days_remaining_from_now(date) {
Ok(remaining) => print_trial_days(remaining),
- DurationError => trial_expired(),
- Err(e) => (),
+ Err(e) => {
+ match e {
+ DurationError::NegativeDuration(_) => trial_expired(),
+ }
+ },
}
}