use crate::util::unknown_message::UnknownTemplateMessage;
use super::{
AccountPnLPositionUpdate, AccountRmsUpdates, BestBidOffer, BracketUpdates, DepthByOrder,
DepthByOrderEndEvent, EndOfDayPrices, ExchangeOrderNotification, ForcedLogout,
FrontMonthContractUpdate, IndicatorPrices, InstrumentPnLPositionUpdate, LastTrade, MarketMode,
OpenInterest, OrderBook, OrderPriceLimits, QuoteStatistics, Reject, RequestHeartbeat,
ResponseAcceptAgreement, ResponseAccountList, ResponseAccountRmsInfo,
ResponseAccountRmsUpdates, ResponseAuxilliaryReferenceData, ResponseBracketOrder,
ResponseCancelAllOrders, ResponseCancelOrder, ResponseDepthByOrderSnapshot,
ResponseDepthByOrderUpdates, ResponseEasyToBorrowList, ResponseExitPosition,
ResponseFrontMonthContract, ResponseGetInstrumentByUnderlying,
ResponseGetInstrumentByUnderlyingKeys, ResponseGetUserInfo, ResponseGetVolumeAtPrice,
ResponseGiveTickSizeTypeTable, ResponseHeartbeat, ResponseLinkOrders,
ResponseListAcceptedAgreements, ResponseListExchangePermissions,
ResponseListUnacceptedAgreements, ResponseLogin, ResponseLoginInfo, ResponseLogout,
ResponseMarketDataUpdate, ResponseMarketDataUpdateByUnderlying, ResponseModifyOrder,
ResponseModifyOrderReferenceData, ResponseNewOrder, ResponseOcoOrder,
ResponseOrderSessionConfig, ResponsePnLPositionSnapshot, ResponsePnLPositionUpdates,
ResponseProductCodes, ResponseProductRmsInfo, ResponseReferenceData, ResponseReplayExecutions,
ResponseResumeBars, ResponseRithmicSystemGatewayInfo, ResponseRithmicSystemInfo,
ResponseSearchSymbols, ResponseSetRithmicMrktDataSelfCertStatus, ResponseShowAgreement,
ResponseShowBracketStops, ResponseShowBrackets, ResponseShowFillHistory,
ResponseShowOrderHistory, ResponseShowOrderHistoryDates, ResponseShowOrderHistoryDetail,
ResponseShowOrderHistorySummary, ResponseShowOrders, ResponseSubscribeForOrderUpdates,
ResponseSubscribeToBracketUpdates, ResponseTickBarReplay, ResponseTickBarUpdate,
ResponseTimeBarReplay, ResponseTimeBarUpdate, ResponseTradeRoutes,
ResponseUpdateStopBracketLevel, ResponseUpdateTargetBracketLevel,
ResponseVolumeProfileMinuteBars, RithmicOrderNotification, SymbolMarginRate, TickBar, TimeBar,
TradeRoute, TradeStatistics, UpdateEasyToBorrowList, UserAccountUpdate, UserInfoUpdate,
};
#[allow(clippy::large_enum_variant)]
#[derive(Debug, Clone, PartialEq)]
#[non_exhaustive]
pub enum RithmicMessage {
AccountPnLPositionUpdate(AccountPnLPositionUpdate),
AccountRmsUpdates(AccountRmsUpdates),
BestBidOffer(BestBidOffer),
BracketUpdates(BracketUpdates),
DepthByOrder(DepthByOrder),
DepthByOrderEndEvent(DepthByOrderEndEvent),
EndOfDayPrices(EndOfDayPrices),
ExchangeOrderNotification(ExchangeOrderNotification),
ForcedLogout(ForcedLogout),
FrontMonthContractUpdate(FrontMonthContractUpdate),
IndicatorPrices(IndicatorPrices),
InstrumentPnLPositionUpdate(InstrumentPnLPositionUpdate),
LastTrade(LastTrade),
MarketMode(MarketMode),
OpenInterest(OpenInterest),
OrderBook(OrderBook),
OrderPriceLimits(OrderPriceLimits),
QuoteStatistics(QuoteStatistics),
Reject(Reject),
RequestHeartbeat(RequestHeartbeat),
ResponseAcceptAgreement(ResponseAcceptAgreement),
ResponseAccountList(ResponseAccountList),
ResponseAccountRmsInfo(ResponseAccountRmsInfo),
ResponseAccountRmsUpdates(ResponseAccountRmsUpdates),
ResponseAuxilliaryReferenceData(ResponseAuxilliaryReferenceData),
ResponseBracketOrder(ResponseBracketOrder),
ResponseCancelAllOrders(ResponseCancelAllOrders),
ResponseCancelOrder(ResponseCancelOrder),
ResponseDepthByOrderSnapshot(ResponseDepthByOrderSnapshot),
ResponseDepthByOrderUpdates(ResponseDepthByOrderUpdates),
ResponseEasyToBorrowList(ResponseEasyToBorrowList),
ResponseExitPosition(ResponseExitPosition),
ResponseFrontMonthContract(ResponseFrontMonthContract),
ResponseGetInstrumentByUnderlying(ResponseGetInstrumentByUnderlying),
ResponseGetInstrumentByUnderlyingKeys(ResponseGetInstrumentByUnderlyingKeys),
ResponseGetUserInfo(ResponseGetUserInfo),
ResponseGetVolumeAtPrice(ResponseGetVolumeAtPrice),
ResponseGiveTickSizeTypeTable(ResponseGiveTickSizeTypeTable),
ResponseHeartbeat(ResponseHeartbeat),
ResponseLinkOrders(ResponseLinkOrders),
ResponseListAcceptedAgreements(ResponseListAcceptedAgreements),
ResponseListExchangePermissions(ResponseListExchangePermissions),
ResponseListUnacceptedAgreements(ResponseListUnacceptedAgreements),
ResponseLogin(ResponseLogin),
ResponseLoginInfo(ResponseLoginInfo),
ResponseLogout(ResponseLogout),
ResponseMarketDataUpdate(ResponseMarketDataUpdate),
ResponseMarketDataUpdateByUnderlying(ResponseMarketDataUpdateByUnderlying),
ResponseModifyOrder(ResponseModifyOrder),
ResponseModifyOrderReferenceData(ResponseModifyOrderReferenceData),
ResponseNewOrder(ResponseNewOrder),
ResponseOcoOrder(ResponseOcoOrder),
ResponseOrderSessionConfig(ResponseOrderSessionConfig),
ResponsePnLPositionSnapshot(ResponsePnLPositionSnapshot),
ResponsePnLPositionUpdates(ResponsePnLPositionUpdates),
ResponseProductCodes(ResponseProductCodes),
ResponseProductRmsInfo(ResponseProductRmsInfo),
ResponseReferenceData(ResponseReferenceData),
ResponseReplayExecutions(ResponseReplayExecutions),
ResponseResumeBars(ResponseResumeBars),
ResponseRithmicSystemGatewayInfo(ResponseRithmicSystemGatewayInfo),
ResponseRithmicSystemInfo(ResponseRithmicSystemInfo),
ResponseSearchSymbols(ResponseSearchSymbols),
ResponseSetRithmicMrktDataSelfCertStatus(ResponseSetRithmicMrktDataSelfCertStatus),
ResponseShowAgreement(ResponseShowAgreement),
ResponseShowBrackets(ResponseShowBrackets),
ResponseShowBracketStops(ResponseShowBracketStops),
ResponseShowFillHistory(ResponseShowFillHistory),
ResponseShowOrderHistory(ResponseShowOrderHistory),
ResponseShowOrderHistoryDates(ResponseShowOrderHistoryDates),
ResponseShowOrderHistoryDetail(ResponseShowOrderHistoryDetail),
ResponseShowOrderHistorySummary(ResponseShowOrderHistorySummary),
ResponseShowOrders(ResponseShowOrders),
ResponseSubscribeForOrderUpdates(ResponseSubscribeForOrderUpdates),
ResponseSubscribeToBracketUpdates(ResponseSubscribeToBracketUpdates),
ResponseTickBarReplay(ResponseTickBarReplay),
ResponseTickBarUpdate(ResponseTickBarUpdate),
ResponseTimeBarReplay(ResponseTimeBarReplay),
ResponseTimeBarUpdate(ResponseTimeBarUpdate),
ResponseTradeRoutes(ResponseTradeRoutes),
ResponseUpdateStopBracketLevel(ResponseUpdateStopBracketLevel),
ResponseUpdateTargetBracketLevel(ResponseUpdateTargetBracketLevel),
ResponseVolumeProfileMinuteBars(ResponseVolumeProfileMinuteBars),
RithmicOrderNotification(RithmicOrderNotification),
SymbolMarginRate(SymbolMarginRate),
TickBar(TickBar),
TimeBar(TimeBar),
TradeRoute(TradeRoute),
TradeStatistics(TradeStatistics),
UpdateEasyToBorrowList(UpdateEasyToBorrowList),
UserAccountUpdate(UserAccountUpdate),
UserInfoUpdate(UserInfoUpdate),
ConnectionError,
HeartbeatTimeout,
UnknownTemplate(UnknownTemplateMessage),
Unknown,
}