#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
pub struct PlaceOrderError {
#[serde(rename = "clarification", skip_serializing_if = "Option::is_none")]
pub clarification: Option<String>,
#[serde(rename = "code", skip_serializing_if = "Option::is_none")]
pub code: Option<Code>,
}
impl PlaceOrderError {
#[must_use]
pub const fn new() -> Self {
Self {
clarification: None,
code: None,
}
}
}
impl Default for PlaceOrderError {
fn default() -> Self {
Self::new()
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Code {
#[serde(rename = "SellingEquityNotOwned")]
SellingEquityNotOwned,
#[serde(rename = "CantLegalyTradeException")]
CantLegalyTradeException,
#[serde(rename = "InsufficientResources")]
InsufficientResources,
#[serde(rename = "InsufficientValueForStocksSell")]
InsufficientValueForStocksSell,
#[serde(rename = "TargetPriceTooFar")]
TargetPriceTooFar,
#[serde(rename = "TargetPriceTooClose")]
TargetPriceTooClose,
#[serde(rename = "NotEligibleForISA")]
NotEligibleForIsa,
#[serde(rename = "ShareLendingAgreementNotAccepted")]
ShareLendingAgreementNotAccepted,
#[serde(rename = "InstrumentNotFound")]
InstrumentNotFound,
#[serde(rename = "MaxEquityBuyQuantityExceeded")]
MaxEquityBuyQuantityExceeded,
#[serde(rename = "MaxEquitySellQuantityExceeded")]
MaxEquitySellQuantityExceeded,
#[serde(rename = "LimitPriceMissing")]
LimitPriceMissing,
#[serde(rename = "StopPriceMissing")]
StopPriceMissing,
#[serde(rename = "TickerMissing")]
TickerMissing,
#[serde(rename = "QuantityMissing")]
QuantityMissing,
#[serde(rename = "MaxQuantityExceeded")]
MaxQuantityExceeded,
#[serde(rename = "InvalidValue")]
InvalidValue,
#[serde(rename = "InsufficientFreeForStocksException")]
InsufficientFreeForStocksException,
#[serde(rename = "MinValueExceeded")]
MinValueExceeded,
#[serde(rename = "MinQuantityExceeded")]
MinQuantityExceeded,
#[serde(rename = "PriceTooFar")]
PriceTooFar,
#[serde(rename = "UNDEFINED")]
Undefined,
#[serde(rename = "NotAvailableForRealMoneyAccounts")]
NotAvailableForRealMoneyAccounts,
}
impl Default for Code {
fn default() -> Self {
Self::SellingEquityNotOwned
}
}