use thiserror::Error;
#[derive(Debug, Error)]
pub enum DevopsError {
#[error("YAML parse error: {0}")]
YamlParse(String),
#[error("JSON parse error: {0}")]
JsonParse(String),
#[error("Validation error: {0}")]
Validation(String),
#[error("LLM client error: {0}")]
LlmClient(String),
#[error("IO error: {0}")]
Io(String),
}
pub type Result<T> = core::result::Result<T, DevopsError>;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn error_display() {
let e = DevopsError::YamlParse("unexpected token".to_string());
assert_eq!(e.to_string(), "YAML parse error: unexpected token");
}
#[test]
fn result_alias() {
let ok: Result<u32> = Ok(42);
assert!(matches!(ok, Ok(42)));
let err: Result<u32> = Err(DevopsError::Validation("bad".to_string()));
assert!(err.is_err());
}
}