diff --git a/src/database.rs b/src/database.rs index 06e8e1b..8afcd8d 100644 --- a/src/database.rs +++ b/src/database.rs @@ -1,3 +1,15 @@ +use thiserror::Error; +use crate::{git::GitError, issues::ReadIssuesError}; + +/// Errors that the DB can emit: +#[derive(Debug, Error)] +pub enum Error { + #[error(transparent)] + IssuesError(#[from] ReadIssuesError), + #[error(transparent)] + GitError(#[from] GitError), +} + /// The main function looks at the command-line arguments and determines /// from there where to get the Issues Database to operate on. @@ -50,7 +62,7 @@ pub enum IssuesDatabaseAccess { pub fn make_issues_database( issues_database_source: &IssuesDatabaseSource, access_type: IssuesDatabaseAccess, -) -> anyhow::Result { +) -> Result { match issues_database_source { IssuesDatabaseSource::Dir(dir) => Ok(IssuesDatabase { dir: std::path::PathBuf::from(dir), @@ -73,7 +85,7 @@ pub fn make_issues_database( pub fn read_issues_database( issues_database_source: &IssuesDatabaseSource, -) -> anyhow::Result { +) -> Result { let issues_database = make_issues_database(issues_database_source, IssuesDatabaseAccess::ReadOnly)?; Ok(crate::issues::Issues::new_from_dir(