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 tracing::info!("Registering treasury management kernels");
32
33 registry.register_ring_metadata_from(cashflow::CashFlowForecasting::new)?;
35
36 registry.register_ring_metadata_from(collateral::CollateralOptimization::new)?;
38
39 registry.register_ring_metadata_from(fx::FXHedging::new)?;
41
42 registry.register_ring_metadata_from(interest_rate::InterestRateRisk::new)?;
44
45 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(®istry).expect("Failed to register treasury kernels");
61 assert_eq!(registry.total_count(), 5);
62 }
63}