aboutsummaryrefslogtreecommitdiff
path: root/lockchain-core/src/errors/crypto.rs
diff options
context:
space:
mode:
Diffstat (limited to 'lockchain-core/src/errors/crypto.rs')
-rw-r--r--lockchain-core/src/errors/crypto.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/lockchain-core/src/errors/crypto.rs b/lockchain-core/src/errors/crypto.rs
new file mode 100644
index 0000000..a0c12a2
--- /dev/null
+++ b/lockchain-core/src/errors/crypto.rs
@@ -0,0 +1,28 @@
+//! I sell crypto and crypto accessories (errors)
+
+use std::error::Error as StdError;
+use std::fmt::{Display, Formatter, Result};
+
+#[derive(Debug, Serialize, Deserialize)]
+pub enum Error {
+ /// Provided crypto layer is lacking features or missing
+ InvalidCryptoLayer,
+ /// Failed to initialise cryptography module
+ FailedCrypto,
+ /// Invalid key or user identity
+ FailedKey,
+}
+
+impl StdError for Error {}
+
+impl Display for Error {
+ fn fmt(&self, f: &mut Formatter) -> Result {
+ write!(
+ f,
+ "{}",
+ match self {
+ _ => "Unknown failure",
+ }
+ )
+ }
+}