#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscribeMarketFeedRequest {
#[prost(string, repeated, tag="1")]
pub symbols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, optional, tag="2")]
pub start_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(enumeration="MarketDataType", repeated, tag="3")]
pub data_types: ::prost::alloc::vec::Vec<i32>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketFeedStatus {
#[prost(int32, tag="1")]
pub active_streams: i32,
#[prost(int64, tag="2")]
pub total_events_sent: i64,
#[prost(string, repeated, tag="3")]
pub loaded_files: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, optional, tag="4")]
pub server_start_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketFeedEvent {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub exchange_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(int64, tag="3")]
pub sequence_number: i64,
#[prost(string, tag="4")]
pub message_type: ::prost::alloc::string::String,
#[prost(enumeration="SessionId", tag="5")]
pub session_id: i32,
#[prost(oneof="market_feed_event::Data", tags="10, 11, 12, 13, 14")]
pub data: ::core::option::Option<market_feed_event::Data>,
}
pub mod market_feed_event {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Data {
#[prost(message, tag="10")]
EtfOrderbook(super::EtfOrderbook),
#[prost(message, tag="11")]
FuturesOrderbook(super::FuturesOrderbook),
#[prost(message, tag="12")]
StockOrderbook(super::StockOrderbook),
#[prost(message, tag="13")]
Trade(super::Trade),
#[prost(message, tag="14")]
Nav(super::Nav),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EtfOrderbook {
#[prost(string, repeated, tag="1")]
pub ask_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="2")]
pub bid_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(int64, repeated, tag="3")]
pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
#[prost(int64, repeated, tag="4")]
pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
#[prost(int64, repeated, tag="5")]
pub lp_ask_quantities: ::prost::alloc::vec::Vec<i64>,
#[prost(int64, repeated, tag="6")]
pub lp_bid_quantities: ::prost::alloc::vec::Vec<i64>,
#[prost(string, tag="7")]
pub mid_price: ::prost::alloc::string::String,
#[prost(int64, tag="8")]
pub mid_ask_quantity: i64,
#[prost(int64, tag="9")]
pub mid_bid_quantity: i64,
#[prost(int64, tag="10")]
pub total_ask_quantity: i64,
#[prost(int64, tag="11")]
pub total_bid_quantity: i64,
#[prost(string, tag="12")]
pub est_price: ::prost::alloc::string::String,
#[prost(int64, tag="13")]
pub est_volume: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FuturesOrderbook {
#[prost(string, repeated, tag="1")]
pub ask_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="2")]
pub bid_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(int64, repeated, tag="3")]
pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
#[prost(int64, repeated, tag="4")]
pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
#[prost(int64, repeated, tag="5")]
pub ask_counts: ::prost::alloc::vec::Vec<i64>,
#[prost(int64, repeated, tag="6")]
pub bid_counts: ::prost::alloc::vec::Vec<i64>,
#[prost(int64, tag="7")]
pub total_ask_quantity: i64,
#[prost(int64, tag="8")]
pub total_bid_quantity: i64,
#[prost(string, tag="9")]
pub mid_price: ::prost::alloc::string::String,
#[prost(string, tag="10")]
pub est_price: ::prost::alloc::string::String,
#[prost(int64, tag="11")]
pub est_volume: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StockOrderbook {
#[prost(string, repeated, tag="1")]
pub ask_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, repeated, tag="2")]
pub bid_prices: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(int64, repeated, tag="3")]
pub ask_quantities: ::prost::alloc::vec::Vec<i64>,
#[prost(int64, repeated, tag="4")]
pub bid_quantities: ::prost::alloc::vec::Vec<i64>,
#[prost(string, tag="5")]
pub mid_price: ::prost::alloc::string::String,
#[prost(int64, tag="6")]
pub mid_ask_quantity: i64,
#[prost(int64, tag="7")]
pub mid_bid_quantity: i64,
#[prost(int64, tag="8")]
pub total_ask_quantity: i64,
#[prost(int64, tag="9")]
pub total_bid_quantity: i64,
#[prost(string, tag="10")]
pub est_price: ::prost::alloc::string::String,
#[prost(int64, tag="11")]
pub est_volume: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Trade {
#[prost(string, tag="1")]
pub price: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub quantity: i64,
#[prost(enumeration="OrderSide", tag="3")]
pub side: i32,
#[prost(int64, tag="4")]
pub cumulative_volume: i64,
#[prost(string, tag="5")]
pub cumulative_value: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Nav {
#[prost(string, tag="1")]
pub prev_nav: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub current_nav: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum OrderSide {
Unspecified = 0,
Bid = 1,
Ask = 2,
}
impl OrderSide {
pub fn as_str_name(&self) -> &'static str {
match self {
OrderSide::Unspecified => "ORDER_SIDE_UNSPECIFIED",
OrderSide::Bid => "ORDER_SIDE_BID",
OrderSide::Ask => "ORDER_SIDE_ASK",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ORDER_SIDE_UNSPECIFIED" => Some(Self::Unspecified),
"ORDER_SIDE_BID" => Some(Self::Bid),
"ORDER_SIDE_ASK" => Some(Self::Ask),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SessionId {
Unspecified = 0,
Previous = 1,
OpeningAuction = 2,
OnePrice = 3,
ClosingAuction = 4,
Continuous = 5,
ViAuction = 6,
ViOpeningAuction = 7,
ViClosingAuction = 8,
PostMarket = 9,
AuctionBid = 10,
AuctionAsk = 11,
UnitTrade = 12,
Suspended = 13,
Shutdown = 14,
Closed = 15,
}
impl SessionId {
pub fn as_str_name(&self) -> &'static str {
match self {
SessionId::Unspecified => "SESSION_ID_UNSPECIFIED",
SessionId::Previous => "SESSION_ID_PREVIOUS",
SessionId::OpeningAuction => "SESSION_ID_OPENING_AUCTION",
SessionId::OnePrice => "SESSION_ID_ONE_PRICE",
SessionId::ClosingAuction => "SESSION_ID_CLOSING_AUCTION",
SessionId::Continuous => "SESSION_ID_CONTINUOUS",
SessionId::ViAuction => "SESSION_ID_VI_AUCTION",
SessionId::ViOpeningAuction => "SESSION_ID_VI_OPENING_AUCTION",
SessionId::ViClosingAuction => "SESSION_ID_VI_CLOSING_AUCTION",
SessionId::PostMarket => "SESSION_ID_POST_MARKET",
SessionId::AuctionBid => "SESSION_ID_AUCTION_BID",
SessionId::AuctionAsk => "SESSION_ID_AUCTION_ASK",
SessionId::UnitTrade => "SESSION_ID_UNIT_TRADE",
SessionId::Suspended => "SESSION_ID_SUSPENDED",
SessionId::Shutdown => "SESSION_ID_SHUTDOWN",
SessionId::Closed => "SESSION_ID_CLOSED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SESSION_ID_UNSPECIFIED" => Some(Self::Unspecified),
"SESSION_ID_PREVIOUS" => Some(Self::Previous),
"SESSION_ID_OPENING_AUCTION" => Some(Self::OpeningAuction),
"SESSION_ID_ONE_PRICE" => Some(Self::OnePrice),
"SESSION_ID_CLOSING_AUCTION" => Some(Self::ClosingAuction),
"SESSION_ID_CONTINUOUS" => Some(Self::Continuous),
"SESSION_ID_VI_AUCTION" => Some(Self::ViAuction),
"SESSION_ID_VI_OPENING_AUCTION" => Some(Self::ViOpeningAuction),
"SESSION_ID_VI_CLOSING_AUCTION" => Some(Self::ViClosingAuction),
"SESSION_ID_POST_MARKET" => Some(Self::PostMarket),
"SESSION_ID_AUCTION_BID" => Some(Self::AuctionBid),
"SESSION_ID_AUCTION_ASK" => Some(Self::AuctionAsk),
"SESSION_ID_UNIT_TRADE" => Some(Self::UnitTrade),
"SESSION_ID_SUSPENDED" => Some(Self::Suspended),
"SESSION_ID_SHUTDOWN" => Some(Self::Shutdown),
"SESSION_ID_CLOSED" => Some(Self::Closed),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MarketDataType {
Unspecified = 0,
EtfOrderbook = 1,
FuturesOrderbook = 2,
StockOrderbook = 3,
Trade = 4,
Nav = 5,
}
impl MarketDataType {
pub fn as_str_name(&self) -> &'static str {
match self {
MarketDataType::Unspecified => "MARKET_DATA_TYPE_UNSPECIFIED",
MarketDataType::EtfOrderbook => "MARKET_DATA_TYPE_ETF_ORDERBOOK",
MarketDataType::FuturesOrderbook => "MARKET_DATA_TYPE_FUTURES_ORDERBOOK",
MarketDataType::StockOrderbook => "MARKET_DATA_TYPE_STOCK_ORDERBOOK",
MarketDataType::Trade => "MARKET_DATA_TYPE_TRADE",
MarketDataType::Nav => "MARKET_DATA_TYPE_NAV",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MARKET_DATA_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"MARKET_DATA_TYPE_ETF_ORDERBOOK" => Some(Self::EtfOrderbook),
"MARKET_DATA_TYPE_FUTURES_ORDERBOOK" => Some(Self::FuturesOrderbook),
"MARKET_DATA_TYPE_STOCK_ORDERBOOK" => Some(Self::StockOrderbook),
"MARKET_DATA_TYPE_TRADE" => Some(Self::Trade),
"MARKET_DATA_TYPE_NAV" => Some(Self::Nav),
_ => None,
}
}
}
include!("market.v1.feed.tonic.rs");
include!("market.v1.feed.serde.rs");