use std::error::Error as StdError;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum NetflowError {
#[error("Failed to parse YAML: {0}")]
YamlParse(#[from] serde_yaml::Error),
#[error("File I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("Network error: {0}")]
Network(String),
#[error("Validation error: {0}")]
Validation(String),
#[error("Packet generation error: {0}")]
Generation(String),
#[error("Invalid destination address: {0}")]
InvalidDestination(String),
#[error("NetFlow parser error: {0}")]
ParserError(#[from] Box<dyn StdError>),
}
pub type Result<T> = std::result::Result<T, NetflowError>;