pub mod db;
pub mod entities;
mod native_cost;
mod native_settlement;
pub mod pricing;
pub mod reader;
pub mod reconciliation;
pub mod recorder;
pub mod store;
pub mod tariff;
#[cfg(test)]
mod tests;
#[cfg(test)]
mod decisions_tests;
pub use db::{ReconciliationStatus, RequestMetric};
pub use pricing::{
ChargeEvidence, ChargeStatus, ContextTier, EffectivePricingRates, ModelPricing, PricingSource,
PricingTable, calculate_charge_evidence, calculate_charge_micro_usd,
};
pub use reconciliation::{ReconciliationSummary, reconcile_requests};
pub use recorder::{MeteringRecorder, MeteringSettlementEvent};
pub use store::{
MeteringStore, MeteringUsageRecord, RateMetrics, ReconciliationRecord, TimeWindow, TokenUsage,
UsagePriceOverride,
};
pub fn fmt_usd(micro_usd: u64) -> String {
let usd = micro_usd as f64 / 1_000_000.0;
if micro_usd == 0 || usd >= 0.01 {
format!("${usd:.2}")
} else {
format!("${usd:.4}")
}
}
#[cfg(test)]
mod fmt_tests {
use super::fmt_usd;
#[test]
fn fmt_usd_picks_precision() {
assert_eq!(fmt_usd(0), "$0.00");
assert_eq!(fmt_usd(420_000), "$0.42");
assert_eq!(fmt_usd(3_100_000), "$3.10");
assert_eq!(fmt_usd(3_200), "$0.0032");
}
}