llm_incident_manager/search/
error.rs1use crate::error::AppError;
4
5pub type SearchResult<T> = std::result::Result<T, SearchError>;
7
8#[derive(Debug, thiserror::Error)]
10pub enum SearchError {
11 #[error("Index initialization failed: {0}")]
13 IndexInitFailed(String),
14
15 #[error("Index not found: {0}")]
17 IndexNotFound(String),
18
19 #[error("Query parsing failed: {0}")]
21 QueryParsingFailed(String),
22
23 #[error("Search execution failed: {0}")]
25 SearchFailed(String),
26
27 #[error("Document indexing failed: {0}")]
29 IndexingFailed(String),
30
31 #[error("Document deletion failed: {0}")]
33 DeletionFailed(String),
34
35 #[error("Schema error: {0}")]
37 SchemaError(String),
38
39 #[error("IO error: {0}")]
41 IoError(#[from] std::io::Error),
42
43 #[error("Invalid configuration: {0}")]
45 InvalidConfiguration(String),
46
47 #[error("Index corruption detected: {0}")]
49 IndexCorruption(String),
50
51 #[error("Tantivy error: {0}")]
53 TantivyError(String),
54}
55
56impl From<tantivy::TantivyError> for SearchError {
57 fn from(err: tantivy::TantivyError) -> Self {
58 SearchError::TantivyError(err.to_string())
59 }
60}
61
62impl From<tantivy::query::QueryParserError> for SearchError {
63 fn from(err: tantivy::query::QueryParserError) -> Self {
64 SearchError::QueryParsingFailed(err.to_string())
65 }
66}
67
68impl From<SearchError> for AppError {
69 fn from(err: SearchError) -> Self {
70 match err {
71 SearchError::InvalidConfiguration(msg) => AppError::Configuration(msg),
72 SearchError::IoError(err) => AppError::Internal(err.to_string()),
73 _ => AppError::Internal(err.to_string()),
74 }
75 }
76}