llm_cost_ops/export/
mod.rs1pub 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#[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>;