use serde::{Deserialize, Serialize};
use netidx_derive::Pack;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize, Serialize, Pack)]
pub enum NewOrderFailureReason {
#[serde(rename = "UNKNOWN_FAILURE_REASON")]
UnknownFailureReason,
#[serde(rename = "UNSUPPORTED_ORDER_CONFIGURATION")]
UnsupportedOrderConfiguration,
#[serde(rename = "INVALID_SIDE")]
InvalidSide,
#[serde(rename = "INVALID_PRODUCT_ID")]
InvalidProductId,
#[serde(rename = "INVALID_SIZE_PRECISION")]
InvalidSizePrecision,
#[serde(rename = "INVALID_PRICE_PRECISION")]
InvalidPricePrecision,
#[serde(rename = "INSUFFICIENT_FUND")]
InsufficientFund,
#[serde(rename = "INVALID_LEDGER_BALANCE")]
InvalidLedgerBalance,
#[serde(rename = "ORDER_ENTRY_DISABLED")]
OrderEntryDisabled,
#[serde(rename = "INELIGIBLE_PAIR")]
IneligiblePair,
#[serde(rename = "INVALID_LIMIT_PRICE_POST_ONLY")]
InvalidLimitPricePostOnly,
#[serde(rename = "INVALID_LIMIT_PRICE")]
InvalidLimitPrice,
#[serde(rename = "INVALID_NO_LIQUIDITY")]
InvalidNoLiquidity,
#[serde(rename = "INVALID_REQUEST")]
InvalidRequest,
#[serde(rename = "COMMANDER_REJECTED_NEW_ORDER")]
CommanderRejectedNewOrder,
#[serde(rename = "INSUFFICIENT_FUNDS")]
InsufficientFunds,
#[serde(other)]
Unknown,
}
impl Default for NewOrderFailureReason {
fn default() -> Self {
Self::Unknown
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize, Serialize, Pack)]
pub enum PreviewFailureReason {
#[serde(rename = "UNKNOWN_PREVIEW_FAILURE_REASON")]
UnknownPreviewFailureReason,
#[serde(rename = "PREVIEW_MISSING_COMMISSION_RATE")]
PreviewMissingCommissionRate,
#[serde(rename = "PREVIEW_INVALID_SIDE")]
PreviewInvalidSide,
#[serde(rename = "PREVIEW_INVALID_ORDER_CONFIG")]
PreviewInvalidOrderConfig,
#[serde(rename = "PREVIEW_INVALID_PRODUCT_ID")]
PreviewInvalidProductId,
#[serde(rename = "PREVIEW_INVALID_SIZE_PRECISION")]
PreviewInvalidSizePrecision,
#[serde(rename = "PREVIEW_INVALID_PRICE_PRECISION")]
PreviewInvalidPricePrecision,
#[serde(rename = "PREVIEW_MISSING_PRODUCT_PRICE_BOOK")]
PreviewMissingProductPriceBook,
#[serde(rename = "PREVIEW_INVALID_LEDGER_BALANCE")]
PreviewInvalidLedgerBalance,
#[serde(rename = "PREVIEW_INSUFFICIENT_LEDGER_BALANCE")]
PreviewInsufficientLedgerBalance,
#[serde(rename = "PREVIEW_INVALID_LIMIT_PRICE_POST_ONLY")]
PreviewInvalidLimitPricePostOnly,
#[serde(rename = "PREVIEW_INVALID_LIMIT_PRICE")]
PreviewInvalidLimitPrice,
#[serde(rename = "PREVIEW_INVALID_NO_LIQUIDITY")]
PreviewInvalidNoLiquidity,
#[serde(rename = "PREVIEW_INSUFFICIENT_FUND")]
PreviewInsufficientFund,
#[serde(rename = "PREVIEW_INVALID_COMMISSION_CONFIGURATION")]
PreviewInvalidCommissionConfiguration,
#[serde(rename = "PREVIEW_INVALID_STOP_PRICE")]
PreviewInvalidStopPrice,
#[serde(rename = "PREVIEW_INVALID_BASE_SIZE_TOO_LARGE")]
PreviewInvalidBaseSizeTooLarge,
#[serde(rename = "PREVIEW_INVALID_BASE_SIZE_TOO_SMALL")]
PreviewInvalidBaseSizeTooSmall,
#[serde(rename = "PREVIEW_INVALID_QUOTE_SIZE_PRECISION")]
PreviewInvalidQuoteSizePrecision,
#[serde(rename = "PREVIEW_INVALID_QUOTE_SIZE_TOO_LARGE")]
PreviewInvalidQuoteSizeTooLarge,
#[serde(rename = "PREVIEW_INVALID_PRICE_TOO_LARGE")]
PreviewInvalidPriceTooLarge,
#[serde(rename = "PREVIEW_INVALID_QUOTE_SIZE_TOO_SMALL")]
PreviewInvalidQuoteSizeTooSmall,
#[serde(rename = "PREVIEW_BREACHED_PRICE_LIMIT")]
PreviewBreachedPriceLimit,
#[serde(rename = "PREVIEW_BREACHED_ACCOUNT_POSITION_LIMIT")]
PreviewBreachedAccountPositionLimit,
#[serde(rename = "PREVIEW_BREACHED_COMPANY_POSITION_LIMIT")]
PreviewBreachedCompanyPositionLimit,
#[serde(rename = "PREVIEW_INVALID_MARGIN_HEALTH")]
PreviewInvalidMarginHealth,
#[serde(rename = "PREVIEW_RISK_PROXY_FAILURE")]
PreviewRiskProxyFailure,
#[serde(other)]
Unknown,
}
impl Default for PreviewFailureReason {
fn default() -> Self {
Self::Unknown
}
}