rustkernel_orderbook/
lib.rs1#![warn(missing_docs)]
16
17pub mod matching;
18pub mod messages;
19pub mod ring_messages;
20pub mod types;
21
22pub mod prelude {
24 pub use crate::matching::*;
25 pub use crate::messages::*;
26 pub use crate::types::*;
27}
28
29pub use matching::OrderMatchingEngine;
31
32pub use types::{
34 EngineConfig, L2Snapshot, MatchResult, Order, OrderBook, OrderStatus, OrderType, Price,
35 PriceLevel, Quantity, Side, TimeInForce, Trade,
36};
37
38pub fn register_all(
40 registry: &rustkernel_core::registry::KernelRegistry,
41) -> rustkernel_core::error::Result<()> {
42 tracing::info!("Registering order matching kernels");
43
44 registry.register_ring_metadata_from(matching::OrderMatchingEngine::new)?;
46
47 tracing::info!("Registered 1 order matching kernel");
48 Ok(())
49}
50
51#[cfg(test)]
52mod tests {
53 use super::*;
54 use rustkernel_core::registry::KernelRegistry;
55
56 #[test]
57 fn test_register_all() {
58 let registry = KernelRegistry::new();
59 register_all(®istry).expect("Failed to register orderbook kernels");
60 assert_eq!(registry.total_count(), 1);
61 }
62}