#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Pair {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(int32, tag="2")]
pub id: i32,
#[prost(string, tag="3")]
pub display_name: ::prost::alloc::string::String,
#[prost(int32, tag="4")]
pub portfolio_id: i32,
#[prost(message, optional, tag="5")]
pub base: ::core::option::Option<PairEntry>,
#[prost(message, optional, tag="6")]
pub counter: ::core::option::Option<PairEntry>,
#[prost(enumeration="PairStatus", tag="9")]
pub status: i32,
#[prost(message, optional, tag="10")]
pub mode: ::core::option::Option<PairMode>,
#[prost(message, optional, tag="11")]
pub create_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(message, optional, tag="12")]
pub update_time: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PairEntry {
#[prost(string, tag="1")]
pub symbol: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub fund_code: ::prost::alloc::string::String,
#[prost(enumeration="PairSide", tag="3")]
pub side: i32,
#[prost(int64, tag="4")]
pub quantity: i64,
#[prost(enumeration="PriceSource", tag="5")]
pub price_source: i32,
#[prost(int32, tag="6")]
pub price_offset_ticks: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PairCondition {
#[prost(oneof="pair_condition::Kind", tags="1, 2, 3")]
pub kind: ::core::option::Option<pair_condition::Kind>,
}
pub mod pair_condition {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum Kind {
#[prost(message, tag="1")]
SpreadAmount(super::SpreadAmountCondition),
#[prost(message, tag="2")]
SpreadBps(super::SpreadBpsCondition),
#[prost(message, tag="3")]
PriceRatio(super::PriceRatioCondition),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SpreadAmountCondition {
#[prost(int64, tag="1")]
pub threshold: i64,
#[prost(enumeration="SpreadDirection", tag="2")]
pub direction: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SpreadBpsCondition {
#[prost(double, tag="1")]
pub threshold_bps: f64,
#[prost(enumeration="SpreadDirection", tag="2")]
pub direction: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PriceRatioCondition {
#[prost(double, tag="1")]
pub min_ratio: f64,
#[prost(double, tag="2")]
pub max_ratio: f64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PairMode {
#[prost(oneof="pair_mode::Kind", tags="1, 2, 3")]
pub kind: ::core::option::Option<pair_mode::Kind>,
}
pub mod pair_mode {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum Kind {
#[prost(message, tag="1")]
SimultaneousCompare(super::SimultaneousCompare),
#[prost(message, tag="2")]
PricingMakerTaker(super::PricingMakerTaker),
#[prost(message, tag="3")]
BaseMakeCounterIocAndBalance(super::BaseMakeCounterIocAndBalance),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct BaseMakeCounterIocAndBalance {
#[prost(bool, tag="3")]
pub counter_inverse: bool,
#[prost(double, tag="4")]
pub imbalance_threshold_ratio: f64,
#[prost(double, tag="5")]
pub imbalance_recovery_ratio: f64,
#[prost(uint64, tag="6")]
pub settle_timeout_ms: u64,
#[prost(int64, tag="7")]
pub reconcile_alert_amount: i64,
#[prost(uint64, tag="8")]
pub cooldown_ms: u64,
#[prost(enumeration="EtfNavKind", tag="9")]
pub nav_kind: i32,
#[prost(int64, tag="10")]
pub bid_basis: i64,
#[prost(int64, tag="11")]
pub ask_basis: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SimultaneousCompare {
#[prost(message, optional, tag="1")]
pub condition: ::core::option::Option<PairCondition>,
#[prost(enumeration="PairOrderType", tag="2")]
pub order_type: i32,
#[prost(uint64, tag="3")]
pub cooldown_ms: u64,
#[prost(bool, tag="4")]
pub apply_tick_offset: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PricingMakerTaker {
#[prost(enumeration="PairLeg", tag="1")]
pub maker_leg: i32,
#[prost(message, optional, tag="2")]
pub pricing: ::core::option::Option<PairPricingMethod>,
#[prost(message, optional, tag="3")]
pub retick: ::core::option::Option<RetickPolicy>,
#[prost(enumeration="PairOrderType", tag="4")]
pub taker_order_type: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PairPricingMethod {
#[prost(oneof="pair_pricing_method::Method", tags="1, 2")]
pub method: ::core::option::Option<pair_pricing_method::Method>,
}
pub mod pair_pricing_method {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum Method {
#[prost(message, tag="1")]
LinearBasis(super::LinearBasis),
#[prost(message, tag="2")]
EtfNav(super::EtfNav),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct LinearBasis {
#[prost(double, tag="1")]
pub multiple: f64,
#[prost(int64, tag="2")]
pub basis_bid: i64,
#[prost(int64, tag="3")]
pub basis_ask: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct EtfNav {
#[prost(enumeration="EtfNavKind", tag="1")]
pub pricing_kind: i32,
#[prost(enumeration="NavDirection", tag="2")]
pub direction: i32,
#[prost(message, optional, tag="3")]
pub ctx: ::core::option::Option<PricingContextSnapshot>,
#[prost(int64, tag="4")]
pub bid_basis: i64,
#[prost(int64, tag="5")]
pub ask_basis: i64,
#[prost(double, tag="6")]
pub linear_fallback_multiplier: f64,
#[prost(int64, tag="7")]
pub prev_index: i64,
#[prost(int64, tag="8")]
pub prev_future: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PricingContextSnapshot {
#[prost(int64, tag="1")]
pub nav0: i64,
#[prost(double, tag="2")]
pub stock_ratio: f64,
#[prost(double, tag="3")]
pub actual_leverage: f64,
#[prost(int64, tag="4")]
pub unit_delta: i64,
#[prost(int64, tag="5")]
pub cash_per_share: i64,
#[prost(int64, optional, tag="6")]
pub tracking_multiple: ::core::option::Option<i64>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct RetickPolicy {
#[prost(int32, tag="1")]
pub tick_threshold: i32,
#[prost(uint64, tag="2")]
pub amend_cooldown_ms: u64,
#[prost(bool, tag="3")]
pub cancel_on_stop: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPairRequest {
#[prost(string, tag="1")]
pub pair: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPairsRequest {
#[prost(int32, optional, tag="1")]
pub page_size: ::core::option::Option<i32>,
#[prost(string, optional, tag="2")]
pub page_token: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, tag="3")]
pub filter: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPairsResponse {
#[prost(message, repeated, tag="1")]
pub pairs: ::prost::alloc::vec::Vec<Pair>,
#[prost(string, tag="2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreatePairRequest {
#[prost(message, optional, tag="1")]
pub pair: ::core::option::Option<Pair>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdatePairRequest {
#[prost(message, optional, tag="1")]
pub pair: ::core::option::Option<Pair>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeletePairRequest {
#[prost(string, tag="1")]
pub pair: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActivatePairRequest {
#[prost(string, tag="1")]
pub pair: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PausePairRequest {
#[prost(string, tag="1")]
pub pair: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PairExecutionLog {
#[prost(int32, tag="1")]
pub pair_id: i32,
#[prost(string, tag="2")]
pub scenario: ::prost::alloc::string::String,
#[prost(enumeration="PairExecutionOutcome", tag="3")]
pub outcome: i32,
#[prost(uint64, optional, tag="4")]
pub base_order_id: ::core::option::Option<u64>,
#[prost(uint64, optional, tag="5")]
pub counter_order_id: ::core::option::Option<u64>,
#[prost(int64, tag="6")]
pub base_price: i64,
#[prost(int64, tag="7")]
pub counter_price: i64,
#[prost(int64, tag="8")]
pub spread: i64,
#[prost(message, optional, tag="9")]
pub dispatched_at: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(string, optional, tag="10")]
pub detail: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPairExecutionLogsRequest {
#[prost(string, tag="1")]
pub pair: ::prost::alloc::string::String,
#[prost(int32, optional, tag="2")]
pub page_size: ::core::option::Option<i32>,
#[prost(string, optional, tag="3")]
pub page_token: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, tag="4")]
pub order_by: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPairExecutionLogsResponse {
#[prost(message, repeated, tag="1")]
pub execution_logs: ::prost::alloc::vec::Vec<PairExecutionLog>,
#[prost(string, tag="2")]
pub next_page_token: ::prost::alloc::string::String,
#[prost(int32, tag="3")]
pub total_count: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MakerTakerEventLog {
#[prost(int32, tag="1")]
pub pair_id: i32,
#[prost(enumeration="MakerTakerEventType", tag="2")]
pub event_type: i32,
#[prost(int64, tag="3")]
pub cycle_id: i64,
#[prost(uint64, optional, tag="4")]
pub maker_order_id: ::core::option::Option<u64>,
#[prost(uint64, optional, tag="5")]
pub taker_order_id: ::core::option::Option<u64>,
#[prost(int64, optional, tag="6")]
pub fair_price: ::core::option::Option<i64>,
#[prost(int64, optional, tag="7")]
pub new_price: ::core::option::Option<i64>,
#[prost(int64, optional, tag="8")]
pub fill_price: ::core::option::Option<i64>,
#[prost(int64, optional, tag="9")]
pub fill_quantity: ::core::option::Option<i64>,
#[prost(message, optional, tag="10")]
pub at: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
#[prost(string, optional, tag="11")]
pub detail: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListMakerTakerEventsRequest {
#[prost(string, tag="1")]
pub pair: ::prost::alloc::string::String,
#[prost(int32, optional, tag="2")]
pub page_size: ::core::option::Option<i32>,
#[prost(string, optional, tag="3")]
pub page_token: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, tag="4")]
pub filter: ::prost::alloc::string::String,
#[prost(string, tag="5")]
pub order_by: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListMakerTakerEventsResponse {
#[prost(message, repeated, tag="1")]
pub events: ::prost::alloc::vec::Vec<MakerTakerEventLog>,
#[prost(string, tag="2")]
pub next_page_token: ::prost::alloc::string::String,
#[prost(int32, tag="3")]
pub total_count: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamPairStatusRequest {
#[prost(string, tag="1")]
pub pair: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct LegStatus {
#[prost(int64, tag="1")]
pub unfilled_quantity: i64,
#[prost(int64, tag="2")]
pub filled_quantity: i64,
#[prost(int64, tag="3")]
pub avg_fill_price: i64,
#[prost(int64, tag="4")]
pub submitted_quantity: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PairStatusUpdate {
#[prost(string, tag="1")]
pub pair: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub base: ::core::option::Option<LegStatus>,
#[prost(message, optional, tag="3")]
pub counter: ::core::option::Option<LegStatus>,
#[prost(message, optional, tag="4")]
pub updated_at: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPairStatisticsRequest {
#[prost(string, tag="1")]
pub pair: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PairStatistics {
#[prost(string, tag="1")]
pub pair: ::prost::alloc::string::String,
#[prost(int64, tag="2")]
pub total_submitted: i64,
#[prost(int64, tag="3")]
pub total_filled: i64,
#[prost(int64, tag="4")]
pub execution_count: i64,
#[prost(int64, tag="5")]
pub realized_pnl: i64,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PairSide {
Unspecified = 0,
Bid = 1,
Ask = 2,
}
impl PairSide {
pub fn as_str_name(&self) -> &'static str {
match self {
PairSide::Unspecified => "PAIR_SIDE_UNSPECIFIED",
PairSide::Bid => "PAIR_SIDE_BID",
PairSide::Ask => "PAIR_SIDE_ASK",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PAIR_SIDE_UNSPECIFIED" => Some(Self::Unspecified),
"PAIR_SIDE_BID" => Some(Self::Bid),
"PAIR_SIDE_ASK" => Some(Self::Ask),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PriceSource {
Unspecified = 0,
MidPrice = 1,
LastPrice = 2,
BestBid = 3,
BestAsk = 4,
}
impl PriceSource {
pub fn as_str_name(&self) -> &'static str {
match self {
PriceSource::Unspecified => "PRICE_SOURCE_UNSPECIFIED",
PriceSource::MidPrice => "PRICE_SOURCE_MID_PRICE",
PriceSource::LastPrice => "PRICE_SOURCE_LAST_PRICE",
PriceSource::BestBid => "PRICE_SOURCE_BEST_BID",
PriceSource::BestAsk => "PRICE_SOURCE_BEST_ASK",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PRICE_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
"PRICE_SOURCE_MID_PRICE" => Some(Self::MidPrice),
"PRICE_SOURCE_LAST_PRICE" => Some(Self::LastPrice),
"PRICE_SOURCE_BEST_BID" => Some(Self::BestBid),
"PRICE_SOURCE_BEST_ASK" => Some(Self::BestAsk),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SpreadDirection {
Unspecified = 0,
BaseHigh = 1,
CounterHigh = 2,
Both = 3,
}
impl SpreadDirection {
pub fn as_str_name(&self) -> &'static str {
match self {
SpreadDirection::Unspecified => "SPREAD_DIRECTION_UNSPECIFIED",
SpreadDirection::BaseHigh => "SPREAD_DIRECTION_BASE_HIGH",
SpreadDirection::CounterHigh => "SPREAD_DIRECTION_COUNTER_HIGH",
SpreadDirection::Both => "SPREAD_DIRECTION_BOTH",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SPREAD_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
"SPREAD_DIRECTION_BASE_HIGH" => Some(Self::BaseHigh),
"SPREAD_DIRECTION_COUNTER_HIGH" => Some(Self::CounterHigh),
"SPREAD_DIRECTION_BOTH" => Some(Self::Both),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PairOrderType {
Unspecified = 0,
Limit = 1,
Market = 2,
Aggressive = 3,
}
impl PairOrderType {
pub fn as_str_name(&self) -> &'static str {
match self {
PairOrderType::Unspecified => "PAIR_ORDER_TYPE_UNSPECIFIED",
PairOrderType::Limit => "PAIR_ORDER_TYPE_LIMIT",
PairOrderType::Market => "PAIR_ORDER_TYPE_MARKET",
PairOrderType::Aggressive => "PAIR_ORDER_TYPE_AGGRESSIVE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PAIR_ORDER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"PAIR_ORDER_TYPE_LIMIT" => Some(Self::Limit),
"PAIR_ORDER_TYPE_MARKET" => Some(Self::Market),
"PAIR_ORDER_TYPE_AGGRESSIVE" => Some(Self::Aggressive),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PairStatus {
Unspecified = 0,
Active = 1,
Paused = 2,
Archived = 3,
}
impl PairStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
PairStatus::Unspecified => "PAIR_STATUS_UNSPECIFIED",
PairStatus::Active => "PAIR_STATUS_ACTIVE",
PairStatus::Paused => "PAIR_STATUS_PAUSED",
PairStatus::Archived => "PAIR_STATUS_ARCHIVED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PAIR_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
"PAIR_STATUS_ACTIVE" => Some(Self::Active),
"PAIR_STATUS_PAUSED" => Some(Self::Paused),
"PAIR_STATUS_ARCHIVED" => Some(Self::Archived),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PairLeg {
Unspecified = 0,
Base = 1,
Counter = 2,
}
impl PairLeg {
pub fn as_str_name(&self) -> &'static str {
match self {
PairLeg::Unspecified => "PAIR_LEG_UNSPECIFIED",
PairLeg::Base => "PAIR_LEG_BASE",
PairLeg::Counter => "PAIR_LEG_COUNTER",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PAIR_LEG_UNSPECIFIED" => Some(Self::Unspecified),
"PAIR_LEG_BASE" => Some(Self::Base),
"PAIR_LEG_COUNTER" => Some(Self::Counter),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EtfNavKind {
Unspecified = 0,
IndexTrackingHedge = 1,
FutureBasis = 2,
LeverageFuture = 3,
}
impl EtfNavKind {
pub fn as_str_name(&self) -> &'static str {
match self {
EtfNavKind::Unspecified => "ETF_NAV_KIND_UNSPECIFIED",
EtfNavKind::IndexTrackingHedge => "ETF_NAV_KIND_INDEX_TRACKING_HEDGE",
EtfNavKind::FutureBasis => "ETF_NAV_KIND_FUTURE_BASIS",
EtfNavKind::LeverageFuture => "ETF_NAV_KIND_LEVERAGE_FUTURE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ETF_NAV_KIND_UNSPECIFIED" => Some(Self::Unspecified),
"ETF_NAV_KIND_INDEX_TRACKING_HEDGE" => Some(Self::IndexTrackingHedge),
"ETF_NAV_KIND_FUTURE_BASIS" => Some(Self::FutureBasis),
"ETF_NAV_KIND_LEVERAGE_FUTURE" => Some(Self::LeverageFuture),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum NavDirection {
Unspecified = 0,
Inverse = 1,
Forward = 2,
}
impl NavDirection {
pub fn as_str_name(&self) -> &'static str {
match self {
NavDirection::Unspecified => "NAV_DIRECTION_UNSPECIFIED",
NavDirection::Inverse => "NAV_DIRECTION_INVERSE",
NavDirection::Forward => "NAV_DIRECTION_FORWARD",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NAV_DIRECTION_UNSPECIFIED" => Some(Self::Unspecified),
"NAV_DIRECTION_INVERSE" => Some(Self::Inverse),
"NAV_DIRECTION_FORWARD" => Some(Self::Forward),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PairExecutionOutcome {
Unspecified = 0,
Submitted = 1,
SkippedPreValidation = 2,
SkippedCooldown = 3,
SkippedNoPrecomputed = 4,
PartialFailure = 5,
Failed = 6,
}
impl PairExecutionOutcome {
pub fn as_str_name(&self) -> &'static str {
match self {
PairExecutionOutcome::Unspecified => "PAIR_EXECUTION_OUTCOME_UNSPECIFIED",
PairExecutionOutcome::Submitted => "PAIR_EXECUTION_OUTCOME_SUBMITTED",
PairExecutionOutcome::SkippedPreValidation => "PAIR_EXECUTION_OUTCOME_SKIPPED_PRE_VALIDATION",
PairExecutionOutcome::SkippedCooldown => "PAIR_EXECUTION_OUTCOME_SKIPPED_COOLDOWN",
PairExecutionOutcome::SkippedNoPrecomputed => "PAIR_EXECUTION_OUTCOME_SKIPPED_NO_PRECOMPUTED",
PairExecutionOutcome::PartialFailure => "PAIR_EXECUTION_OUTCOME_PARTIAL_FAILURE",
PairExecutionOutcome::Failed => "PAIR_EXECUTION_OUTCOME_FAILED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"PAIR_EXECUTION_OUTCOME_UNSPECIFIED" => Some(Self::Unspecified),
"PAIR_EXECUTION_OUTCOME_SUBMITTED" => Some(Self::Submitted),
"PAIR_EXECUTION_OUTCOME_SKIPPED_PRE_VALIDATION" => Some(Self::SkippedPreValidation),
"PAIR_EXECUTION_OUTCOME_SKIPPED_COOLDOWN" => Some(Self::SkippedCooldown),
"PAIR_EXECUTION_OUTCOME_SKIPPED_NO_PRECOMPUTED" => Some(Self::SkippedNoPrecomputed),
"PAIR_EXECUTION_OUTCOME_PARTIAL_FAILURE" => Some(Self::PartialFailure),
"PAIR_EXECUTION_OUTCOME_FAILED" => Some(Self::Failed),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MakerTakerEventType {
Unspecified = 0,
MakerSubmitted = 1,
MakerAmended = 2,
MakerFilled = 3,
MakerRejected = 4,
MakerCancelled = 5,
TakerSubmitted = 6,
TakerFilled = 7,
TakerRejected = 8,
}
impl MakerTakerEventType {
pub fn as_str_name(&self) -> &'static str {
match self {
MakerTakerEventType::Unspecified => "MAKER_TAKER_EVENT_TYPE_UNSPECIFIED",
MakerTakerEventType::MakerSubmitted => "MAKER_TAKER_EVENT_TYPE_MAKER_SUBMITTED",
MakerTakerEventType::MakerAmended => "MAKER_TAKER_EVENT_TYPE_MAKER_AMENDED",
MakerTakerEventType::MakerFilled => "MAKER_TAKER_EVENT_TYPE_MAKER_FILLED",
MakerTakerEventType::MakerRejected => "MAKER_TAKER_EVENT_TYPE_MAKER_REJECTED",
MakerTakerEventType::MakerCancelled => "MAKER_TAKER_EVENT_TYPE_MAKER_CANCELLED",
MakerTakerEventType::TakerSubmitted => "MAKER_TAKER_EVENT_TYPE_TAKER_SUBMITTED",
MakerTakerEventType::TakerFilled => "MAKER_TAKER_EVENT_TYPE_TAKER_FILLED",
MakerTakerEventType::TakerRejected => "MAKER_TAKER_EVENT_TYPE_TAKER_REJECTED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MAKER_TAKER_EVENT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"MAKER_TAKER_EVENT_TYPE_MAKER_SUBMITTED" => Some(Self::MakerSubmitted),
"MAKER_TAKER_EVENT_TYPE_MAKER_AMENDED" => Some(Self::MakerAmended),
"MAKER_TAKER_EVENT_TYPE_MAKER_FILLED" => Some(Self::MakerFilled),
"MAKER_TAKER_EVENT_TYPE_MAKER_REJECTED" => Some(Self::MakerRejected),
"MAKER_TAKER_EVENT_TYPE_MAKER_CANCELLED" => Some(Self::MakerCancelled),
"MAKER_TAKER_EVENT_TYPE_TAKER_SUBMITTED" => Some(Self::TakerSubmitted),
"MAKER_TAKER_EVENT_TYPE_TAKER_FILLED" => Some(Self::TakerFilled),
"MAKER_TAKER_EVENT_TYPE_TAKER_REJECTED" => Some(Self::TakerRejected),
_ => None,
}
}
}
include!("kdo.v1.pair.tonic.rs");
include!("kdo.v1.pair.serde.rs");