mockforge_reporting/
lib.rs1pub mod comparison;
8pub mod csv_export;
9pub mod dashboard_layouts;
10pub mod email;
11pub mod flamegraph;
12pub mod pdf;
13pub mod trend_analysis;
14
15pub use comparison::{ComparisonReport, ComparisonReportGenerator};
16pub use csv_export::{CsvBatchExporter, CsvExportConfig, CsvExporter};
17pub use dashboard_layouts::{
18 DashboardLayout, DashboardLayoutBuilder, DashboardLayoutManager, DashboardTemplates,
19 DataSource, GridConfig, Widget, WidgetType,
20};
21pub use email::{EmailConfig, EmailNotifier, EmailReport};
22pub use flamegraph::{FlamegraphGenerator, FlamegraphStats, TraceData, TraceSpan};
23pub use pdf::{PdfConfig, PdfReportGenerator};
24pub use trend_analysis::{TrendAnalyzer, TrendDirection, TrendReport};
25
26use thiserror::Error;
27
28#[derive(Error, Debug)]
29pub enum ReportingError {
30 #[error("PDF generation error: {0}")]
31 Pdf(String),
32
33 #[error("Email sending error: {0}")]
34 Email(String),
35
36 #[error("Analysis error: {0}")]
37 Analysis(String),
38
39 #[error("IO error: {0}")]
40 Io(#[from] std::io::Error),
41
42 #[error("Serialization error: {0}")]
43 Serialization(#[from] serde_json::Error),
44}
45
46pub type Result<T> = std::result::Result<T, ReportingError>;