1use std::path::PathBuf;
4use thiserror::Error;
5
6pub type Result<T> = std::result::Result<T, Error>;
8
9#[derive(Error, Debug)]
11pub enum Error {
12 #[error("Project not found: {path}")]
13 ProjectNotFound { path: PathBuf },
14
15 #[error("No project root found (looked for .git, package.json, Cargo.toml, etc.)")]
16 NoProjectRoot,
17
18 #[error("Index not found for project: {path}")]
19 IndexNotFound { path: PathBuf },
20
21 #[error("Index error: {message}")]
22 IndexError { message: String },
23
24 #[error("Search error: {message}")]
25 SearchError { message: String },
26
27 #[error("Configuration error: {message}")]
28 ConfigError { message: String },
29
30 #[error("Daemon error: {message}")]
31 DaemonError { message: String },
32
33 #[error("Daemon not running")]
34 DaemonNotRunning,
35
36 #[error("Watch error: {message}")]
37 WatchError { message: String },
38
39 #[error("IO error: {0}")]
40 Io(#[from] std::io::Error),
41
42 #[error("Tantivy error: {0}")]
43 Tantivy(#[from] tantivy::TantivyError),
44
45 #[error("JSON error: {0}")]
46 Json(#[from] serde_json::Error),
47
48 #[error("TOML parse error: {0}")]
49 TomlParse(#[from] toml::de::Error),
50
51 #[error("Auth error: {0}")]
52 Auth(#[from] anyhow::Error),
53}