pub enum WebSocketMessage {
Show 14 variants
AggTrade(AggTradeEvent),
MarkPrice(MarkPriceEvent),
AllMarkPrices(Vec<MarkPriceEvent>),
Kline(KlineEvent),
MiniTicker(MiniTickerEvent),
AllMiniTickers(Vec<MiniTickerEvent>),
Ticker(TickerEvent),
AllTickers(Vec<TickerEvent>),
BookTicker(BookTickerEvent),
ForceOrder(ForceOrderEvent),
AllForceOrders(Vec<ForceOrderEvent>),
PartialDepth(PartialDepthEvent),
DiffDepth(DiffDepthEvent),
Unknown(Value),
}Expand description
Typed WebSocket message.
Deserialization dispatches on the e (event_type) field for object messages.
Array JSON (all-symbol streams such as !markPrice@arr) is detected by the
top-level value being a JSON array and dispatched on the first element’s e.
Special cases without an "e" field (legacy Binance-compatible deployments):
PartialDepth— detected by the presence of"lastUpdateId".BookTicker— detected by"u"key with no"e"field. V3 deployments emit"e": "bookTicker"and are dispatched through the normal match path.
Any unrecognised or malformed message is mapped to Unknown(serde_json::Value)
and a tracing::warn! is emitted — the SDK never panics on unknown events.
Variants§
AggTrade(AggTradeEvent)
Single aggregate trade event ("e": "aggTrade").
MarkPrice(MarkPriceEvent)
Single mark price update ("e": "markPriceUpdate").
AllMarkPrices(Vec<MarkPriceEvent>)
All-symbol mark price array (!markPrice@arr).
Kline(KlineEvent)
Kline/candlestick event ("e": "kline").
MiniTicker(MiniTickerEvent)
24-hour mini ticker for a single symbol.
AllMiniTickers(Vec<MiniTickerEvent>)
All-symbol 24-hour mini tickers (!miniTicker@arr).
Ticker(TickerEvent)
Full 24-hour ticker for a single symbol.
AllTickers(Vec<TickerEvent>)
All-symbol full 24-hour tickers.
BookTicker(BookTickerEvent)
Best bid/ask book ticker (detected by "u" key without "e").
ForceOrder(ForceOrderEvent)
Liquidation force order event ("e": "forceOrder").
AllForceOrders(Vec<ForceOrderEvent>)
All liquidation force orders.
PartialDepth(PartialDepthEvent)
Partial depth snapshot (detected by "lastUpdateId" key).
DiffDepth(DiffDepthEvent)
Differential depth update ("e": "depthUpdate").
Unknown(Value)
Unknown or unrecognised message — captured as raw JSON for forward compatibility.
Trait Implementations§
Source§impl Debug for WebSocketMessage
impl Debug for WebSocketMessage
Source§impl<'de> Deserialize<'de> for WebSocketMessage
impl<'de> Deserialize<'de> for WebSocketMessage
Source§fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
Auto Trait Implementations§
impl Freeze for WebSocketMessage
impl RefUnwindSafe for WebSocketMessage
impl Send for WebSocketMessage
impl Sync for WebSocketMessage
impl Unpin for WebSocketMessage
impl UnsafeUnpin for WebSocketMessage
impl UnwindSafe for WebSocketMessage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more