use thiserror::Error;
#[derive(Error, Debug)]
pub enum IdlError {
#[error("IDL parsing error at line {line}, column {column}: {message}")]
ParseError {
line: usize,
column: usize,
message: String,
},
#[error("IDL IO error: {0}")]
IoError(#[from] std::io::Error),
#[error("IDL validation error: {message}")]
ValidationError {
message: String,
},
#[error("IDL type resolution error: {message}")]
TypeResolutionError {
message: String,
},
#[error("IDL annotation error: {message}")]
AnnotationError {
message: String,
},
}
pub type IdlResult<T> = Result<T, IdlError>;