diff --git a/src/error.rs b/src/error.rs index 5adccacd5..7109983d9 100644 --- a/src/error.rs +++ b/src/error.rs @@ -2,6 +2,7 @@ use std::fmt; use crate::net::error::NetError; use crate::vm::ZKVMError; +use rusqlite; use async_zmq::zmq; @@ -36,6 +37,7 @@ pub enum Error { BadContract, Groth16Error(bellman::SynthesisError), ZMQError(zmq::Error), + RusqliteError(rusqlite::Error), OperationFailed, ConnectFailed, ConnectTimeout, @@ -80,6 +82,7 @@ impl fmt::Display for Error { Error::BadContract => f.write_str("Contract is poorly defined"), Error::Groth16Error(ref err) => write!(f, "groth16 error: {}", err), Error::ZMQError(ref err) => write!(f, "ZMQ error: {}", err), + Error::RusqliteError(ref err) => write!(f, "Rusqlite error: {}", err), Error::OperationFailed => f.write_str("Operation failed"), Error::ConnectFailed => f.write_str("Connection failed"), Error::ConnectTimeout => f.write_str("Connection timed out"), @@ -104,6 +107,12 @@ impl From for Error { } } +impl From for Error { + fn from(err: rusqlite::Error) -> Error { + Error::RusqliteError(err) + } +} + impl From for Error { fn from(err: ZKVMError) -> Error { Error::VMError(err)