#![allow(dead_code)]
#![allow(unused_imports)]
mod a0_limit_order_book;
use a0_limit_order_book::{print_best_ask_loop, run_limit_order_book_full, BrokerConfig};
use anyhow::{Context, Result};
use std::sync::Arc;
#[tokio::main]
async fn main() -> Result<()> {
let config = BrokerConfig {
broker_name: "dummy".to_string(),
health_port: 8024,
};
let order_books = run_limit_order_book_full(config)
.await
.context("Limit order book system failed")?;
let logger = order_books.logger().clone();
let symbols_to_monitor = vec!["NSE_INR_BANKNIFTY_INDEX"];
for symbol in symbols_to_monitor {
let store_clone = Arc::clone(&order_books);
let logger_clone = logger.clone();
tokio::spawn(async move {
print_best_ask_loop(store_clone, logger_clone, symbol).await;
});
}
tokio::signal::ctrl_c().await?;
println!("\nReceived shutdown signal, exiting...");
Ok(())
}