Skip to main content

rustkernel_treasury/
lib.rs

1//! # RustKernel Treasury Management
2//!
3//! GPU-accelerated treasury management kernels.
4//!
5//! ## Kernels
6//! - `CashFlowForecasting` - Multi-horizon cash flow projection
7//! - `CollateralOptimization` - LP/QP optimization
8//! - `FXHedging` - Currency exposure management
9//! - `InterestRateRisk` - Duration/convexity analysis
10//! - `LiquidityOptimization` - LCR/NSFR optimization
11
12#![warn(missing_docs)]
13
14pub mod cashflow;
15pub mod collateral;
16pub mod fx;
17pub mod interest_rate;
18pub mod liquidity;
19pub mod types;
20
21pub use cashflow::CashFlowForecasting;
22pub use collateral::CollateralOptimization;
23pub use fx::FXHedging;
24pub use interest_rate::InterestRateRisk;
25pub use liquidity::LiquidityOptimization;
26
27/// Register all treasury kernels.
28pub fn register_all(
29    registry: &rustkernel_core::registry::KernelRegistry,
30) -> rustkernel_core::error::Result<()> {
31    tracing::info!("Registering treasury management kernels");
32
33    // Cash flow kernel (1) — Batch
34    registry.register_ring_metadata_from(cashflow::CashFlowForecasting::new)?;
35
36    // Collateral kernel (1) — Batch
37    registry.register_ring_metadata_from(collateral::CollateralOptimization::new)?;
38
39    // FX kernel (1) — Batch
40    registry.register_ring_metadata_from(fx::FXHedging::new)?;
41
42    // Interest rate kernel (1) — Batch
43    registry.register_ring_metadata_from(interest_rate::InterestRateRisk::new)?;
44
45    // Liquidity kernel (1) — Batch
46    registry.register_ring_metadata_from(liquidity::LiquidityOptimization::new)?;
47
48    tracing::info!("Registered 5 treasury management kernels");
49    Ok(())
50}
51
52#[cfg(test)]
53mod tests {
54    use super::*;
55    use rustkernel_core::registry::KernelRegistry;
56
57    #[test]
58    fn test_register_all() {
59        let registry = KernelRegistry::new();
60        register_all(&registry).expect("Failed to register treasury kernels");
61        assert_eq!(registry.total_count(), 5);
62    }
63}