mockforge_reporting/
lib.rs

1//! MockForge Reporting
2//!
3//! Comprehensive reporting capabilities including PDF generation,
4//! email notifications, trend analysis, comparison reports, CSV export,
5//! flamegraph visualization, and custom dashboard layouts.
6
7pub 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>;