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}