use crate::messages::IncomingMessages;
pub(crate) trait ProtoPayload: prost::Message + Default {
const MESSAGE_ID: IncomingMessages;
}
macro_rules! impl_proto_payload {
($($payload:ident => $message_id:ident),+ $(,)?) => {
$(
impl ProtoPayload for crate::proto::$payload {
const MESSAGE_ID: IncomingMessages = IncomingMessages::$message_id;
}
)+
};
}
impl_proto_payload! {
ConfigResponse => ConfigResponse,
CurrentTime => CurrentTime,
CurrentTimeInMillis => CurrentTimeInMillis,
FamilyCodes => FamilyCodes,
HeadTimestamp => HeadTimestamp,
HistogramData => HistogramData,
HistoricalSchedule => HistoricalSchedule,
ManagedAccounts => ManagedAccounts,
MarketDepthExchanges => MktDepthExchanges,
MarketRule => MarketRule,
NewsArticle => NewsArticle,
NewsProviders => NewsProviders,
NextValidId => NextValidId,
ReceiveFa => ReceiveFA,
ReplaceFaEnd => ReplaceFAEnd,
ScannerParameters => ScannerParameters,
SmartComponents => SmartComponents,
SoftDollarTiers => SoftDollarTier,
SymbolSamples => SymbolSamples,
UpdateConfigResponse => UpdateConfigResponse,
UserInfo => UserInfo,
VerifyCompleted => VerifyCompleted,
VerifyMessageApi => VerifyMessageApi,
WshEventData => WshEventData,
WshMetaData => WshMetaData,
}