1use std::collections::BTreeMap;
24
25use serde::Deserialize;
26use serde_json::Value;
27
28pub type ExtraFields = BTreeMap<String, Value>;
30
31#[derive(Debug, Clone, Default, Deserialize)]
33#[non_exhaustive]
34pub struct WsRow {
35 #[serde(flatten, default)]
37 pub fields: ExtraFields,
38}
39
40pub mod account;
41pub mod algo;
42pub mod block;
43pub mod funding;
44pub mod grid;
45pub mod market;
46pub mod public_data;
47pub mod spread;
48pub mod status;
49pub mod trade;
50
51pub use account::{
53 AccountBalanceUpdate, AccountGreeksUpdate, AccountUpdate, BalData, BalanceAndPositionUpdate,
54 CloseOrderAlgo, LiquidationWarningUpdate, PosData, PositionUpdate, Trade,
55};
56pub use algo::{AdvancedAlgoOrderUpdate, AlgoOrderUpdate, LinkedOrder};
57pub use block::{
58 BlockLeg, BlockQuoteUpdate, BlockRfqUpdate, BlockTickerUpdate, PublicBlockTradeUpdate,
59 PublicStructureBlockTradeUpdate, StructureBlockTradeUpdate,
60};
61pub use funding::{DepositInfoUpdate, WithdrawalInfoUpdate};
62pub use grid::{
63 CopyTradingNotification, GridOrderUpdate, GridPositionUpdate, GridSubOrderUpdate, RebateTrans,
64 RecurringBuyAllocation, RecurringBuyOrderUpdate, TradingBotUpdate, TriggerParam,
65};
66pub use market::{
67 AllTradeUpdate, BookLevel, CallAuctionDetailsUpdate, CandleUpdate, OptionTradeUpdate,
68 OrderBookUpdate, TickerUpdate, TradeUpdate,
69};
70pub use public_data::{
71 AdlWarningUpdate, EconomicCalendarUpdate, EstimatedPriceUpdate, EventContractMarketUpdate,
72 FundingRateUpdate, IndexCandleUpdate, IndexTickerUpdate, InstrumentUpcomingParamChange,
73 InstrumentUpdate, LiquidationOrderDetail, LiquidationOrderUpdate, MarkPriceCandleUpdate,
74 MarkPriceUpdate, OpenInterestUpdate, OptionSummaryUpdate, PriceLimitUpdate,
75};
76pub use spread::{
77 SpreadAmendOrderResult, SpreadCancelOrderResult, SpreadMassCancelResult, SpreadOrderUpdate,
78 SpreadPlaceOrderResult, SpreadPublicTradeUpdate, SpreadTickerUpdate, SpreadTradeLeg,
79 SpreadTradeUpdate,
80};
81pub use status::StatusUpdate;
82pub use trade::{
83 AmendOrderResult, CancelOrderResult, FillUpdate, MassCancelOperationResult, OrderUpdate,
84 PlaceOrderResult,
85};
86
87#[cfg(test)]
88mod compile_checks;