diff --git a/01.workspace/heave/src/str/sqlite_failed_to.rs b/01.workspace/heave/src/str/sqlite_failed_to.rs index 3bb2847..6bdc019 100644 --- a/01.workspace/heave/src/str/sqlite_failed_to.rs +++ b/01.workspace/heave/src/str/sqlite_failed_to.rs @@ -19,7 +19,20 @@ pub enum FailedTo { PrepareStatement(rusqlite::Error), } -impl std::error::Error for FailedTo {} +impl std::error::Error for FailedTo { + fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { + match self { + FailedTo::BeginTransaction(e) => Some(e), + FailedTo::BuildStatement => None, + FailedTo::CommitTransaction(e) => Some(e), + FailedTo::ExecuteBatch(e) => Some(e), + FailedTo::ExecuteQuery(e) => Some(e), + FailedTo::ExecuteStatement(e) => Some(e), + FailedTo::OpenConnection(e) => Some(e), + FailedTo::PrepareStatement(e) => Some(e), + } + } +} impl std::fmt::Display for FailedTo { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::result::Result<(), std::fmt::Error> {