greppy/core/
error.rs

1//! Error types for Greppy
2
3use std::path::PathBuf;
4use thiserror::Error;
5
6/// Result type alias using Greppy's Error
7pub type Result<T> = std::result::Result<T, Error>;
8
9/// Greppy error types
10#[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}