Skip to main content

bybit_rust_api/ws/public/
liquidation.rs

1//! Liquidation stream — real-time forced liquidation orders.
2//!
3//! # Topic
4//! `liquidation.{symbol}` — e.g. `liquidation.BTCUSDT`
5
6use serde::Deserialize;
7
8#[derive(Debug, Clone, Deserialize)]
9pub struct LiquidationData {
10    #[serde(rename = "symbol")]
11    #[serde(default)]
12    pub symbol: Option<String>,
13    #[serde(rename = "side")]
14    #[serde(default)]
15    pub side: Option<String>,
16    #[serde(rename = "price")]
17    #[serde(default)]
18    pub price: Option<String>,
19    #[serde(rename = "size")]
20    #[serde(default)]
21    pub size: Option<String>,
22    #[serde(rename = "updatedTime")]
23    #[serde(default)]
24    pub updated_time: Option<i64>,
25}
26
27pub struct LiquidationStream;
28
29impl LiquidationStream {
30    pub fn parse(data: &serde_json::Value) -> serde_json::Result<LiquidationData> {
31        serde_json::from_value(data.clone())
32    }
33    pub fn matches_topic(topic: &str) -> bool {
34        topic.starts_with("liquidation.")
35    }
36}