Skip to main content

crate_seq_git/
error.rs

1//! Error types for git tag discovery operations.
2
3/// Errors that can occur during git repository operations.
4#[derive(Debug, thiserror::Error)]
5pub enum Error {
6    /// Failed to open a git repository at the given path.
7    #[error("failed to open repository at {path}: {source}")]
8    OpenRepo {
9        /// The path where the open was attempted.
10        path: std::path::PathBuf,
11        /// The underlying gix error.
12        #[source]
13        source: Box<gix::discover::Error>,
14    },
15
16    /// Failed to initialise the reference iterator.
17    #[error("git reference error: {0}")]
18    References(#[from] gix::reference::iter::Error),
19
20    /// Failed to create the reference iterator platform.
21    #[error("git reference init error: {0}")]
22    ReferencesInit(#[from] gix::reference::iter::init::Error),
23
24    /// Failed to peel a reference to its target object.
25    #[error("git peel error: {0}")]
26    Peel(String),
27
28    /// Failed to read a tag object from the repository.
29    #[error("git tag object error: {0}")]
30    TagObject(String),
31
32    /// The requested tag ref does not exist in the repository.
33    #[error("tag not found: {0}")]
34    TagNotFound(String),
35
36    /// Failed to resolve or decode a git object.
37    #[error("git object error: {0}")]
38    Object(String),
39
40    /// Failed to traverse the tree entries.
41    #[error("tree traversal error: {0}")]
42    TreeTraversal(String),
43
44    /// Failed to create a temporary directory.
45    #[error("temporary directory error: {0}")]
46    TempDir(#[from] std::io::Error),
47
48    /// Git tag creation or deletion command failed.
49    #[error("git tag creation failed: {0}")]
50    TagCreate(String),
51}