1use 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>;