sequoia_git/
lib.rs

1use git2::Oid;
2
3use sequoia_openpgp::{
4    self as openpgp,
5};
6
7#[macro_use]
8mod macros;
9
10mod policy;
11pub use policy::*;
12
13mod verify;
14pub use verify::*;
15
16mod git;
17pub use git::*;
18
19pub mod persistent_set;
20pub(crate) mod utils;
21
22/// Errors for this crate.
23#[derive(thiserror::Error, Debug)]
24pub enum Error {
25    #[error("Invalid operation: {0}")]
26    InvalidOperation(String),
27    #[error("Storage error: {0}")]
28    StorageError(String),
29    #[error("Commit {0} is not signed")]
30    MissingSignature(Oid),
31    #[error("{0} is not signed")]
32    MissingDataSignature(String),
33    #[error("Commit {0} has no policy")]
34    MissingPolicy(Oid),
35    #[error("The given range contains no commits")]
36    EmptyCommitRange,
37    #[error("There is no path from {0} to {1}")]
38    NoPathConnecting(Oid, Oid),
39    #[error("Key `{0}` missing")]
40    MissingKey(openpgp::KeyHandle),
41    #[error("Key `{0}` is bad: {1}")]
42    BadKey(openpgp::KeyHandle, String),
43    #[error("Bad signature: {0}")]
44    BadSignature(String),
45    #[error("Unauthorized: {0}")]
46    Unauthorized(String),
47    #[error("Io error")]
48    Io(#[from] std::io::Error),
49    #[error("Libgit2 error")]
50    Git2(#[from] git2::Error),
51    #[error("Other error: {0}")]
52    Other(#[from] anyhow::Error),
53}
54
55/// Crate result specialization.
56pub type Result<T> = ::std::result::Result<T, Error>;