Skip to main content

deribit_websocket/
subscriptions.rs

1//! WebSocket subscription management
2
3use std::fmt;
4
5/// Subscription channels (legacy enum - use `model::SubscriptionChannel` for full support)
6#[derive(Debug, Clone)]
7#[deprecated(
8    since = "0.2.0",
9    note = "Use model::SubscriptionChannel instead which supports all channel types"
10)]
11pub enum SubscriptionChannel {
12    /// Ticker data for a specific instrument
13    Ticker(String),
14    /// Order book data for a specific instrument
15    OrderBook(String),
16    /// Trade data for a specific instrument
17    Trades(String),
18    /// User's order updates
19    UserOrders,
20    /// User's trade updates
21    UserTrades,
22    /// Unknown or unrecognized channel
23    Unknown(String),
24}
25
26#[allow(deprecated)]
27impl fmt::Display for SubscriptionChannel {
28    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
29        let channel_str = match self {
30            Self::Ticker(instrument) => format!("ticker.{instrument}.raw"),
31            Self::OrderBook(instrument) => format!("book.{instrument}.raw"),
32            Self::Trades(instrument) => format!("trades.{instrument}.raw"),
33            Self::UserOrders => "user.orders.any.any.raw".to_string(),
34            Self::UserTrades => "user.trades.any.any.raw".to_string(),
35            Self::Unknown(channel) => channel.clone(),
36        };
37        write!(f, "{channel_str}")
38    }
39}