use serde::de::DeserializeOwned;
use super::*;
fn assert_deserializable<T: DeserializeOwned>() {}
#[test]
fn all_exported_websocket_models_are_deserializable() {
assert_deserializable::<WsRow>();
assert_deserializable::<BookLevel>();
assert_deserializable::<CallAuctionDetailsUpdate>();
assert_deserializable::<CandleUpdate>();
assert_deserializable::<OptionTradeUpdate>();
assert_deserializable::<OrderBookUpdate>();
assert_deserializable::<TickerUpdate>();
assert_deserializable::<TradeUpdate>();
assert_deserializable::<AdlWarningUpdate>();
assert_deserializable::<EconomicCalendarUpdate>();
assert_deserializable::<EstimatedPriceUpdate>();
assert_deserializable::<EventContractMarketUpdate>();
assert_deserializable::<FundingRateUpdate>();
assert_deserializable::<IndexTickerUpdate>();
assert_deserializable::<InstrumentUpdate>();
assert_deserializable::<InstrumentUpcomingParamChange>();
assert_deserializable::<LiquidationOrderDetail>();
assert_deserializable::<LiquidationOrderUpdate>();
assert_deserializable::<MarkPriceUpdate>();
assert_deserializable::<OpenInterestUpdate>();
assert_deserializable::<OptionSummaryUpdate>();
assert_deserializable::<PriceLimitUpdate>();
assert_deserializable::<AccountBalanceUpdate>();
assert_deserializable::<AccountGreeksUpdate>();
assert_deserializable::<AccountUpdate>();
assert_deserializable::<BalData>();
assert_deserializable::<BalanceAndPositionUpdate>();
assert_deserializable::<LiquidationWarningUpdate>();
assert_deserializable::<PosData>();
assert_deserializable::<PositionUpdate>();
assert_deserializable::<Trade>();
assert_deserializable::<FillUpdate>();
assert_deserializable::<MassCancelOperationResult>();
assert_deserializable::<PlaceOrderResult>();
assert_deserializable::<CancelOrderResult>();
assert_deserializable::<AmendOrderResult>();
assert_deserializable::<OrderUpdate>();
assert_deserializable::<AdvancedAlgoOrderUpdate>();
assert_deserializable::<AlgoOrderUpdate>();
assert_deserializable::<LinkedOrder>();
assert_deserializable::<CopyTradingNotification>();
assert_deserializable::<GridOrderUpdate>();
assert_deserializable::<GridPositionUpdate>();
assert_deserializable::<GridSubOrderUpdate>();
assert_deserializable::<RebateTrans>();
assert_deserializable::<RecurringBuyAllocation>();
assert_deserializable::<RecurringBuyOrderUpdate>();
assert_deserializable::<TradingBotUpdate>();
assert_deserializable::<TriggerParam>();
assert_deserializable::<BlockLeg>();
assert_deserializable::<BlockQuoteUpdate>();
assert_deserializable::<BlockRfqUpdate>();
assert_deserializable::<BlockTickerUpdate>();
assert_deserializable::<PublicBlockTradeUpdate>();
assert_deserializable::<PublicStructureBlockTradeUpdate>();
assert_deserializable::<StructureBlockTradeUpdate>();
assert_deserializable::<SpreadAmendOrderResult>();
assert_deserializable::<SpreadCancelOrderResult>();
assert_deserializable::<SpreadMassCancelResult>();
assert_deserializable::<SpreadOrderUpdate>();
assert_deserializable::<SpreadPlaceOrderResult>();
assert_deserializable::<SpreadPublicTradeUpdate>();
assert_deserializable::<SpreadTickerUpdate>();
assert_deserializable::<SpreadTradeLeg>();
assert_deserializable::<SpreadTradeUpdate>();
assert_deserializable::<DepositInfoUpdate>();
assert_deserializable::<WithdrawalInfoUpdate>();
assert_deserializable::<StatusUpdate>();
}