llm_cost_ops/export/
mod.rs

1// Export and reporting module
2
3pub mod formats;
4pub mod reports;
5pub mod config;
6pub mod delivery;
7pub mod scheduler;
8
9pub use formats::{ExportFormat, ExportData, Exporter, create_exporter};
10pub use reports::{
11    ReportType, ReportRequest, ReportResponse, ReportGenerator,
12    CostReport, UsageReport, ForecastReport, AuditReport,
13    ReportFilters, ReportSummary, DateRange,
14};
15pub use config::{
16    ExportConfig, EmailConfig, StorageConfig, ScheduledReportConfig,
17    DeliveryTarget, ReportFiltersConfig,
18};
19pub use delivery::{
20    DeliveryMethod, DeliveryRequest, DeliveryResponse, DeliveryStatus,
21    ReportDelivery, EmailDelivery, StorageDelivery, WebhookDelivery,
22    DeliveryCoordinator,
23};
24pub use scheduler::{
25    ReportScheduler, CronScheduler, ScheduledReportStatus, ScheduledExecutionResult,
26};
27
28/// Export error types
29#[derive(Debug, thiserror::Error)]
30pub enum ExportError {
31    #[error("Export format error: {0}")]
32    FormatError(String),
33
34    #[error("Report generation error: {0}")]
35    GenerationError(String),
36
37    #[error("Delivery error: {0}")]
38    DeliveryError(String),
39
40    #[error("IO error: {0}")]
41    IoError(#[from] std::io::Error),
42
43    #[error("Serialization error: {0}")]
44    SerializationError(#[from] serde_json::Error),
45
46    #[error("Template error: {0}")]
47    TemplateError(String),
48
49    #[error("Not found: {0}")]
50    NotFound(String),
51}
52
53pub type ExportResult<T> = Result<T, ExportError>;