aboutsummaryrefslogtreecommitdiffstats
path: root/src/error.rs
diff options
context:
space:
mode:
authorJokler <jokler.contact@gmail.com>2018-03-12 16:02:51 +0100
committerJokler <jokler.contact@gmail.com>2018-03-12 16:02:51 +0100
commit909cabe9280722e43c5fb283f768051bb85e1890 (patch)
tree506ac34b7e22cdb95568cef9e649ee64cb3b0fdb /src/error.rs
parent15e855ddecfdac31ddda26b12fcfd1a142a0ec21 (diff)
parent8e40e919aca8b8592be43e2c5bbcc0717bf14a6b (diff)
downloadfrippy-909cabe9280722e43c5fb283f768051bb85e1890.tar.gz
frippy-909cabe9280722e43c5fb283f768051bb85e1890.zip
Merge branch 'dev'
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs
new file mode 100644
index 0000000..36d5724
--- /dev/null
+++ b/src/error.rs
@@ -0,0 +1,31 @@
+//! Errors for `frippy` crate using `failure`.
+
+use failure::Fail;
+
+pub fn log_error(e: FrippyError) {
+ let text = e.causes()
+ .skip(1)
+ .fold(format!("{}", e), |acc, err| format!("{}: {}", acc, err));
+ error!("{}", text);
+}
+
+/// The main crate-wide error type.
+#[derive(Copy, Clone, Eq, PartialEq, Debug, Fail, Error)]
+#[error = "FrippyError"]
+pub enum ErrorKind {
+ /// Connection error
+ #[fail(display = "A connection error occured")]
+ Connection,
+
+ /// A Url error
+ #[fail(display = "A Url error has occured")]
+ Url,
+
+ /// A Tell error
+ #[fail(display = "A Tell error has occured")]
+ Tell,
+
+ /// A Factoids error
+ #[fail(display = "A Factoids error has occured")]
+ Factoids,
+}