agcodex_ast/
error.rs

1//! Error types for AST operations
2
3use thiserror::Error;
4
5#[derive(Error, Debug)]
6pub enum AstError {
7    #[error("Language not supported: {0}")]
8    UnsupportedLanguage(String),
9
10    #[error("Failed to detect language for file: {0}")]
11    LanguageDetectionFailed(String),
12
13    #[error("Parser error: {0}")]
14    ParserError(String),
15
16    #[error("IO error: {0}")]
17    IoError(String),
18
19    #[error("Cache error: {0}")]
20    CacheError(String),
21
22    #[error("Compression error: {0}")]
23    CompressionError(String),
24
25    #[error("Index error: {0}")]
26    IndexError(String),
27
28    #[error("Invalid AST node: {0}")]
29    InvalidNode(String),
30
31    #[error("Timeout parsing file: {0}")]
32    ParseTimeout(String),
33
34    #[error("File too large: {size} bytes exceeds maximum {max} bytes")]
35    FileTooLarge { size: usize, max: usize },
36}
37
38pub type AstResult<T> = Result<T, AstError>;