ecbt_coinbase/model/websocket/
coinbase_subscription.rs

1use ecbt_exchange::model::websocket::Subscription;
2
3/// This enum represents a coinbase subscription
4#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5pub enum CoinbaseSubscription {
6    Heartbeat(String),
7    // Status,
8    // Ticker(String),
9    Level2(String),
10    // User,
11    Matches(String),
12    // FullChannel
13}
14
15impl From<Subscription> for CoinbaseSubscription {
16    fn from(subscription: Subscription) -> Self {
17        match subscription {
18            Subscription::OrderBookUpdates(symbol) => {
19                CoinbaseSubscription::Level2(crate::model::MarketPair::from(symbol).0)
20            }
21            Subscription::Trades(symbol) => {
22                CoinbaseSubscription::Matches(crate::model::MarketPair::from(symbol).0)
23            } // Subscription::Ticker(ticket) =>
24        }
25    }
26}