1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum ComposeError {
5 #[error("Docker Compose file not found at {0}")]
6 FileNotFound(String),
7 #[error("IO error: {0}")]
8 IoError(#[from] std::io::Error),
9 #[error("Command failed: {} - {}", .0.status, String::from_utf8_lossy(&.0.stderr))]
10 CommandFailed(std::process::Output),
11 #[error("Invalid Arguments: {0}")]
12 InvalidArguments(String),
13 #[error("Failed to Deserialize JSON: {0}")]
14 JsonError(#[from] serde_json::Error),
15 #[error("Failed to Parse docker output: {0}")]
16 ParseError(String),
17}
18
19#[derive(Error, Debug)]
20pub enum ComposeBuilderError {
21 #[error("Docker Compose file not found at {0}")]
22 FileNotFound(String),
23 #[error("Missing field: {0}")]
24 MissingField(String),
25 #[error("IO error: {0}")]
26 IoError(#[from] std::io::Error),
27}