agentic_codebase/types/
error.rs1use std::path::PathBuf;
6use thiserror::Error;
7
8#[derive(Error, Debug)]
10pub enum AcbError {
11 #[error("Invalid magic bytes in file header")]
13 InvalidMagic,
14
15 #[error("Unsupported format version: {0}")]
17 UnsupportedVersion(u32),
18
19 #[error("Code unit ID {0} not found")]
21 UnitNotFound(u64),
22
23 #[error("Edge references invalid code unit: {0}")]
25 InvalidEdgeTarget(u64),
26
27 #[error("Self-edge not allowed on unit {0}")]
29 SelfEdge(u64),
30
31 #[error("Symbol name too long: {len} > {max}")]
33 NameTooLong {
34 len: usize,
36 max: usize,
38 },
39
40 #[error("Path too long: {len} > {max}")]
42 PathTooLong {
43 len: usize,
45 max: usize,
47 },
48
49 #[error("Feature vector dimension mismatch: expected {expected}, got {got}")]
51 DimensionMismatch {
52 expected: usize,
54 got: usize,
56 },
57
58 #[error("Maximum edges per unit exceeded: {0}")]
60 TooManyEdges(u32),
61
62 #[error("Path not found: {0}")]
64 PathNotFound(PathBuf),
65
66 #[error("Unsupported language: {0}")]
68 UnsupportedLanguage(String),
69
70 #[error("Parse error in {path}: {message}")]
72 ParseError {
73 path: PathBuf,
75 message: String,
77 },
78
79 #[error("Semantic error: {0}")]
81 SemanticError(String),
82
83 #[error("Git error: {0}")]
85 GitError(String),
86
87 #[error("IO error: {0}")]
89 Io(#[from] std::io::Error),
90
91 #[error("Compression error: {0}")]
93 Compression(String),
94
95 #[error("File is empty or truncated")]
97 Truncated,
98
99 #[error("Corrupt data at offset {0}")]
101 Corrupt(u64),
102
103 #[error("Query error: {0}")]
105 QueryError(String),
106
107 #[error("Collective sync error: {0}")]
109 CollectiveError(String),
110
111 #[error("Duplicate edge from {0} to {1}")]
113 DuplicateEdge(u64, u64),
114}
115
116pub type AcbResult<T> = Result<T, AcbError>;