add better error handling
This commit is contained in:
parent
d2df1bc1e8
commit
61df7ede8f
1 changed files with 14 additions and 2 deletions
|
|
@ -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
|
/// The main function looks at the command-line arguments and determines
|
||||||
/// from there where to get the Issues Database to operate on.
|
/// from there where to get the Issues Database to operate on.
|
||||||
|
|
@ -50,7 +62,7 @@ pub enum IssuesDatabaseAccess {
|
||||||
pub fn make_issues_database(
|
pub fn make_issues_database(
|
||||||
issues_database_source: &IssuesDatabaseSource,
|
issues_database_source: &IssuesDatabaseSource,
|
||||||
access_type: IssuesDatabaseAccess,
|
access_type: IssuesDatabaseAccess,
|
||||||
) -> anyhow::Result<IssuesDatabase> {
|
) -> Result<IssuesDatabase, Error> {
|
||||||
match issues_database_source {
|
match issues_database_source {
|
||||||
IssuesDatabaseSource::Dir(dir) => Ok(IssuesDatabase {
|
IssuesDatabaseSource::Dir(dir) => Ok(IssuesDatabase {
|
||||||
dir: std::path::PathBuf::from(dir),
|
dir: std::path::PathBuf::from(dir),
|
||||||
|
|
@ -73,7 +85,7 @@ pub fn make_issues_database(
|
||||||
|
|
||||||
pub fn read_issues_database(
|
pub fn read_issues_database(
|
||||||
issues_database_source: &IssuesDatabaseSource,
|
issues_database_source: &IssuesDatabaseSource,
|
||||||
) -> anyhow::Result<crate::issues::Issues> {
|
) -> Result<crate::issues::Issues, Error> {
|
||||||
let issues_database =
|
let issues_database =
|
||||||
make_issues_database(issues_database_source, IssuesDatabaseAccess::ReadOnly)?;
|
make_issues_database(issues_database_source, IssuesDatabaseAccess::ReadOnly)?;
|
||||||
Ok(crate::issues::Issues::new_from_dir(
|
Ok(crate::issues::Issues::new_from_dir(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue