aboutsummaryrefslogtreecommitdiff
path: root/nitrocli/src/error.rs
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2018-12-18 00:39:24 +0100
committerDaniel Mueller <deso@posteo.net>2018-12-23 12:04:57 -0800
commit048c97adcedab552e8c5b33567a06de4cb5c0f81 (patch)
tree8271dde240632509260c074dd3ae9554b3dda442 /nitrocli/src/error.rs
parent32126d545532971302c0a8d512b5a8ec8226ed33 (diff)
downloadnitrocli-048c97adcedab552e8c5b33567a06de4cb5c0f81.tar.gz
nitrocli-048c97adcedab552e8c5b33567a06de4cb5c0f81.tar.bz2
Port argument handling to argparse
This patch replaces the macro for argument parsing with `argparse::ArgumentParser` from the argparse crate. It moves the application logic to the `commands` module and the argument parsing to the `options` module. An enum is used to represent the available commands. The code is based on the `subcommands.rs` example shipped with argparse.
Diffstat (limited to 'nitrocli/src/error.rs')
-rw-r--r--nitrocli/src/error.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/nitrocli/src/error.rs b/nitrocli/src/error.rs
index d755cac..d86a635 100644
--- a/nitrocli/src/error.rs
+++ b/nitrocli/src/error.rs
@@ -23,6 +23,7 @@ use std::string;
#[derive(Debug)]
pub enum Error {
+ ArgparseError(i32),
IoError(io::Error),
Utf8Error(string::FromUtf8Error),
Error(String),
@@ -43,6 +44,7 @@ impl From<string::FromUtf8Error> for Error {
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match *self {
+ Error::ArgparseError(_) => write!(f, "Could not parse arguments"),
Error::Utf8Error(_) => write!(f, "Encountered UTF-8 conversion error"),
Error::IoError(ref e) => write!(f, "IO error: {}", e.get_ref().unwrap()),
Error::Error(ref e) => write!(f, "{}", e),