llm_incident_manager/analytics/
error.rs1use crate::error::AppError;
4
5pub type AnalyticsResult<T> = std::result::Result<T, AnalyticsError>;
7
8#[derive(Debug, thiserror::Error)]
10pub enum AnalyticsError {
11 #[error("Invalid date range: {0}")]
13 InvalidDateRange(String),
14
15 #[error("Insufficient data for analysis: {0}")]
17 InsufficientData(String),
18
19 #[error("Report generation failed: {0}")]
21 ReportGenerationFailed(String),
22
23 #[error("Export failed: {0}")]
25 ExportFailed(String),
26
27 #[error("Unsupported format: {0}")]
29 UnsupportedFormat(String),
30
31 #[error("Calculation error: {0}")]
33 CalculationError(String),
34
35 #[error("Database error: {0}")]
37 DatabaseError(String),
38
39 #[error("Invalid configuration: {0}")]
41 InvalidConfiguration(String),
42}
43
44impl From<AnalyticsError> for AppError {
45 fn from(err: AnalyticsError) -> Self {
46 match err {
47 AnalyticsError::InvalidDateRange(msg)
48 | AnalyticsError::InvalidConfiguration(msg) => AppError::Configuration(msg),
49 AnalyticsError::DatabaseError(msg) => AppError::Database(msg),
50 _ => AppError::Internal(err.to_string()),
51 }
52 }
53}