1#[allow(clippy::derive_partial_eq_without_eq)]
9#[derive(Clone, PartialEq, ::prost::Message)]
10pub struct Pair {
11 #[prost(string, tag="1")]
13 pub name: ::prost::alloc::string::String,
14 #[prost(int32, tag="2")]
16 pub id: i32,
17 #[prost(string, tag="3")]
19 pub display_name: ::prost::alloc::string::String,
20 #[prost(int32, tag="4")]
22 pub portfolio_id: i32,
23 #[prost(message, optional, tag="5")]
25 pub base: ::core::option::Option<PairEntry>,
26 #[prost(message, optional, tag="6")]
28 pub counter: ::core::option::Option<PairEntry>,
29 #[prost(enumeration="PairStatus", tag="9")]
31 pub status: i32,
32 #[prost(message, optional, tag="10")]
34 pub mode: ::core::option::Option<PairMode>,
35 #[prost(message, optional, tag="11")]
37 pub create_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
38 #[prost(message, optional, tag="12")]
40 pub update_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
41}
42#[allow(clippy::derive_partial_eq_without_eq)]
48#[derive(Clone, PartialEq, ::prost::Message)]
49pub struct PairEntry {
50 #[prost(string, tag="1")]
52 pub symbol: ::prost::alloc::string::String,
53 #[prost(string, tag="2")]
55 pub fund_code: ::prost::alloc::string::String,
56 #[prost(enumeration="PairSide", tag="3")]
58 pub side: i32,
59 #[prost(int64, tag="4")]
61 pub quantity: i64,
62 #[prost(enumeration="PriceSource", tag="5")]
64 pub price_source: i32,
65 #[prost(int32, tag="6")]
68 pub price_offset_ticks: i32,
69}
70#[allow(clippy::derive_partial_eq_without_eq)]
76#[derive(Clone, Copy, PartialEq, ::prost::Message)]
77pub struct PairCondition {
78 #[prost(oneof="pair_condition::Kind", tags="1, 2, 3")]
79 pub kind: ::core::option::Option<pair_condition::Kind>,
80}
81pub mod pair_condition {
83 #[allow(clippy::derive_partial_eq_without_eq)]
84#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
85 pub enum Kind {
86 #[prost(message, tag="1")]
88 SpreadAmount(super::SpreadAmountCondition),
89 #[prost(message, tag="2")]
91 SpreadBps(super::SpreadBpsCondition),
92 #[prost(message, tag="3")]
94 PriceRatio(super::PriceRatioCondition),
95 }
96}
97#[allow(clippy::derive_partial_eq_without_eq)]
99#[derive(Clone, Copy, PartialEq, ::prost::Message)]
100pub struct SpreadAmountCondition {
101 #[prost(int64, tag="1")]
103 pub threshold: i64,
104 #[prost(enumeration="SpreadDirection", tag="2")]
106 pub direction: i32,
107}
108#[allow(clippy::derive_partial_eq_without_eq)]
110#[derive(Clone, Copy, PartialEq, ::prost::Message)]
111pub struct SpreadBpsCondition {
112 #[prost(double, tag="1")]
114 pub threshold_bps: f64,
115 #[prost(enumeration="SpreadDirection", tag="2")]
117 pub direction: i32,
118}
119#[allow(clippy::derive_partial_eq_without_eq)]
121#[derive(Clone, Copy, PartialEq, ::prost::Message)]
122pub struct PriceRatioCondition {
123 #[prost(double, tag="1")]
125 pub min_ratio: f64,
126 #[prost(double, tag="2")]
128 pub max_ratio: f64,
129}
130#[allow(clippy::derive_partial_eq_without_eq)]
136#[derive(Clone, Copy, PartialEq, ::prost::Message)]
137pub struct PairMode {
138 #[prost(oneof="pair_mode::Kind", tags="1, 2, 3")]
139 pub kind: ::core::option::Option<pair_mode::Kind>,
140}
141pub mod pair_mode {
143 #[allow(clippy::derive_partial_eq_without_eq)]
144#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
145 pub enum Kind {
146 #[prost(message, tag="1")]
148 SimultaneousCompare(super::SimultaneousCompare),
149 #[prost(message, tag="2")]
151 PricingMakerTaker(super::PricingMakerTaker),
152 #[prost(message, tag="3")]
154 BaseMakeCounterIocAndBalance(super::BaseMakeCounterIocAndBalance),
155 }
156}
157#[allow(clippy::derive_partial_eq_without_eq)]
159#[derive(Clone, Copy, PartialEq, ::prost::Message)]
160pub struct BaseMakeCounterIocAndBalance {
161 #[prost(bool, tag="3")]
163 pub counter_inverse: bool,
164 #[prost(double, tag="4")]
166 pub imbalance_threshold_ratio: f64,
167 #[prost(double, tag="5")]
169 pub imbalance_recovery_ratio: f64,
170 #[prost(uint64, tag="6")]
172 pub settle_timeout_ms: u64,
173 #[prost(int64, tag="7")]
175 pub reconcile_alert_amount: i64,
176 #[prost(uint64, tag="8")]
178 pub cooldown_ms: u64,
179 #[prost(enumeration="EtfNavKind", tag="9")]
181 pub nav_kind: i32,
182 #[prost(int64, tag="10")]
184 pub bid_basis: i64,
185 #[prost(int64, tag="11")]
187 pub ask_basis: i64,
188}
189#[allow(clippy::derive_partial_eq_without_eq)]
191#[derive(Clone, Copy, PartialEq, ::prost::Message)]
192pub struct SimultaneousCompare {
193 #[prost(message, optional, tag="1")]
195 pub condition: ::core::option::Option<PairCondition>,
196 #[prost(enumeration="PairOrderType", tag="2")]
198 pub order_type: i32,
199 #[prost(uint64, tag="3")]
201 pub cooldown_ms: u64,
202 #[prost(bool, tag="4")]
204 pub apply_tick_offset: bool,
205}
206#[allow(clippy::derive_partial_eq_without_eq)]
208#[derive(Clone, Copy, PartialEq, ::prost::Message)]
209pub struct PricingMakerTaker {
210 #[prost(enumeration="PairLeg", tag="1")]
212 pub maker_leg: i32,
213 #[prost(message, optional, tag="2")]
215 pub pricing: ::core::option::Option<PairPricingMethod>,
216 #[prost(message, optional, tag="3")]
218 pub retick: ::core::option::Option<RetickPolicy>,
219 #[prost(enumeration="PairOrderType", tag="4")]
221 pub taker_order_type: i32,
222}
223#[allow(clippy::derive_partial_eq_without_eq)]
229#[derive(Clone, Copy, PartialEq, ::prost::Message)]
230pub struct PairPricingMethod {
231 #[prost(oneof="pair_pricing_method::Method", tags="1, 2")]
232 pub method: ::core::option::Option<pair_pricing_method::Method>,
233}
234pub mod pair_pricing_method {
236 #[allow(clippy::derive_partial_eq_without_eq)]
237#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
238 pub enum Method {
239 #[prost(message, tag="1")]
241 LinearBasis(super::LinearBasis),
242 #[prost(message, tag="2")]
244 EtfNav(super::EtfNav),
245 }
246}
247#[allow(clippy::derive_partial_eq_without_eq)]
249#[derive(Clone, Copy, PartialEq, ::prost::Message)]
250pub struct LinearBasis {
251 #[prost(double, tag="1")]
253 pub multiple: f64,
254 #[prost(int64, tag="2")]
256 pub basis_bid: i64,
257 #[prost(int64, tag="3")]
259 pub basis_ask: i64,
260}
261#[allow(clippy::derive_partial_eq_without_eq)]
263#[derive(Clone, Copy, PartialEq, ::prost::Message)]
264pub struct EtfNav {
265 #[prost(enumeration="EtfNavKind", tag="1")]
267 pub pricing_kind: i32,
268 #[prost(enumeration="NavDirection", tag="2")]
270 pub direction: i32,
271 #[prost(message, optional, tag="3")]
273 pub ctx: ::core::option::Option<PricingContextSnapshot>,
274 #[prost(int64, tag="4")]
276 pub bid_basis: i64,
277 #[prost(int64, tag="5")]
279 pub ask_basis: i64,
280 #[prost(double, tag="6")]
282 pub linear_fallback_multiplier: f64,
283 #[prost(int64, tag="7")]
286 pub prev_index: i64,
287 #[prost(int64, tag="8")]
290 pub prev_future: i64,
291}
292#[allow(clippy::derive_partial_eq_without_eq)]
295#[derive(Clone, Copy, PartialEq, ::prost::Message)]
296pub struct PricingContextSnapshot {
297 #[prost(int64, tag="1")]
299 pub nav0: i64,
300 #[prost(double, tag="2")]
302 pub stock_ratio: f64,
303 #[prost(double, tag="3")]
305 pub actual_leverage: f64,
306 #[prost(int64, tag="4")]
308 pub unit_delta: i64,
309 #[prost(int64, tag="5")]
311 pub cash_per_share: i64,
312 #[prost(int64, optional, tag="6")]
314 pub tracking_multiple: ::core::option::Option<i64>,
315}
316#[allow(clippy::derive_partial_eq_without_eq)]
322#[derive(Clone, Copy, PartialEq, ::prost::Message)]
323pub struct RetickPolicy {
324 #[prost(int32, tag="1")]
326 pub tick_threshold: i32,
327 #[prost(uint64, tag="2")]
329 pub amend_cooldown_ms: u64,
330 #[prost(bool, tag="3")]
332 pub cancel_on_stop: bool,
333}
334#[allow(clippy::derive_partial_eq_without_eq)]
339#[derive(Clone, PartialEq, ::prost::Message)]
340pub struct GetPairRequest {
341 #[prost(string, tag="1")]
343 pub pair: ::prost::alloc::string::String,
344}
345#[allow(clippy::derive_partial_eq_without_eq)]
346#[derive(Clone, PartialEq, ::prost::Message)]
347pub struct ListPairsRequest {
348 #[prost(int32, optional, tag="1")]
350 pub page_size: ::core::option::Option<i32>,
351 #[prost(string, optional, tag="2")]
353 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
354 #[prost(string, tag="3")]
364 pub filter: ::prost::alloc::string::String,
365}
366#[allow(clippy::derive_partial_eq_without_eq)]
367#[derive(Clone, PartialEq, ::prost::Message)]
368pub struct ListPairsResponse {
369 #[prost(message, repeated, tag="1")]
371 pub pairs: ::prost::alloc::vec::Vec<Pair>,
372 #[prost(string, tag="2")]
374 pub next_page_token: ::prost::alloc::string::String,
375}
376#[allow(clippy::derive_partial_eq_without_eq)]
377#[derive(Clone, PartialEq, ::prost::Message)]
378pub struct CreatePairRequest {
379 #[prost(message, optional, tag="1")]
381 pub pair: ::core::option::Option<Pair>,
382}
383#[allow(clippy::derive_partial_eq_without_eq)]
384#[derive(Clone, PartialEq, ::prost::Message)]
385pub struct UpdatePairRequest {
386 #[prost(message, optional, tag="1")]
388 pub pair: ::core::option::Option<Pair>,
389}
390#[allow(clippy::derive_partial_eq_without_eq)]
391#[derive(Clone, PartialEq, ::prost::Message)]
392pub struct DeletePairRequest {
393 #[prost(string, tag="1")]
395 pub pair: ::prost::alloc::string::String,
396}
397#[allow(clippy::derive_partial_eq_without_eq)]
402#[derive(Clone, PartialEq, ::prost::Message)]
403pub struct ActivatePairRequest {
404 #[prost(string, tag="1")]
406 pub pair: ::prost::alloc::string::String,
407}
408#[allow(clippy::derive_partial_eq_without_eq)]
409#[derive(Clone, PartialEq, ::prost::Message)]
410pub struct PausePairRequest {
411 #[prost(string, tag="1")]
413 pub pair: ::prost::alloc::string::String,
414}
415#[allow(clippy::derive_partial_eq_without_eq)]
421#[derive(Clone, PartialEq, ::prost::Message)]
422pub struct PairExecutionLog {
423 #[prost(int32, tag="1")]
425 pub pair_id: i32,
426 #[prost(string, tag="2")]
428 pub scenario: ::prost::alloc::string::String,
429 #[prost(enumeration="PairExecutionOutcome", tag="3")]
431 pub outcome: i32,
432 #[prost(uint64, optional, tag="4")]
434 pub base_order_id: ::core::option::Option<u64>,
435 #[prost(uint64, optional, tag="5")]
437 pub counter_order_id: ::core::option::Option<u64>,
438 #[prost(int64, tag="6")]
440 pub base_price: i64,
441 #[prost(int64, tag="7")]
443 pub counter_price: i64,
444 #[prost(int64, tag="8")]
446 pub spread: i64,
447 #[prost(message, optional, tag="9")]
449 pub dispatched_at: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
450 #[prost(string, optional, tag="10")]
452 pub detail: ::core::option::Option<::prost::alloc::string::String>,
453}
454#[allow(clippy::derive_partial_eq_without_eq)]
455#[derive(Clone, PartialEq, ::prost::Message)]
456pub struct ListPairExecutionLogsRequest {
457 #[prost(string, tag="1")]
459 pub pair: ::prost::alloc::string::String,
460 #[prost(int32, optional, tag="2")]
462 pub page_size: ::core::option::Option<i32>,
463 #[prost(string, optional, tag="3")]
465 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
466 #[prost(string, tag="4")]
468 pub order_by: ::prost::alloc::string::String,
469}
470#[allow(clippy::derive_partial_eq_without_eq)]
471#[derive(Clone, PartialEq, ::prost::Message)]
472pub struct ListPairExecutionLogsResponse {
473 #[prost(message, repeated, tag="1")]
475 pub execution_logs: ::prost::alloc::vec::Vec<PairExecutionLog>,
476 #[prost(string, tag="2")]
478 pub next_page_token: ::prost::alloc::string::String,
479 #[prost(int32, tag="3")]
481 pub total_count: i32,
482}
483#[allow(clippy::derive_partial_eq_without_eq)]
489#[derive(Clone, PartialEq, ::prost::Message)]
490pub struct MakerTakerEventLog {
491 #[prost(int32, tag="1")]
493 pub pair_id: i32,
494 #[prost(enumeration="MakerTakerEventType", tag="2")]
496 pub event_type: i32,
497 #[prost(int64, tag="3")]
499 pub cycle_id: i64,
500 #[prost(uint64, optional, tag="4")]
502 pub maker_order_id: ::core::option::Option<u64>,
503 #[prost(uint64, optional, tag="5")]
505 pub taker_order_id: ::core::option::Option<u64>,
506 #[prost(int64, optional, tag="6")]
508 pub fair_price: ::core::option::Option<i64>,
509 #[prost(int64, optional, tag="7")]
511 pub new_price: ::core::option::Option<i64>,
512 #[prost(int64, optional, tag="8")]
514 pub fill_price: ::core::option::Option<i64>,
515 #[prost(int64, optional, tag="9")]
517 pub fill_quantity: ::core::option::Option<i64>,
518 #[prost(message, optional, tag="10")]
520 pub at: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
521 #[prost(string, optional, tag="11")]
523 pub detail: ::core::option::Option<::prost::alloc::string::String>,
524}
525#[allow(clippy::derive_partial_eq_without_eq)]
526#[derive(Clone, PartialEq, ::prost::Message)]
527pub struct ListMakerTakerEventsRequest {
528 #[prost(string, tag="1")]
530 pub pair: ::prost::alloc::string::String,
531 #[prost(int32, optional, tag="2")]
533 pub page_size: ::core::option::Option<i32>,
534 #[prost(string, optional, tag="3")]
536 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
537 #[prost(string, tag="4")]
543 pub filter: ::prost::alloc::string::String,
544 #[prost(string, tag="5")]
546 pub order_by: ::prost::alloc::string::String,
547}
548#[allow(clippy::derive_partial_eq_without_eq)]
549#[derive(Clone, PartialEq, ::prost::Message)]
550pub struct ListMakerTakerEventsResponse {
551 #[prost(message, repeated, tag="1")]
553 pub events: ::prost::alloc::vec::Vec<MakerTakerEventLog>,
554 #[prost(string, tag="2")]
556 pub next_page_token: ::prost::alloc::string::String,
557 #[prost(int32, tag="3")]
559 pub total_count: i32,
560}
561#[allow(clippy::derive_partial_eq_without_eq)]
567#[derive(Clone, PartialEq, ::prost::Message)]
568pub struct StreamPairStatusRequest {
569 #[prost(string, tag="1")]
571 pub pair: ::prost::alloc::string::String,
572}
573#[allow(clippy::derive_partial_eq_without_eq)]
576#[derive(Clone, Copy, PartialEq, ::prost::Message)]
577pub struct LegStatus {
578 #[prost(int64, tag="1")]
580 pub unfilled_quantity: i64,
581 #[prost(int64, tag="2")]
583 pub filled_quantity: i64,
584 #[prost(int64, tag="3")]
586 pub avg_fill_price: i64,
587 #[prost(int64, tag="4")]
589 pub submitted_quantity: i64,
590}
591#[allow(clippy::derive_partial_eq_without_eq)]
593#[derive(Clone, PartialEq, ::prost::Message)]
594pub struct PairStatusUpdate {
595 #[prost(string, tag="1")]
597 pub pair: ::prost::alloc::string::String,
598 #[prost(message, optional, tag="2")]
600 pub base: ::core::option::Option<LegStatus>,
601 #[prost(message, optional, tag="3")]
603 pub counter: ::core::option::Option<LegStatus>,
604 #[prost(message, optional, tag="4")]
606 pub updated_at: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
607}
608#[allow(clippy::derive_partial_eq_without_eq)]
614#[derive(Clone, PartialEq, ::prost::Message)]
615pub struct GetPairStatisticsRequest {
616 #[prost(string, tag="1")]
618 pub pair: ::prost::alloc::string::String,
619}
620#[allow(clippy::derive_partial_eq_without_eq)]
622#[derive(Clone, PartialEq, ::prost::Message)]
623pub struct PairStatistics {
624 #[prost(string, tag="1")]
626 pub pair: ::prost::alloc::string::String,
627 #[prost(int64, tag="2")]
629 pub total_submitted: i64,
630 #[prost(int64, tag="3")]
632 pub total_filled: i64,
633 #[prost(int64, tag="4")]
635 pub execution_count: i64,
636 #[prost(int64, tag="5")]
638 pub realized_pnl: i64,
639}
640#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
642#[repr(i32)]
643pub enum PairSide {
644 Unspecified = 0,
645 Bid = 1,
647 Ask = 2,
649}
650impl PairSide {
651 pub fn as_str_name(&self) -> &'static str {
656 match self {
657 PairSide::Unspecified => "PAIR_SIDE_UNSPECIFIED",
658 PairSide::Bid => "PAIR_SIDE_BID",
659 PairSide::Ask => "PAIR_SIDE_ASK",
660 }
661 }
662 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
664 match value {
665 "PAIR_SIDE_UNSPECIFIED" => Some(Self::Unspecified),
666 "PAIR_SIDE_BID" => Some(Self::Bid),
667 "PAIR_SIDE_ASK" => Some(Self::Ask),
668 _ => None,
669 }
670 }
671}
672#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
674#[repr(i32)]
675pub enum PriceSource {
676 Unspecified = 0,
677 MidPrice = 1,
679 LastPrice = 2,
681 BestBid = 3,
683 BestAsk = 4,
685}
686impl PriceSource {
687 pub fn as_str_name(&self) -> &'static str {
692 match self {
693 PriceSource::Unspecified => "PRICE_SOURCE_UNSPECIFIED",
694 PriceSource::MidPrice => "PRICE_SOURCE_MID_PRICE",
695 PriceSource::LastPrice => "PRICE_SOURCE_LAST_PRICE",
696 PriceSource::BestBid => "PRICE_SOURCE_BEST_BID",
697 PriceSource::BestAsk => "PRICE_SOURCE_BEST_ASK",
698 }
699 }
700 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
702 match value {
703 "PRICE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
704 "PRICE_SOURCE_MID_PRICE" => Some(Self::MidPrice),
705 "PRICE_SOURCE_LAST_PRICE" => Some(Self::LastPrice),
706 "PRICE_SOURCE_BEST_BID" => Some(Self::BestBid),
707 "PRICE_SOURCE_BEST_ASK" => Some(Self::BestAsk),
708 _ => None,
709 }
710 }
711}
712#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
714#[repr(i32)]
715pub enum SpreadDirection {
716 Unspecified = 0,
717 BaseHigh = 1,
719 CounterHigh = 2,
721 Both = 3,
723}
724impl SpreadDirection {
725 pub fn as_str_name(&self) -> &'static str {
730 match self {
731 SpreadDirection::Unspecified => "SPREAD_DIRECTION_UNSPECIFIED",
732 SpreadDirection::BaseHigh => "SPREAD_DIRECTION_BASE_HIGH",
733 SpreadDirection::CounterHigh => "SPREAD_DIRECTION_COUNTER_HIGH",
734 SpreadDirection::Both => "SPREAD_DIRECTION_BOTH",
735 }
736 }
737 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
739 match value {
740 "SPREAD_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
741 "SPREAD_DIRECTION_BASE_HIGH" => Some(Self::BaseHigh),
742 "SPREAD_DIRECTION_COUNTER_HIGH" => Some(Self::CounterHigh),
743 "SPREAD_DIRECTION_BOTH" => Some(Self::Both),
744 _ => None,
745 }
746 }
747}
748#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
750#[repr(i32)]
751pub enum PairOrderType {
752 Unspecified = 0,
753 Limit = 1,
755 Market = 2,
757 Aggressive = 3,
759}
760impl PairOrderType {
761 pub fn as_str_name(&self) -> &'static str {
766 match self {
767 PairOrderType::Unspecified => "PAIR_ORDER_TYPE_UNSPECIFIED",
768 PairOrderType::Limit => "PAIR_ORDER_TYPE_LIMIT",
769 PairOrderType::Market => "PAIR_ORDER_TYPE_MARKET",
770 PairOrderType::Aggressive => "PAIR_ORDER_TYPE_AGGRESSIVE",
771 }
772 }
773 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
775 match value {
776 "PAIR_ORDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
777 "PAIR_ORDER_TYPE_LIMIT" => Some(Self::Limit),
778 "PAIR_ORDER_TYPE_MARKET" => Some(Self::Market),
779 "PAIR_ORDER_TYPE_AGGRESSIVE" => Some(Self::Aggressive),
780 _ => None,
781 }
782 }
783}
784#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
790#[repr(i32)]
791pub enum PairStatus {
792 Unspecified = 0,
793 Active = 1,
795 Paused = 2,
797 Archived = 3,
799}
800impl PairStatus {
801 pub fn as_str_name(&self) -> &'static str {
806 match self {
807 PairStatus::Unspecified => "PAIR_STATUS_UNSPECIFIED",
808 PairStatus::Active => "PAIR_STATUS_ACTIVE",
809 PairStatus::Paused => "PAIR_STATUS_PAUSED",
810 PairStatus::Archived => "PAIR_STATUS_ARCHIVED",
811 }
812 }
813 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
815 match value {
816 "PAIR_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
817 "PAIR_STATUS_ACTIVE" => Some(Self::Active),
818 "PAIR_STATUS_PAUSED" => Some(Self::Paused),
819 "PAIR_STATUS_ARCHIVED" => Some(Self::Archived),
820 _ => None,
821 }
822 }
823}
824#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
826#[repr(i32)]
827pub enum PairLeg {
828 Unspecified = 0,
829 Base = 1,
830 Counter = 2,
831}
832impl PairLeg {
833 pub fn as_str_name(&self) -> &'static str {
838 match self {
839 PairLeg::Unspecified => "PAIR_LEG_UNSPECIFIED",
840 PairLeg::Base => "PAIR_LEG_BASE",
841 PairLeg::Counter => "PAIR_LEG_COUNTER",
842 }
843 }
844 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
846 match value {
847 "PAIR_LEG_UNSPECIFIED" => Some(Self::Unspecified),
848 "PAIR_LEG_BASE" => Some(Self::Base),
849 "PAIR_LEG_COUNTER" => Some(Self::Counter),
850 _ => None,
851 }
852 }
853}
854#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
857#[repr(i32)]
858pub enum EtfNavKind {
859 Unspecified = 0,
860 IndexTrackingHedge = 1,
862 FutureBasis = 2,
864 LeverageFuture = 3,
866}
867impl EtfNavKind {
868 pub fn as_str_name(&self) -> &'static str {
873 match self {
874 EtfNavKind::Unspecified => "ETF_NAV_KIND_UNSPECIFIED",
875 EtfNavKind::IndexTrackingHedge => "ETF_NAV_KIND_INDEX_TRACKING_HEDGE",
876 EtfNavKind::FutureBasis => "ETF_NAV_KIND_FUTURE_BASIS",
877 EtfNavKind::LeverageFuture => "ETF_NAV_KIND_LEVERAGE_FUTURE",
878 }
879 }
880 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
882 match value {
883 "ETF_NAV_KIND_UNSPECIFIED" => Some(Self::Unspecified),
884 "ETF_NAV_KIND_INDEX_TRACKING_HEDGE" => Some(Self::IndexTrackingHedge),
885 "ETF_NAV_KIND_FUTURE_BASIS" => Some(Self::FutureBasis),
886 "ETF_NAV_KIND_LEVERAGE_FUTURE" => Some(Self::LeverageFuture),
887 _ => None,
888 }
889 }
890}
891#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
893#[repr(i32)]
894pub enum NavDirection {
895 Unspecified = 0,
896 Inverse = 1,
898 Forward = 2,
900}
901impl NavDirection {
902 pub fn as_str_name(&self) -> &'static str {
907 match self {
908 NavDirection::Unspecified => "NAV_DIRECTION_UNSPECIFIED",
909 NavDirection::Inverse => "NAV_DIRECTION_INVERSE",
910 NavDirection::Forward => "NAV_DIRECTION_FORWARD",
911 }
912 }
913 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
915 match value {
916 "NAV_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
917 "NAV_DIRECTION_INVERSE" => Some(Self::Inverse),
918 "NAV_DIRECTION_FORWARD" => Some(Self::Forward),
919 _ => None,
920 }
921 }
922}
923#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
925#[repr(i32)]
926pub enum PairExecutionOutcome {
927 Unspecified = 0,
928 Submitted = 1,
930 SkippedPreValidation = 2,
932 SkippedCooldown = 3,
934 SkippedNoPrecomputed = 4,
936 PartialFailure = 5,
938 Failed = 6,
940}
941impl PairExecutionOutcome {
942 pub fn as_str_name(&self) -> &'static str {
947 match self {
948 PairExecutionOutcome::Unspecified => "PAIR_EXECUTION_OUTCOME_UNSPECIFIED",
949 PairExecutionOutcome::Submitted => "PAIR_EXECUTION_OUTCOME_SUBMITTED",
950 PairExecutionOutcome::SkippedPreValidation => "PAIR_EXECUTION_OUTCOME_SKIPPED_PRE_VALIDATION",
951 PairExecutionOutcome::SkippedCooldown => "PAIR_EXECUTION_OUTCOME_SKIPPED_COOLDOWN",
952 PairExecutionOutcome::SkippedNoPrecomputed => "PAIR_EXECUTION_OUTCOME_SKIPPED_NO_PRECOMPUTED",
953 PairExecutionOutcome::PartialFailure => "PAIR_EXECUTION_OUTCOME_PARTIAL_FAILURE",
954 PairExecutionOutcome::Failed => "PAIR_EXECUTION_OUTCOME_FAILED",
955 }
956 }
957 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
959 match value {
960 "PAIR_EXECUTION_OUTCOME_UNSPECIFIED" => Some(Self::Unspecified),
961 "PAIR_EXECUTION_OUTCOME_SUBMITTED" => Some(Self::Submitted),
962 "PAIR_EXECUTION_OUTCOME_SKIPPED_PRE_VALIDATION" => Some(Self::SkippedPreValidation),
963 "PAIR_EXECUTION_OUTCOME_SKIPPED_COOLDOWN" => Some(Self::SkippedCooldown),
964 "PAIR_EXECUTION_OUTCOME_SKIPPED_NO_PRECOMPUTED" => Some(Self::SkippedNoPrecomputed),
965 "PAIR_EXECUTION_OUTCOME_PARTIAL_FAILURE" => Some(Self::PartialFailure),
966 "PAIR_EXECUTION_OUTCOME_FAILED" => Some(Self::Failed),
967 _ => None,
968 }
969 }
970}
971#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
973#[repr(i32)]
974pub enum MakerTakerEventType {
975 Unspecified = 0,
976 MakerSubmitted = 1,
978 MakerAmended = 2,
980 MakerFilled = 3,
982 MakerRejected = 4,
984 MakerCancelled = 5,
986 TakerSubmitted = 6,
988 TakerFilled = 7,
990 TakerRejected = 8,
992}
993impl MakerTakerEventType {
994 pub fn as_str_name(&self) -> &'static str {
999 match self {
1000 MakerTakerEventType::Unspecified => "MAKER_TAKER_EVENT_TYPE_UNSPECIFIED",
1001 MakerTakerEventType::MakerSubmitted => "MAKER_TAKER_EVENT_TYPE_MAKER_SUBMITTED",
1002 MakerTakerEventType::MakerAmended => "MAKER_TAKER_EVENT_TYPE_MAKER_AMENDED",
1003 MakerTakerEventType::MakerFilled => "MAKER_TAKER_EVENT_TYPE_MAKER_FILLED",
1004 MakerTakerEventType::MakerRejected => "MAKER_TAKER_EVENT_TYPE_MAKER_REJECTED",
1005 MakerTakerEventType::MakerCancelled => "MAKER_TAKER_EVENT_TYPE_MAKER_CANCELLED",
1006 MakerTakerEventType::TakerSubmitted => "MAKER_TAKER_EVENT_TYPE_TAKER_SUBMITTED",
1007 MakerTakerEventType::TakerFilled => "MAKER_TAKER_EVENT_TYPE_TAKER_FILLED",
1008 MakerTakerEventType::TakerRejected => "MAKER_TAKER_EVENT_TYPE_TAKER_REJECTED",
1009 }
1010 }
1011 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1013 match value {
1014 "MAKER_TAKER_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1015 "MAKER_TAKER_EVENT_TYPE_MAKER_SUBMITTED" => Some(Self::MakerSubmitted),
1016 "MAKER_TAKER_EVENT_TYPE_MAKER_AMENDED" => Some(Self::MakerAmended),
1017 "MAKER_TAKER_EVENT_TYPE_MAKER_FILLED" => Some(Self::MakerFilled),
1018 "MAKER_TAKER_EVENT_TYPE_MAKER_REJECTED" => Some(Self::MakerRejected),
1019 "MAKER_TAKER_EVENT_TYPE_MAKER_CANCELLED" => Some(Self::MakerCancelled),
1020 "MAKER_TAKER_EVENT_TYPE_TAKER_SUBMITTED" => Some(Self::TakerSubmitted),
1021 "MAKER_TAKER_EVENT_TYPE_TAKER_FILLED" => Some(Self::TakerFilled),
1022 "MAKER_TAKER_EVENT_TYPE_TAKER_REJECTED" => Some(Self::TakerRejected),
1023 _ => None,
1024 }
1025 }
1026}
1027include!("kdo.v1.pair.tonic.rs");
1028include!("kdo.v1.pair.serde.rs");
1029