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#[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
55pub type Result<T> = ::std::result::Result<T, Error>;