1use crate::{commit, diff, fs, glob, namespace, refs, repo};
22use thiserror::Error;
23
24#[derive(Debug, Error)]
26#[non_exhaustive]
27pub enum Error {
28 #[error(transparent)]
29 Branches(#[from] refs::error::Branch),
30 #[error(transparent)]
31 Categories(#[from] refs::error::Category),
32 #[error(transparent)]
33 Commit(#[from] commit::Error),
34 #[error(transparent)]
35 Diff(#[from] diff::git::error::Diff),
36 #[error(transparent)]
37 Directory(#[from] fs::error::Directory),
38 #[error(transparent)]
39 File(#[from] fs::error::File),
40 #[error(transparent)]
41 Git(#[from] git2::Error),
42 #[error(transparent)]
43 Glob(#[from] glob::Error),
44 #[error(transparent)]
45 Namespace(#[from] namespace::Error),
46 #[error(transparent)]
47 RefFormat(#[from] git_ext::ref_format::Error),
48 #[error(transparent)]
49 Revision(Box<dyn std::error::Error + Send + Sync + 'static>),
50 #[error(transparent)]
51 ToCommit(Box<dyn std::error::Error + Send + Sync + 'static>),
52 #[error(transparent)]
53 Tags(#[from] refs::error::Tag),
54 #[error(transparent)]
55 Repo(#[from] repo::error::Repo),
56}