rusty_feeder/exchange/bybit/
types.rs1use crate::provider::prelude::*;
2
3pub const BYBIT_RATE_LIMITS: &[RateLimit] = &[
5 RateLimit {
6 limit_type: "REQUEST_WEIGHT",
7 interval: "MINUTE",
8 interval_num: 1,
9 limit: 120,
10 },
11 RateLimit {
12 limit_type: "ORDERS",
13 interval: "MINUTE",
14 interval_num: 1,
15 limit: 60,
16 },
17];
18
19pub const BYBIT_WS_URL_SPOT: &str = "wss://stream.bybit.com/v5/public/spot";
22pub const BYBIT_WS_URL_LINEAR: &str = "wss://stream.bybit.com/v5/public/linear";
24pub const BYBIT_WS_URL_INVERSE: &str = "wss://stream.bybit.com/v5/public/inverse";
26pub const BYBIT_WS_URL_SPREAD: &str = "wss://stream.bybit.com/v5/public/spread";
28pub const BYBIT_WS_URL_OPTION: &str = "wss://stream.bybit.com/v5/public/option";
30pub const BYBIT_WS_URL_PRIVATE: &str = "wss://stream.bybit.com/v5/private";
32pub const BYBIT_WS_URL_TRADE: &str = "wss://stream.bybit.com/v5/trade";
34
35pub const BYBIT_API_URL: &str = "https://api.bybit.com";
37
38#[derive(Debug, Clone, Copy, PartialEq, Eq)]
40pub enum BybitMessageType {
41 SubscriptionSuccess,
43 SubscriptionFailure,
45 UnsubscribeSuccess,
47 Trade,
49 OrderBook,
51 Ping,
53 Pong,
55 Error,
57 Unknown,
59}
60
61impl From<&str> for BybitMessageType {
62 fn from(s: &str) -> Self {
63 match s {
64 "subscribe" => Self::SubscriptionSuccess,
65 "unsubscribe" => Self::UnsubscribeSuccess,
66 "trade" => Self::Trade,
67 "orderBook" => Self::OrderBook,
68 "ping" => Self::Ping,
69 "pong" => Self::Pong,
70 "error" => Self::Error,
71 _ => Self::Unknown,
72 }
73 }
74}