architect_sdk/marketdata/
mod.rs

1use architect_api::symbology::MarketdataVenue;
2use std::collections::BTreeMap;
3
4#[cfg(feature = "grpc")]
5pub mod l2_client;
6pub mod level_book;
7#[cfg(feature = "grpc")]
8pub mod managed_l1_streams;
9pub mod synthetic_candles;
10
11pub use level_book::{LevelBook, LevelLike};
12
13#[derive(Debug)]
14pub enum MarketdataSource<T> {
15    Gateway(T),
16    PerVenue(BTreeMap<MarketdataVenue, T>),
17}
18
19impl<T> MarketdataSource<T> {
20    pub fn get(&self, venue: &MarketdataVenue) -> Option<&T> {
21        match self {
22            MarketdataSource::Gateway(t) => Some(t),
23            MarketdataSource::PerVenue(map) => map.get(venue),
24        }
25    }
26}