#![allow(unknown_lints)]
#![allow(clippy::all)]
#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]
#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_results)]
#![allow(unused_mut)]
const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_3_2_0;
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Trade {
pub timestamp: ::protobuf::MessageField<::protobuf::well_known_types::timestamp::Timestamp>,
pub side: bool,
pub price: f32,
pub quantity_base: f32,
pub quantity_quote: f32,
pub quantity_contract: ::std::option::Option<f32>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Trade {
fn default() -> &'a Trade {
<Trade as ::protobuf::Message>::default_instance()
}
}
impl Trade {
pub fn new() -> Trade {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(6);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, ::protobuf::well_known_types::timestamp::Timestamp>(
"timestamp",
|m: &Trade| { &m.timestamp },
|m: &mut Trade| { &mut m.timestamp },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"side",
|m: &Trade| { &m.side },
|m: &mut Trade| { &mut m.side },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"price",
|m: &Trade| { &m.price },
|m: &mut Trade| { &mut m.price },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"quantity_base",
|m: &Trade| { &m.quantity_base },
|m: &mut Trade| { &mut m.quantity_base },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"quantity_quote",
|m: &Trade| { &m.quantity_quote },
|m: &mut Trade| { &mut m.quantity_quote },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"quantity_contract",
|m: &Trade| { &m.quantity_contract },
|m: &mut Trade| { &mut m.quantity_contract },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Trade>(
"Trade",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Trade {
const NAME: &'static str = "Trade";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
::protobuf::rt::read_singular_message_into_field(is, &mut self.timestamp)?;
},
16 => {
self.side = is.read_bool()?;
},
29 => {
self.price = is.read_float()?;
},
37 => {
self.quantity_base = is.read_float()?;
},
45 => {
self.quantity_quote = is.read_float()?;
},
53 => {
self.quantity_contract = ::std::option::Option::Some(is.read_float()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if let Some(v) = self.timestamp.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
}
if self.side != false {
my_size += 1 + 1;
}
if self.price != 0. {
my_size += 1 + 4;
}
if self.quantity_base != 0. {
my_size += 1 + 4;
}
if self.quantity_quote != 0. {
my_size += 1 + 4;
}
if let Some(v) = self.quantity_contract {
my_size += 1 + 4;
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if let Some(v) = self.timestamp.as_ref() {
::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
}
if self.side != false {
os.write_bool(2, self.side)?;
}
if self.price != 0. {
os.write_float(3, self.price)?;
}
if self.quantity_base != 0. {
os.write_float(4, self.quantity_base)?;
}
if self.quantity_quote != 0. {
os.write_float(5, self.quantity_quote)?;
}
if let Some(v) = self.quantity_contract {
os.write_float(6, v)?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Trade {
Trade::new()
}
fn clear(&mut self) {
self.timestamp.clear();
self.side = false;
self.price = 0.;
self.quantity_base = 0.;
self.quantity_quote = 0.;
self.quantity_contract = ::std::option::Option::None;
self.special_fields.clear();
}
fn default_instance() -> &'static Trade {
static instance: Trade = Trade {
timestamp: ::protobuf::MessageField::none(),
side: false,
price: 0.,
quantity_base: 0.,
quantity_quote: 0.,
quantity_contract: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Trade {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Trade").unwrap()).clone()
}
}
impl ::std::fmt::Display for Trade {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Trade {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Orderbook {
pub timestamp: ::protobuf::MessageField<::protobuf::well_known_types::timestamp::Timestamp>,
pub snapshot: bool,
pub asks: ::std::vec::Vec<orderbook::Order>,
pub bids: ::std::vec::Vec<orderbook::Order>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Orderbook {
fn default() -> &'a Orderbook {
<Orderbook as ::protobuf::Message>::default_instance()
}
}
impl Orderbook {
pub fn new() -> Orderbook {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(4);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, ::protobuf::well_known_types::timestamp::Timestamp>(
"timestamp",
|m: &Orderbook| { &m.timestamp },
|m: &mut Orderbook| { &mut m.timestamp },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"snapshot",
|m: &Orderbook| { &m.snapshot },
|m: &mut Orderbook| { &mut m.snapshot },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"asks",
|m: &Orderbook| { &m.asks },
|m: &mut Orderbook| { &mut m.asks },
));
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"bids",
|m: &Orderbook| { &m.bids },
|m: &mut Orderbook| { &mut m.bids },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Orderbook>(
"Orderbook",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Orderbook {
const NAME: &'static str = "Orderbook";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
::protobuf::rt::read_singular_message_into_field(is, &mut self.timestamp)?;
},
16 => {
self.snapshot = is.read_bool()?;
},
26 => {
self.asks.push(is.read_message()?);
},
34 => {
self.bids.push(is.read_message()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if let Some(v) = self.timestamp.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
}
if self.snapshot != false {
my_size += 1 + 1;
}
for value in &self.asks {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
};
for value in &self.bids {
let len = value.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
};
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if let Some(v) = self.timestamp.as_ref() {
::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
}
if self.snapshot != false {
os.write_bool(2, self.snapshot)?;
}
for v in &self.asks {
::protobuf::rt::write_message_field_with_cached_size(3, v, os)?;
};
for v in &self.bids {
::protobuf::rt::write_message_field_with_cached_size(4, v, os)?;
};
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Orderbook {
Orderbook::new()
}
fn clear(&mut self) {
self.timestamp.clear();
self.snapshot = false;
self.asks.clear();
self.bids.clear();
self.special_fields.clear();
}
fn default_instance() -> &'static Orderbook {
static instance: Orderbook = Orderbook {
timestamp: ::protobuf::MessageField::none(),
snapshot: false,
asks: ::std::vec::Vec::new(),
bids: ::std::vec::Vec::new(),
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Orderbook {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Orderbook").unwrap()).clone()
}
}
impl ::std::fmt::Display for Orderbook {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Orderbook {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
pub mod orderbook {
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Order {
pub price: f32,
pub quantity_base: f32,
pub quantity_quote: f32,
pub quantity_contract: ::std::option::Option<f32>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Order {
fn default() -> &'a Order {
<Order as ::protobuf::Message>::default_instance()
}
}
impl Order {
pub fn new() -> Order {
::std::default::Default::default()
}
pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(4);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"price",
|m: &Order| { &m.price },
|m: &mut Order| { &mut m.price },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"quantity_base",
|m: &Order| { &m.quantity_base },
|m: &mut Order| { &mut m.quantity_base },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"quantity_quote",
|m: &Order| { &m.quantity_quote },
|m: &mut Order| { &mut m.quantity_quote },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"quantity_contract",
|m: &Order| { &m.quantity_contract },
|m: &mut Order| { &mut m.quantity_contract },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Order>(
"Orderbook.Order",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Order {
const NAME: &'static str = "Order";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
13 => {
self.price = is.read_float()?;
},
21 => {
self.quantity_base = is.read_float()?;
},
29 => {
self.quantity_quote = is.read_float()?;
},
37 => {
self.quantity_contract = ::std::option::Option::Some(is.read_float()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if self.price != 0. {
my_size += 1 + 4;
}
if self.quantity_base != 0. {
my_size += 1 + 4;
}
if self.quantity_quote != 0. {
my_size += 1 + 4;
}
if let Some(v) = self.quantity_contract {
my_size += 1 + 4;
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if self.price != 0. {
os.write_float(1, self.price)?;
}
if self.quantity_base != 0. {
os.write_float(2, self.quantity_base)?;
}
if self.quantity_quote != 0. {
os.write_float(3, self.quantity_quote)?;
}
if let Some(v) = self.quantity_contract {
os.write_float(4, v)?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Order {
Order::new()
}
fn clear(&mut self) {
self.price = 0.;
self.quantity_base = 0.;
self.quantity_quote = 0.;
self.quantity_contract = ::std::option::Option::None;
self.special_fields.clear();
}
fn default_instance() -> &'static Order {
static instance: Order = Order {
price: 0.,
quantity_base: 0.,
quantity_quote: 0.,
quantity_contract: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Order {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| super::file_descriptor().message_by_package_relative_name("Orderbook.Order").unwrap()).clone()
}
}
impl ::std::fmt::Display for Order {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Order {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Bbo {
pub timestamp: ::protobuf::MessageField<::protobuf::well_known_types::timestamp::Timestamp>,
pub bid_price: f32,
pub bid_quantity_base: f32,
pub bid_quantity_quote: f32,
pub bid_quantity_contract: ::std::option::Option<f32>,
pub ask_price: f32,
pub ask_quantity_base: f32,
pub ask_quantity_quote: f32,
pub ask_quantity_contract: ::std::option::Option<f32>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Bbo {
fn default() -> &'a Bbo {
<Bbo as ::protobuf::Message>::default_instance()
}
}
impl Bbo {
pub fn new() -> Bbo {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(9);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, ::protobuf::well_known_types::timestamp::Timestamp>(
"timestamp",
|m: &Bbo| { &m.timestamp },
|m: &mut Bbo| { &mut m.timestamp },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"bid_price",
|m: &Bbo| { &m.bid_price },
|m: &mut Bbo| { &mut m.bid_price },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"bid_quantity_base",
|m: &Bbo| { &m.bid_quantity_base },
|m: &mut Bbo| { &mut m.bid_quantity_base },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"bid_quantity_quote",
|m: &Bbo| { &m.bid_quantity_quote },
|m: &mut Bbo| { &mut m.bid_quantity_quote },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"bid_quantity_contract",
|m: &Bbo| { &m.bid_quantity_contract },
|m: &mut Bbo| { &mut m.bid_quantity_contract },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"ask_price",
|m: &Bbo| { &m.ask_price },
|m: &mut Bbo| { &mut m.ask_price },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"ask_quantity_base",
|m: &Bbo| { &m.ask_quantity_base },
|m: &mut Bbo| { &mut m.ask_quantity_base },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"ask_quantity_quote",
|m: &Bbo| { &m.ask_quantity_quote },
|m: &mut Bbo| { &mut m.ask_quantity_quote },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"ask_quantity_contract",
|m: &Bbo| { &m.ask_quantity_contract },
|m: &mut Bbo| { &mut m.ask_quantity_contract },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Bbo>(
"Bbo",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Bbo {
const NAME: &'static str = "Bbo";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
::protobuf::rt::read_singular_message_into_field(is, &mut self.timestamp)?;
},
21 => {
self.bid_price = is.read_float()?;
},
29 => {
self.bid_quantity_base = is.read_float()?;
},
37 => {
self.bid_quantity_quote = is.read_float()?;
},
45 => {
self.bid_quantity_contract = ::std::option::Option::Some(is.read_float()?);
},
53 => {
self.ask_price = is.read_float()?;
},
61 => {
self.ask_quantity_base = is.read_float()?;
},
69 => {
self.ask_quantity_quote = is.read_float()?;
},
77 => {
self.ask_quantity_contract = ::std::option::Option::Some(is.read_float()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if let Some(v) = self.timestamp.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
}
if self.bid_price != 0. {
my_size += 1 + 4;
}
if self.bid_quantity_base != 0. {
my_size += 1 + 4;
}
if self.bid_quantity_quote != 0. {
my_size += 1 + 4;
}
if let Some(v) = self.bid_quantity_contract {
my_size += 1 + 4;
}
if self.ask_price != 0. {
my_size += 1 + 4;
}
if self.ask_quantity_base != 0. {
my_size += 1 + 4;
}
if self.ask_quantity_quote != 0. {
my_size += 1 + 4;
}
if let Some(v) = self.ask_quantity_contract {
my_size += 1 + 4;
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if let Some(v) = self.timestamp.as_ref() {
::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
}
if self.bid_price != 0. {
os.write_float(2, self.bid_price)?;
}
if self.bid_quantity_base != 0. {
os.write_float(3, self.bid_quantity_base)?;
}
if self.bid_quantity_quote != 0. {
os.write_float(4, self.bid_quantity_quote)?;
}
if let Some(v) = self.bid_quantity_contract {
os.write_float(5, v)?;
}
if self.ask_price != 0. {
os.write_float(6, self.ask_price)?;
}
if self.ask_quantity_base != 0. {
os.write_float(7, self.ask_quantity_base)?;
}
if self.ask_quantity_quote != 0. {
os.write_float(8, self.ask_quantity_quote)?;
}
if let Some(v) = self.ask_quantity_contract {
os.write_float(9, v)?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Bbo {
Bbo::new()
}
fn clear(&mut self) {
self.timestamp.clear();
self.bid_price = 0.;
self.bid_quantity_base = 0.;
self.bid_quantity_quote = 0.;
self.bid_quantity_contract = ::std::option::Option::None;
self.ask_price = 0.;
self.ask_quantity_base = 0.;
self.ask_quantity_quote = 0.;
self.ask_quantity_contract = ::std::option::Option::None;
self.special_fields.clear();
}
fn default_instance() -> &'static Bbo {
static instance: Bbo = Bbo {
timestamp: ::protobuf::MessageField::none(),
bid_price: 0.,
bid_quantity_base: 0.,
bid_quantity_quote: 0.,
bid_quantity_contract: ::std::option::Option::None,
ask_price: 0.,
ask_quantity_base: 0.,
ask_quantity_quote: 0.,
ask_quantity_contract: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Bbo {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Bbo").unwrap()).clone()
}
}
impl ::std::fmt::Display for Bbo {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Bbo {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
#[derive(PartialEq,Clone,Default,Debug)]
pub struct Ticker {
pub timestamp: ::protobuf::MessageField<::protobuf::well_known_types::timestamp::Timestamp>,
pub open: f32,
pub high: f32,
pub low: f32,
pub close: f32,
pub volume: f32,
pub quote_volume: f32,
pub last_quantity: ::std::option::Option<f32>,
pub best_bid_price: ::std::option::Option<f32>,
pub best_bid_quantity: ::std::option::Option<f32>,
pub best_ask_price: ::std::option::Option<f32>,
pub best_ask_quantity: ::std::option::Option<f32>,
pub open_interest: ::std::option::Option<f32>,
pub open_interest_quote: ::std::option::Option<f32>,
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a Ticker {
fn default() -> &'a Ticker {
<Ticker as ::protobuf::Message>::default_instance()
}
}
impl Ticker {
pub fn new() -> Ticker {
::std::default::Default::default()
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(14);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, ::protobuf::well_known_types::timestamp::Timestamp>(
"timestamp",
|m: &Ticker| { &m.timestamp },
|m: &mut Ticker| { &mut m.timestamp },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"open",
|m: &Ticker| { &m.open },
|m: &mut Ticker| { &mut m.open },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"high",
|m: &Ticker| { &m.high },
|m: &mut Ticker| { &mut m.high },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"low",
|m: &Ticker| { &m.low },
|m: &mut Ticker| { &mut m.low },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"close",
|m: &Ticker| { &m.close },
|m: &mut Ticker| { &mut m.close },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"volume",
|m: &Ticker| { &m.volume },
|m: &mut Ticker| { &mut m.volume },
));
fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>(
"quote_volume",
|m: &Ticker| { &m.quote_volume },
|m: &mut Ticker| { &mut m.quote_volume },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"last_quantity",
|m: &Ticker| { &m.last_quantity },
|m: &mut Ticker| { &mut m.last_quantity },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"best_bid_price",
|m: &Ticker| { &m.best_bid_price },
|m: &mut Ticker| { &mut m.best_bid_price },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"best_bid_quantity",
|m: &Ticker| { &m.best_bid_quantity },
|m: &mut Ticker| { &mut m.best_bid_quantity },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"best_ask_price",
|m: &Ticker| { &m.best_ask_price },
|m: &mut Ticker| { &mut m.best_ask_price },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"best_ask_quantity",
|m: &Ticker| { &m.best_ask_quantity },
|m: &mut Ticker| { &mut m.best_ask_quantity },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"open_interest",
|m: &Ticker| { &m.open_interest },
|m: &mut Ticker| { &mut m.open_interest },
));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"open_interest_quote",
|m: &Ticker| { &m.open_interest_quote },
|m: &mut Ticker| { &mut m.open_interest_quote },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<Ticker>(
"Ticker",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for Ticker {
const NAME: &'static str = "Ticker";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
match tag {
10 => {
::protobuf::rt::read_singular_message_into_field(is, &mut self.timestamp)?;
},
21 => {
self.open = is.read_float()?;
},
29 => {
self.high = is.read_float()?;
},
37 => {
self.low = is.read_float()?;
},
45 => {
self.close = is.read_float()?;
},
53 => {
self.volume = is.read_float()?;
},
61 => {
self.quote_volume = is.read_float()?;
},
69 => {
self.last_quantity = ::std::option::Option::Some(is.read_float()?);
},
77 => {
self.best_bid_price = ::std::option::Option::Some(is.read_float()?);
},
85 => {
self.best_bid_quantity = ::std::option::Option::Some(is.read_float()?);
},
93 => {
self.best_ask_price = ::std::option::Option::Some(is.read_float()?);
},
101 => {
self.best_ask_quantity = ::std::option::Option::Some(is.read_float()?);
},
109 => {
self.open_interest = ::std::option::Option::Some(is.read_float()?);
},
117 => {
self.open_interest_quote = ::std::option::Option::Some(is.read_float()?);
},
tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
if let Some(v) = self.timestamp.as_ref() {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
}
if self.open != 0. {
my_size += 1 + 4;
}
if self.high != 0. {
my_size += 1 + 4;
}
if self.low != 0. {
my_size += 1 + 4;
}
if self.close != 0. {
my_size += 1 + 4;
}
if self.volume != 0. {
my_size += 1 + 4;
}
if self.quote_volume != 0. {
my_size += 1 + 4;
}
if let Some(v) = self.last_quantity {
my_size += 1 + 4;
}
if let Some(v) = self.best_bid_price {
my_size += 1 + 4;
}
if let Some(v) = self.best_bid_quantity {
my_size += 1 + 4;
}
if let Some(v) = self.best_ask_price {
my_size += 1 + 4;
}
if let Some(v) = self.best_ask_quantity {
my_size += 1 + 4;
}
if let Some(v) = self.open_interest {
my_size += 1 + 4;
}
if let Some(v) = self.open_interest_quote {
my_size += 1 + 4;
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
if let Some(v) = self.timestamp.as_ref() {
::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
}
if self.open != 0. {
os.write_float(2, self.open)?;
}
if self.high != 0. {
os.write_float(3, self.high)?;
}
if self.low != 0. {
os.write_float(4, self.low)?;
}
if self.close != 0. {
os.write_float(5, self.close)?;
}
if self.volume != 0. {
os.write_float(6, self.volume)?;
}
if self.quote_volume != 0. {
os.write_float(7, self.quote_volume)?;
}
if let Some(v) = self.last_quantity {
os.write_float(8, v)?;
}
if let Some(v) = self.best_bid_price {
os.write_float(9, v)?;
}
if let Some(v) = self.best_bid_quantity {
os.write_float(10, v)?;
}
if let Some(v) = self.best_ask_price {
os.write_float(11, v)?;
}
if let Some(v) = self.best_ask_quantity {
os.write_float(12, v)?;
}
if let Some(v) = self.open_interest {
os.write_float(13, v)?;
}
if let Some(v) = self.open_interest_quote {
os.write_float(14, v)?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &::protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> Ticker {
Ticker::new()
}
fn clear(&mut self) {
self.timestamp.clear();
self.open = 0.;
self.high = 0.;
self.low = 0.;
self.close = 0.;
self.volume = 0.;
self.quote_volume = 0.;
self.last_quantity = ::std::option::Option::None;
self.best_bid_price = ::std::option::Option::None;
self.best_bid_quantity = ::std::option::Option::None;
self.best_ask_price = ::std::option::Option::None;
self.best_ask_quantity = ::std::option::Option::None;
self.open_interest = ::std::option::Option::None;
self.open_interest_quote = ::std::option::Option::None;
self.special_fields.clear();
}
fn default_instance() -> &'static Ticker {
static instance: Ticker = Ticker {
timestamp: ::protobuf::MessageField::none(),
open: 0.,
high: 0.,
low: 0.,
close: 0.,
volume: 0.,
quote_volume: 0.,
last_quantity: ::std::option::Option::None,
best_bid_price: ::std::option::Option::None,
best_bid_quantity: ::std::option::Option::None,
best_ask_price: ::std::option::Option::None,
best_ask_quantity: ::std::option::Option::None,
open_interest: ::std::option::Option::None,
open_interest_quote: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for Ticker {
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
descriptor.get(|| file_descriptor().message_by_package_relative_name("Ticker").unwrap()).clone()
}
}
impl ::std::fmt::Display for Ticker {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Ticker {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
static file_descriptor_proto_data: &'static [u8] = b"\
\n\rmessage.proto\x12\x0ecrypto_crawler\x1a\x1fgoogle/protobuf/timestamp\
.proto\"\xff\x01\n\x05Trade\x128\n\ttimestamp\x18\x01\x20\x01(\x0b2\x1a.\
google.protobuf.TimestampR\ttimestamp\x12\x12\n\x04side\x18\x02\x20\x01(\
\x08R\x04side\x12\x14\n\x05price\x18\x03\x20\x01(\x02R\x05price\x12#\n\r\
quantity_base\x18\x04\x20\x01(\x02R\x0cquantityBase\x12%\n\x0equantity_q\
uote\x18\x05\x20\x01(\x02R\rquantityQuote\x120\n\x11quantity_contract\
\x18\x06\x20\x01(\x02H\0R\x10quantityContract\x88\x01\x01B\x14\n\x12_qua\
ntity_contract\"\xff\x02\n\tOrderbook\x128\n\ttimestamp\x18\x01\x20\x01(\
\x0b2\x1a.google.protobuf.TimestampR\ttimestamp\x12\x1a\n\x08snapshot\
\x18\x02\x20\x01(\x08R\x08snapshot\x123\n\x04asks\x18\x03\x20\x03(\x0b2\
\x1f.crypto_crawler.Orderbook.OrderR\x04asks\x123\n\x04bids\x18\x04\x20\
\x03(\x0b2\x1f.crypto_crawler.Orderbook.OrderR\x04bids\x1a\xb1\x01\n\x05\
Order\x12\x14\n\x05price\x18\x01\x20\x01(\x02R\x05price\x12#\n\rquantity\
_base\x18\x02\x20\x01(\x02R\x0cquantityBase\x12%\n\x0equantity_quote\x18\
\x03\x20\x01(\x02R\rquantityQuote\x120\n\x11quantity_contract\x18\x04\
\x20\x01(\x02H\0R\x10quantityContract\x88\x01\x01B\x14\n\x12_quantity_co\
ntract\"\xd3\x03\n\x03Bbo\x128\n\ttimestamp\x18\x01\x20\x01(\x0b2\x1a.go\
ogle.protobuf.TimestampR\ttimestamp\x12\x1b\n\tbid_price\x18\x02\x20\x01\
(\x02R\x08bidPrice\x12*\n\x11bid_quantity_base\x18\x03\x20\x01(\x02R\x0f\
bidQuantityBase\x12,\n\x12bid_quantity_quote\x18\x04\x20\x01(\x02R\x10bi\
dQuantityQuote\x127\n\x15bid_quantity_contract\x18\x05\x20\x01(\x02H\0R\
\x13bidQuantityContract\x88\x01\x01\x12\x1b\n\task_price\x18\x06\x20\x01\
(\x02R\x08askPrice\x12*\n\x11ask_quantity_base\x18\x07\x20\x01(\x02R\x0f\
askQuantityBase\x12,\n\x12ask_quantity_quote\x18\x08\x20\x01(\x02R\x10as\
kQuantityQuote\x127\n\x15ask_quantity_contract\x18\t\x20\x01(\x02H\x01R\
\x13askQuantityContract\x88\x01\x01B\x18\n\x16_bid_quantity_contractB\
\x18\n\x16_ask_quantity_contract\"\x9c\x05\n\x06Ticker\x128\n\ttimestamp\
\x18\x01\x20\x01(\x0b2\x1a.google.protobuf.TimestampR\ttimestamp\x12\x12\
\n\x04open\x18\x02\x20\x01(\x02R\x04open\x12\x12\n\x04high\x18\x03\x20\
\x01(\x02R\x04high\x12\x10\n\x03low\x18\x04\x20\x01(\x02R\x03low\x12\x14\
\n\x05close\x18\x05\x20\x01(\x02R\x05close\x12\x16\n\x06volume\x18\x06\
\x20\x01(\x02R\x06volume\x12!\n\x0cquote_volume\x18\x07\x20\x01(\x02R\
\x0bquoteVolume\x12(\n\rlast_quantity\x18\x08\x20\x01(\x02H\0R\x0clastQu\
antity\x88\x01\x01\x12)\n\x0ebest_bid_price\x18\t\x20\x01(\x02H\x01R\x0c\
bestBidPrice\x88\x01\x01\x12/\n\x11best_bid_quantity\x18\n\x20\x01(\x02H\
\x02R\x0fbestBidQuantity\x88\x01\x01\x12)\n\x0ebest_ask_price\x18\x0b\
\x20\x01(\x02H\x03R\x0cbestAskPrice\x88\x01\x01\x12/\n\x11best_ask_quant\
ity\x18\x0c\x20\x01(\x02H\x04R\x0fbestAskQuantity\x88\x01\x01\x12(\n\rop\
en_interest\x18\r\x20\x01(\x02H\x05R\x0copenInterest\x88\x01\x01\x123\n\
\x13open_interest_quote\x18\x0e\x20\x01(\x02H\x06R\x11openInterestQuote\
\x88\x01\x01B\x10\n\x0e_last_quantityB\x11\n\x0f_best_bid_priceB\x14\n\
\x12_best_bid_quantityB\x11\n\x0f_best_ask_priceB\x14\n\x12_best_ask_qua\
ntityB\x10\n\x0e_open_interestB\x16\n\x14_open_interest_quoteJ\x9f\x18\n\
\x06\x12\x04\0\0G\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\x08\n\x01\x02\
\x12\x03\x01\0\x17\n\t\n\x02\x03\0\x12\x03\x03\0)\n)\n\x02\x04\0\x12\x04\
\x07\0\x12\x01\x1a\x1d\x20Tick-by-tick\x20trade\x20message.\n\n\n\n\x03\
\x04\0\x01\x12\x03\x07\x08\r\n\x0b\n\x04\x04\0\x02\0\x12\x03\x08\x02*\n\
\x0c\n\x05\x04\0\x02\0\x06\x12\x03\x08\x02\x1b\n\x0c\n\x05\x04\0\x02\0\
\x01\x12\x03\x08\x1c%\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x08()\nP\n\x04\
\x04\0\x02\x01\x12\x03\n\x02\x10\x1aC\x20Which\x20side\x20is\x20taker?\
\x20True,\x20seller\x20is\x20taker;\x20False,\x20buyer\x20is\x20taker\n\
\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\n\x02\x06\n\x0c\n\x05\x04\0\x02\
\x01\x01\x12\x03\n\x07\x0b\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\n\x0e\
\x0f\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x0b\x02\x12\n\x0c\n\x05\x04\0\x02\
\x02\x05\x12\x03\x0b\x02\x07\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x0b\
\x08\r\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x0b\x10\x11\n3\n\x04\x04\0\
\x02\x03\x12\x03\r\x02\x1a\x1a&\x20Number\x20of\x20base\x20coins,\x200\
\x20means\x20delete\n\n\x0c\n\x05\x04\0\x02\x03\x05\x12\x03\r\x02\x07\n\
\x0c\n\x05\x04\0\x02\x03\x01\x12\x03\r\x08\x15\n\x0c\n\x05\x04\0\x02\x03\
\x03\x12\x03\r\x18\x19\n4\n\x04\x04\0\x02\x04\x12\x03\x0f\x02\x1b\x1a'\
\x20Number\x20of\x20quote\x20coins,\x200\x20means\x20delete\n\n\x0c\n\
\x05\x04\0\x02\x04\x05\x12\x03\x0f\x02\x07\n\x0c\n\x05\x04\0\x02\x04\x01\
\x12\x03\x0f\x08\x16\n\x0c\n\x05\x04\0\x02\x04\x03\x12\x03\x0f\x19\x1a\n\
:\n\x04\x04\0\x02\x05\x12\x03\x11\x02'\x1a-\x20Number\x20of\x20contracts\
,\x20empty\x20for\x20spot\x20markets\n\n\x0c\n\x05\x04\0\x02\x05\x04\x12\
\x03\x11\x02\n\n\x0c\n\x05\x04\0\x02\x05\x05\x12\x03\x11\x0b\x10\n\x0c\n\
\x05\x04\0\x02\x05\x01\x12\x03\x11\x11\"\n\x0c\n\x05\x04\0\x02\x05\x03\
\x12\x03\x11%&\n\x1f\n\x02\x04\x01\x12\x04\x15\0&\x01\x1a\x13\x20Level2\
\x20orderbook.\n\n\n\n\x03\x04\x01\x01\x12\x03\x15\x08\x11\n\x0c\n\x04\
\x04\x01\x03\0\x12\x04\x16\x02\x1e\x03\n\x0c\n\x05\x04\x01\x03\0\x01\x12\
\x03\x16\n\x0f\n\r\n\x06\x04\x01\x03\0\x02\0\x12\x03\x17\x04\x14\n\x0e\n\
\x07\x04\x01\x03\0\x02\0\x05\x12\x03\x17\x04\t\n\x0e\n\x07\x04\x01\x03\0\
\x02\0\x01\x12\x03\x17\n\x0f\n\x0e\n\x07\x04\x01\x03\0\x02\0\x03\x12\x03\
\x17\x12\x13\n5\n\x06\x04\x01\x03\0\x02\x01\x12\x03\x19\x04\x1c\x1a&\x20\
Number\x20of\x20base\x20coins,\x200\x20means\x20delete\n\n\x0e\n\x07\x04\
\x01\x03\0\x02\x01\x05\x12\x03\x19\x04\t\n\x0e\n\x07\x04\x01\x03\0\x02\
\x01\x01\x12\x03\x19\n\x17\n\x0e\n\x07\x04\x01\x03\0\x02\x01\x03\x12\x03\
\x19\x1a\x1b\n6\n\x06\x04\x01\x03\0\x02\x02\x12\x03\x1b\x04\x1d\x1a'\x20\
Number\x20of\x20quote\x20coins,\x200\x20means\x20delete\n\n\x0e\n\x07\
\x04\x01\x03\0\x02\x02\x05\x12\x03\x1b\x04\t\n\x0e\n\x07\x04\x01\x03\0\
\x02\x02\x01\x12\x03\x1b\n\x18\n\x0e\n\x07\x04\x01\x03\0\x02\x02\x03\x12\
\x03\x1b\x1b\x1c\n<\n\x06\x04\x01\x03\0\x02\x03\x12\x03\x1d\x04)\x1a-\
\x20Number\x20of\x20contracts,\x20empty\x20for\x20spot\x20markets\n\n\
\x0e\n\x07\x04\x01\x03\0\x02\x03\x04\x12\x03\x1d\x04\x0c\n\x0e\n\x07\x04\
\x01\x03\0\x02\x03\x05\x12\x03\x1d\r\x12\n\x0e\n\x07\x04\x01\x03\0\x02\
\x03\x01\x12\x03\x1d\x13$\n\x0e\n\x07\x04\x01\x03\0\x02\x03\x03\x12\x03\
\x1d'(\n\x0b\n\x04\x04\x01\x02\0\x12\x03\x1f\x02*\n\x0c\n\x05\x04\x01\
\x02\0\x06\x12\x03\x1f\x02\x1b\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03\x1f\
\x1c%\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03\x1f()\n\"\n\x04\x04\x01\x02\
\x01\x12\x03!\x02\x14\x1a\x15\x20snapshot\x20or\x20updates\n\n\x0c\n\x05\
\x04\x01\x02\x01\x05\x12\x03!\x02\x06\n\x0c\n\x05\x04\x01\x02\x01\x01\
\x12\x03!\x07\x0f\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03!\x12\x13\nX\n\
\x04\x04\x01\x02\x02\x12\x03#\x02\x1a\x1aK\x20sorted\x20in\x20ascending\
\x20order\x20by\x20price\x20if\x20snapshot=true,\x20otherwise\x20not\x20\
sorted\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03#\x02\n\n\x0c\n\x05\x04\
\x01\x02\x02\x06\x12\x03#\x0b\x10\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\
\x03#\x11\x15\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03#\x18\x19\nY\n\x04\
\x04\x01\x02\x03\x12\x03%\x02\x1a\x1aL\x20sorted\x20in\x20descending\x20\
order\x20by\x20price\x20if\x20snapshot=true,\x20otherwise\x20not\x20sort\
ed\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03%\x02\n\n\x0c\n\x05\x04\x01\
\x02\x03\x06\x12\x03%\x0b\x10\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03%\
\x11\x15\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03%\x18\x19\n!\n\x02\x04\
\x02\x12\x04)\03\x01\x1a\x15\x20Best\x20bid\x20and\x20offer.\n\n\n\n\x03\
\x04\x02\x01\x12\x03)\x08\x0b\n\x0b\n\x04\x04\x02\x02\0\x12\x03*\x02*\n\
\x0c\n\x05\x04\x02\x02\0\x06\x12\x03*\x02\x1b\n\x0c\n\x05\x04\x02\x02\0\
\x01\x12\x03*\x1c%\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03*()\n\x0b\n\x04\
\x04\x02\x02\x01\x12\x03+\x02\x16\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\
\x03+\x02\x07\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03+\x08\x11\n\x0c\n\
\x05\x04\x02\x02\x01\x03\x12\x03+\x14\x15\n\x0b\n\x04\x04\x02\x02\x02\
\x12\x03,\x02\x1e\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03,\x02\x07\n\x0c\
\n\x05\x04\x02\x02\x02\x01\x12\x03,\x08\x19\n\x0c\n\x05\x04\x02\x02\x02\
\x03\x12\x03,\x1c\x1d\n\x0b\n\x04\x04\x02\x02\x03\x12\x03-\x02\x1f\n\x0c\
\n\x05\x04\x02\x02\x03\x05\x12\x03-\x02\x07\n\x0c\n\x05\x04\x02\x02\x03\
\x01\x12\x03-\x08\x1a\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03-\x1d\x1e\n\
\x0b\n\x04\x04\x02\x02\x04\x12\x03.\x02+\n\x0c\n\x05\x04\x02\x02\x04\x04\
\x12\x03.\x02\n\n\x0c\n\x05\x04\x02\x02\x04\x05\x12\x03.\x0b\x10\n\x0c\n\
\x05\x04\x02\x02\x04\x01\x12\x03.\x11&\n\x0c\n\x05\x04\x02\x02\x04\x03\
\x12\x03.)*\n\x0b\n\x04\x04\x02\x02\x05\x12\x03/\x02\x16\n\x0c\n\x05\x04\
\x02\x02\x05\x05\x12\x03/\x02\x07\n\x0c\n\x05\x04\x02\x02\x05\x01\x12\
\x03/\x08\x11\n\x0c\n\x05\x04\x02\x02\x05\x03\x12\x03/\x14\x15\n\x0b\n\
\x04\x04\x02\x02\x06\x12\x030\x02\x1e\n\x0c\n\x05\x04\x02\x02\x06\x05\
\x12\x030\x02\x07\n\x0c\n\x05\x04\x02\x02\x06\x01\x12\x030\x08\x19\n\x0c\
\n\x05\x04\x02\x02\x06\x03\x12\x030\x1c\x1d\n\x0b\n\x04\x04\x02\x02\x07\
\x12\x031\x02\x1f\n\x0c\n\x05\x04\x02\x02\x07\x05\x12\x031\x02\x07\n\x0c\
\n\x05\x04\x02\x02\x07\x01\x12\x031\x08\x1a\n\x0c\n\x05\x04\x02\x02\x07\
\x03\x12\x031\x1d\x1e\n\x0b\n\x04\x04\x02\x02\x08\x12\x032\x02+\n\x0c\n\
\x05\x04\x02\x02\x08\x04\x12\x032\x02\n\n\x0c\n\x05\x04\x02\x02\x08\x05\
\x12\x032\x0b\x10\n\x0c\n\x05\x04\x02\x02\x08\x01\x12\x032\x11&\n\x0c\n\
\x05\x04\x02\x02\x08\x03\x12\x032)*\n)\n\x02\x04\x03\x12\x046\0G\x01\x1a\
\x1d\x2024hr\x20rolling\x20window\x20ticker.\n\n\n\n\x03\x04\x03\x01\x12\
\x036\x08\x0e\n\x0b\n\x04\x04\x03\x02\0\x12\x037\x02*\n\x0c\n\x05\x04\
\x03\x02\0\x06\x12\x037\x02\x1b\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x037\
\x1c%\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x037()\n\x0b\n\x04\x04\x03\x02\
\x01\x12\x038\x02\x11\n\x0c\n\x05\x04\x03\x02\x01\x05\x12\x038\x02\x07\n\
\x0c\n\x05\x04\x03\x02\x01\x01\x12\x038\x08\x0c\n\x0c\n\x05\x04\x03\x02\
\x01\x03\x12\x038\x0f\x10\n\x0b\n\x04\x04\x03\x02\x02\x12\x039\x02\x11\n\
\x0c\n\x05\x04\x03\x02\x02\x05\x12\x039\x02\x07\n\x0c\n\x05\x04\x03\x02\
\x02\x01\x12\x039\x08\x0c\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x039\x0f\
\x10\n\x0b\n\x04\x04\x03\x02\x03\x12\x03:\x02\x10\n\x0c\n\x05\x04\x03\
\x02\x03\x05\x12\x03:\x02\x07\n\x0c\n\x05\x04\x03\x02\x03\x01\x12\x03:\
\x08\x0b\n\x0c\n\x05\x04\x03\x02\x03\x03\x12\x03:\x0e\x0f\n\x0b\n\x04\
\x04\x03\x02\x04\x12\x03;\x02\x12\n\x0c\n\x05\x04\x03\x02\x04\x05\x12\
\x03;\x02\x07\n\x0c\n\x05\x04\x03\x02\x04\x01\x12\x03;\x08\r\n\x0c\n\x05\
\x04\x03\x02\x04\x03\x12\x03;\x10\x11\n\x0b\n\x04\x04\x03\x02\x05\x12\
\x03<\x02\x13\n\x0c\n\x05\x04\x03\x02\x05\x05\x12\x03<\x02\x07\n\x0c\n\
\x05\x04\x03\x02\x05\x01\x12\x03<\x08\x0e\n\x0c\n\x05\x04\x03\x02\x05\
\x03\x12\x03<\x11\x12\n\x0b\n\x04\x04\x03\x02\x06\x12\x03=\x02\x19\n\x0c\
\n\x05\x04\x03\x02\x06\x05\x12\x03=\x02\x07\n\x0c\n\x05\x04\x03\x02\x06\
\x01\x12\x03=\x08\x14\n\x0c\n\x05\x04\x03\x02\x06\x03\x12\x03=\x17\x18\n\
\x0b\n\x04\x04\x03\x02\x07\x12\x03>\x02#\n\x0c\n\x05\x04\x03\x02\x07\x04\
\x12\x03>\x02\n\n\x0c\n\x05\x04\x03\x02\x07\x05\x12\x03>\x0b\x10\n\x0c\n\
\x05\x04\x03\x02\x07\x01\x12\x03>\x11\x1e\n\x0c\n\x05\x04\x03\x02\x07\
\x03\x12\x03>!\"\n\x0b\n\x04\x04\x03\x02\x08\x12\x03?\x02$\n\x0c\n\x05\
\x04\x03\x02\x08\x04\x12\x03?\x02\n\n\x0c\n\x05\x04\x03\x02\x08\x05\x12\
\x03?\x0b\x10\n\x0c\n\x05\x04\x03\x02\x08\x01\x12\x03?\x11\x1f\n\x0c\n\
\x05\x04\x03\x02\x08\x03\x12\x03?\"#\n\x0b\n\x04\x04\x03\x02\t\x12\x03@\
\x02(\n\x0c\n\x05\x04\x03\x02\t\x04\x12\x03@\x02\n\n\x0c\n\x05\x04\x03\
\x02\t\x05\x12\x03@\x0b\x10\n\x0c\n\x05\x04\x03\x02\t\x01\x12\x03@\x11\"\
\n\x0c\n\x05\x04\x03\x02\t\x03\x12\x03@%'\n\x0b\n\x04\x04\x03\x02\n\x12\
\x03A\x02%\n\x0c\n\x05\x04\x03\x02\n\x04\x12\x03A\x02\n\n\x0c\n\x05\x04\
\x03\x02\n\x05\x12\x03A\x0b\x10\n\x0c\n\x05\x04\x03\x02\n\x01\x12\x03A\
\x11\x1f\n\x0c\n\x05\x04\x03\x02\n\x03\x12\x03A\"$\n\x0b\n\x04\x04\x03\
\x02\x0b\x12\x03B\x02(\n\x0c\n\x05\x04\x03\x02\x0b\x04\x12\x03B\x02\n\n\
\x0c\n\x05\x04\x03\x02\x0b\x05\x12\x03B\x0b\x10\n\x0c\n\x05\x04\x03\x02\
\x0b\x01\x12\x03B\x11\"\n\x0c\n\x05\x04\x03\x02\x0b\x03\x12\x03B%'\n3\n\
\x04\x04\x03\x02\x0c\x12\x03D\x02$\x1a&\x20availale\x20in\x20Futures\x20\
and\x20Swap\x20markets\n\n\x0c\n\x05\x04\x03\x02\x0c\x04\x12\x03D\x02\n\
\n\x0c\n\x05\x04\x03\x02\x0c\x05\x12\x03D\x0b\x10\n\x0c\n\x05\x04\x03\
\x02\x0c\x01\x12\x03D\x11\x1e\n\x0c\n\x05\x04\x03\x02\x0c\x03\x12\x03D!#\
\n3\n\x04\x04\x03\x02\r\x12\x03F\x02*\x1a&\x20availale\x20in\x20Futures\
\x20and\x20Swap\x20markets\n\n\x0c\n\x05\x04\x03\x02\r\x04\x12\x03F\x02\
\n\n\x0c\n\x05\x04\x03\x02\r\x05\x12\x03F\x0b\x10\n\x0c\n\x05\x04\x03\
\x02\r\x01\x12\x03F\x11$\n\x0c\n\x05\x04\x03\x02\r\x03\x12\x03F')b\x06pr\
oto3\
";
fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
static file_descriptor_proto_lazy: ::protobuf::rt::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::Lazy::new();
file_descriptor_proto_lazy.get(|| {
::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
})
}
pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
static generated_file_descriptor_lazy: ::protobuf::rt::Lazy<::protobuf::reflect::GeneratedFileDescriptor> = ::protobuf::rt::Lazy::new();
static file_descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::FileDescriptor> = ::protobuf::rt::Lazy::new();
file_descriptor.get(|| {
let generated_file_descriptor = generated_file_descriptor_lazy.get(|| {
let mut deps = ::std::vec::Vec::with_capacity(1);
deps.push(::protobuf::well_known_types::timestamp::file_descriptor().clone());
let mut messages = ::std::vec::Vec::with_capacity(5);
messages.push(Trade::generated_message_descriptor_data());
messages.push(Orderbook::generated_message_descriptor_data());
messages.push(Bbo::generated_message_descriptor_data());
messages.push(Ticker::generated_message_descriptor_data());
messages.push(orderbook::Order::generated_message_descriptor_data());
let mut enums = ::std::vec::Vec::with_capacity(0);
::protobuf::reflect::GeneratedFileDescriptor::new_generated(
file_descriptor_proto(),
deps,
messages,
enums,
)
});
::protobuf::reflect::FileDescriptor::new_generated_2(generated_file_descriptor)
})
}