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 use rustkernel_core::traits::GpuKernel;
43
44 tracing::info!("Registering order matching kernels");
45
46 registry.register_metadata(matching::OrderMatchingEngine::new().metadata().clone())?;
48
49 tracing::info!("Registered 1 order matching kernel");
50 Ok(())
51}
52
53#[cfg(test)]
54mod tests {
55 use super::*;
56 use rustkernel_core::registry::KernelRegistry;
57
58 #[test]
59 fn test_register_all() {
60 let registry = KernelRegistry::new();
61 register_all(®istry).expect("Failed to register orderbook kernels");
62 assert_eq!(registry.total_count(), 1);
63 }
64}