1use std::path::PathBuf;
2
3#[derive(Debug, thiserror::Error)]
5pub enum PrjError {
6 #[error("project not found: {0}")]
7 ProjectNotFound(String),
8
9 #[error("project already registered: {0}")]
10 ProjectAlreadyExists(String),
11
12 #[error("path does not exist: {}", .0.display())]
13 PathNotFound(PathBuf),
14
15 #[error("path is not a directory: {}", .0.display())]
16 NotADirectory(PathBuf),
17
18 #[error("failed to read database: {0}")]
19 DatabaseRead(#[source] Box<dyn std::error::Error + Send + Sync>),
20
21 #[error("failed to write database: {0}")]
22 DatabaseWrite(#[source] Box<dyn std::error::Error + Send + Sync>),
23
24 #[error("git error: {0}")]
25 Git(#[from] git2::Error),
26
27 #[error("io error: {0}")]
28 Io(#[from] std::io::Error),
29
30 #[error("git clone failed: {0}")]
31 CloneFailed(String),
32
33 #[error("could not determine clone destination from args: {0}")]
34 CloneDestUnknown(String),
35
36 #[error("no target projects specified (use --project, --tag, or --all)")]
37 NoTargetProjects,
38
39 #[error("manifest error: {0}")]
40 Manifest(String),
41}