1use std::path::PathBuf;
2
3use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum DeployError {
7 #[error("deployment manifest not found at {path}")]
8 ManifestNotFound { path: PathBuf },
9
10 #[error("invalid deployment manifest: {message}")]
11 InvalidManifest { message: String },
12
13 #[error("failed to parse deployment manifest: {message}")]
14 ManifestParse { message: String },
15
16 #[error(
17 "bundle build failed: {message}. Try running `cargo build --release` directly for more details."
18 )]
19 BundleBuild { message: String },
20
21 #[error("control-plane request failed: {message}")]
22 Client { message: String },
23
24 #[error("failed to persist deploy config: {message}")]
25 Config { message: String },
26
27 #[error("io error: {0}")]
28 Io(#[from] std::io::Error),
29
30 #[error("http error: {0}")]
31 Http(#[from] reqwest::Error),
32}
33
34pub type DeployResult<T> = Result<T, DeployError>;