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};
pub use block::{
BlockLeg, BlockQuoteUpdate, BlockRfqUpdate, BlockTickerUpdate, PublicBlockTradeUpdate,
PublicStructureBlockTradeUpdate, StructureBlockTradeUpdate,
};
pub use funding::{DepositInfoUpdate, WithdrawalInfoUpdate};
pub use grid::{
CopyTradingNotification, GridOrderUpdate, GridPositionUpdate, GridSubOrderUpdate,
RecurringBuyAllocation, RecurringBuyOrderUpdate, TradingBotUpdate,
};
pub use market::{
BookLevel, CallAuctionDetailsUpdate, CandleUpdate, OptionTradeUpdate, OrderBookUpdate,
TickerUpdate, TradeUpdate,
};
pub use public_data::{
AdlWarningUpdate, EconomicCalendarUpdate, EstimatedPriceUpdate, EventContractMarketUpdate,
FundingRateUpdate, IndexTickerUpdate, InstrumentUpcomingParamChange, InstrumentUpdate,
LiquidationOrderDetail, LiquidationOrderUpdate, MarkPriceUpdate, OpenInterestUpdate,
OptionSummaryUpdate, PriceLimitUpdate,
};
pub use spread::{
SpreadAmendOrderResult, SpreadCancelOrderResult, SpreadMassCancelResult, SpreadOrderUpdate,
SpreadPlaceOrderResult, SpreadTradeLeg, SpreadTradeUpdate,
};
pub use status::StatusUpdate;
pub use trade::{FillUpdate, MassCancelOperationResult, OrderOperationResult, OrderUpdate};
#[cfg(test)]
mod compile_checks;