Skip to main content

bybit/ws/
messages.rs

1use crate::ws::{IncomingMessage, OutgoingMessage};
2
3#[derive(Debug)]
4pub enum Command {
5    Connect,
6    Send(OutgoingMessage),
7    Disconnect,
8}
9
10#[derive(Debug)]
11pub enum Event {
12    Connected,
13    Message(IncomingMessage),
14    /// A WebSocket text frame arrived but could not be deserialized.
15    /// The connection stays open — the raw error description is included.
16    ParseError(String),
17    /// `dropped` data events (`Message`/`ParseError`) were discarded because
18    /// the event queue was full. Local state built from the stream (e.g. an
19    /// order book) may be stale and should be resynchronized.
20    Lagged {
21        dropped: u64,
22    },
23    Reconnecting {
24        attempt: u32,
25        delay_ms: u64,
26    },
27    Disconnected {
28        reason: DisconnectReason,
29    },
30}
31
32#[derive(Debug, Clone)]
33pub enum DisconnectReason {
34    Requested,
35    RemoteClosed,
36    PongTimeout,
37    Error(String),
38}