use thiserror::Error;
#[derive(Debug, Error)]
pub enum AttackError {
#[error("I/O error: {0}")]
IoError(#[from] std::io::Error),
#[error("serialization error: {0}")]
SerializationError(#[from] serde_json::Error),
#[error("network error: {0}")]
NetworkError(#[from] reqwest::Error),
#[error("invalid ATT&CK ID: {0}")]
InvalidId(String),
#[error("missing required field: {0}")]
MissingField(&'static str),
#[error("object not found: {0}")]
NotFound(String),
#[error("validation error: {0}")]
ValidationError(String),
}
pub type Result<T> = std::result::Result<T, AttackError>;