rustkernel_treasury/
lib.rs1#![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
27pub fn register_all(
29 registry: &rustkernel_core::registry::KernelRegistry,
30) -> rustkernel_core::error::Result<()> {
31 use rustkernel_core::traits::GpuKernel;
32
33 tracing::info!("Registering treasury management kernels");
34
35 registry.register_metadata(cashflow::CashFlowForecasting::new().metadata().clone())?;
37
38 registry.register_metadata(collateral::CollateralOptimization::new().metadata().clone())?;
40
41 registry.register_metadata(fx::FXHedging::new().metadata().clone())?;
43
44 registry.register_metadata(interest_rate::InterestRateRisk::new().metadata().clone())?;
46
47 registry.register_metadata(liquidity::LiquidityOptimization::new().metadata().clone())?;
49
50 tracing::info!("Registered 5 treasury management kernels");
51 Ok(())
52}
53
54#[cfg(test)]
55mod tests {
56 use super::*;
57 use rustkernel_core::registry::KernelRegistry;
58
59 #[test]
60 fn test_register_all() {
61 let registry = KernelRegistry::new();
62 register_all(®istry).expect("Failed to register treasury kernels");
63 assert_eq!(registry.total_count(), 5);
64 }
65}