use std::collections::BTreeMap;
use serde::Deserialize;
use serde_json::Value;
pub type ExtraFields = BTreeMap<String, Value>;
#[derive(Debug, Clone, Default, Deserialize)]
#[non_exhaustive]
pub struct WsRow {
#[serde(flatten, default)]
pub fields: ExtraFields,
}
pub mod account;
pub mod algo;
pub mod block;
pub mod funding;
pub mod grid;
pub mod market;
pub mod public_data;
pub mod spread;
pub mod status;
pub mod trade;
pub use account::{
AccountBalanceUpdate, AccountGreeksUpdate, AccountUpdate, BalData, BalanceAndPositionUpdate,
CloseOrderAlgo, LiquidationWarningUpdate, PosData, PositionUpdate, Trade,
};
pub use algo::{AdvancedAlgoOrderUpdate, AlgoOrderUpdate, LinkedOrder};
pub use block::{
BlockLeg, BlockQuoteUpdate, BlockRfqUpdate, BlockTickerUpdate, PublicBlockTradeUpdate,
PublicStructureBlockTradeUpdate, StructureBlockTradeUpdate,
};
pub use funding::{DepositInfoUpdate, WithdrawalInfoUpdate};
pub use grid::{
CopyTradingNotification, GridOrderUpdate, GridPositionUpdate, GridSubOrderUpdate, RebateTrans,
RecurringBuyAllocation, RecurringBuyOrderUpdate, TradingBotUpdate, TriggerParam,
};
pub use market::{
AllTradeUpdate, BookLevel, CallAuctionDetailsUpdate, CandleUpdate, OptionTradeUpdate,
OrderBookUpdate, TickerUpdate, TradeUpdate,
};
pub use public_data::{
AdlWarningUpdate, EconomicCalendarUpdate, EstimatedPriceUpdate, EventContractMarketUpdate,
FundingRateUpdate, IndexCandleUpdate, IndexTickerUpdate, InstrumentUpcomingParamChange,
InstrumentUpdate, LiquidationOrderDetail, LiquidationOrderUpdate, MarkPriceCandleUpdate,
MarkPriceUpdate, OpenInterestUpdate, OptionSummaryUpdate, PriceLimitUpdate,
};
pub use spread::{
SpreadAmendOrderResult, SpreadCancelOrderResult, SpreadMassCancelResult, SpreadOrderUpdate,
SpreadPlaceOrderResult, SpreadPublicTradeUpdate, SpreadTickerUpdate, SpreadTradeLeg,
SpreadTradeUpdate,
};
pub use status::StatusUpdate;
pub use trade::{
AmendOrderResult, CancelOrderResult, FillUpdate, MassCancelOperationResult, OrderUpdate,
PlaceOrderResult,
};
#[cfg(test)]
mod compile_checks;