pub enum DeferredExecItem {
Show 13 variants
    OpenPosition {
        slippage_assert: Option<SlippageAssert>,
        leverage: LeverageToBase,
        direction: DirectionToBase,
        max_gains: Option<MaxGainsInQuote>,
        stop_loss_override: Option<PriceBaseInQuote>,
        take_profit: Option<TakeProfitTrader>,
        amount: NonZero<Collateral>,
        crank_fee: Collateral,
        crank_fee_usd: Usd,
    },
    UpdatePositionAddCollateralImpactLeverage {
        id: PositionId,
        amount: NonZero<Collateral>,
    },
    UpdatePositionAddCollateralImpactSize {
        id: PositionId,
        slippage_assert: Option<SlippageAssert>,
        amount: NonZero<Collateral>,
    },
    UpdatePositionRemoveCollateralImpactLeverage {
        id: PositionId,
        amount: NonZero<Collateral>,
    },
    UpdatePositionRemoveCollateralImpactSize {
        id: PositionId,
        amount: NonZero<Collateral>,
        slippage_assert: Option<SlippageAssert>,
    },
    UpdatePositionLeverage {
        id: PositionId,
        leverage: LeverageToBase,
        slippage_assert: Option<SlippageAssert>,
    },
    UpdatePositionMaxGains {
        id: PositionId,
        max_gains: MaxGainsInQuote,
    },
    UpdatePositionTakeProfitPrice {
        id: PositionId,
        price: TakeProfitTrader,
    },
    UpdatePositionStopLossPrice {
        id: PositionId,
        stop_loss: StopLoss,
    },
    ClosePosition {
        id: PositionId,
        slippage_assert: Option<SlippageAssert>,
    },
    SetTriggerOrder {
        id: PositionId,
        stop_loss_override: Option<PriceBaseInQuote>,
        take_profit: Option<TakeProfitTrader>,
    },
    PlaceLimitOrder {
        trigger_price: PriceBaseInQuote,
        leverage: LeverageToBase,
        direction: DirectionToBase,
        max_gains: Option<MaxGainsInQuote>,
        stop_loss_override: Option<PriceBaseInQuote>,
        take_profit: Option<TakeProfitTrader>,
        amount: NonZero<Collateral>,
        crank_fee: Collateral,
        crank_fee_usd: Usd,
    },
    CancelLimitOrder {
        order_id: OrderId,
    },
}Expand description
A deferred execution work item
Variants§
OpenPosition
Open a new position
Fields
slippage_assert: Option<SlippageAssert>Assertion that the price has not moved too far
leverage: LeverageToBaseLeverage of new position
direction: DirectionToBaseDirection of new position
max_gains: Option<MaxGainsInQuote>Maximum gains of new position
stop_loss_override: Option<PriceBaseInQuote>Stop loss price of new position
take_profit: Option<TakeProfitTrader>Take profit price of new position
amount: NonZero<Collateral>The amount of collateral provided
crank_fee: CollateralCrank fee already charged
Note that this field only exists for variants where there isn’t a position or order to charge the fee against. In those cases, the position/order itself is immediately updated to reflect the new charge.
UpdatePositionAddCollateralImpactLeverage
Add collateral to a position, causing leverage to decrease
The amount of collateral to add must be attached as funds
Fields
id: PositionIdID of position to update
amount: NonZero<Collateral>The amount of collateral provided
UpdatePositionAddCollateralImpactSize
Add collateral to a position, causing notional size to increase
The amount of collateral to add must be attached as funds
Fields
id: PositionIdID of position to update
slippage_assert: Option<SlippageAssert>Assertion that the price has not moved too far
amount: NonZero<Collateral>The amount of collateral provided
UpdatePositionRemoveCollateralImpactLeverage
Remove collateral from a position, causing leverage to increase
Fields
id: PositionIdID of position to update
amount: NonZero<Collateral>Amount of funds to remove from the position
UpdatePositionRemoveCollateralImpactSize
Remove collateral from a position, causing notional size to decrease
Fields
id: PositionIdID of position to update
amount: NonZero<Collateral>Amount of funds to remove from the position
slippage_assert: Option<SlippageAssert>Assertion that the price has not moved too far
UpdatePositionLeverage
Modify the leverage of the position
This will impact the notional size of the position
Fields
id: PositionIdID of position to update
leverage: LeverageToBaseNew leverage of the position
slippage_assert: Option<SlippageAssert>Assertion that the price has not moved too far
UpdatePositionMaxGains
Modify the max gains of a position
Fields
id: PositionIdID of position to update
max_gains: MaxGainsInQuoteNew max gains of the position
UpdatePositionTakeProfitPrice
Modify the take profit price of a position
Fields
id: PositionIdID of position to update
price: TakeProfitTraderNew take profit price of the position
UpdatePositionStopLossPrice
Modify the stop loss price of a position
Fields
id: PositionIdID of position to update
ClosePosition
Close a position
Fields
id: PositionIdID of position to close
slippage_assert: Option<SlippageAssert>Assertion that the price has not moved too far
SetTriggerOrder
Set a stop loss or take profit override.
Fields
id: PositionIdID of position to modify
stop_loss_override: Option<PriceBaseInQuote>New stop loss price of the position Passing None will remove the override.
take_profit: Option<TakeProfitTrader>New take_profit price of the position Passing None will bypass changing this
PlaceLimitOrder
Set a limit order to open a position when the price of the asset hits the specified trigger price.
Fields
trigger_price: PriceBaseInQuotePrice when the order should trigger
leverage: LeverageToBaseLeverage of new position
direction: DirectionToBaseDirection of new position
max_gains: Option<MaxGainsInQuote>Maximum gains of new position
stop_loss_override: Option<PriceBaseInQuote>Stop loss price of new position
take_profit: Option<TakeProfitTrader>Take profit price of new position
amount: NonZero<Collateral>The amount of collateral provided
crank_fee: CollateralCrank fee already charged
CancelLimitOrder
Cancel an open limit order
Implementations§
source§impl DeferredExecItem
 
impl DeferredExecItem
sourcepub fn target(&self) -> DeferredExecTarget
 
pub fn target(&self) -> DeferredExecTarget
What entity in the system is targetted by this item.
sourcepub fn deposited_amount(&self) -> Collateral
 
pub fn deposited_amount(&self) -> Collateral
How much collateral was deposited with this item.
Trait Implementations§
source§impl Clone for DeferredExecItem
 
impl Clone for DeferredExecItem
source§fn clone(&self) -> DeferredExecItem
 
fn clone(&self) -> DeferredExecItem
1.0.0 · source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for DeferredExecItem
 
impl Debug for DeferredExecItem
source§impl<'de> Deserialize<'de> for DeferredExecItem
 
impl<'de> Deserialize<'de> for DeferredExecItem
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
    __D: Deserializer<'de>,
 
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
    __D: Deserializer<'de>,
source§impl JsonSchema for DeferredExecItem
 
impl JsonSchema for DeferredExecItem
source§fn schema_name() -> String
 
fn schema_name() -> String
source§fn schema_id() -> Cow<'static, str>
 
fn schema_id() -> Cow<'static, str>
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
 
fn json_schema(gen: &mut SchemaGenerator) -> Schema
§fn is_referenceable() -> bool
 
fn is_referenceable() -> bool
$ref keyword. Read moresource§impl PartialEq for DeferredExecItem
 
impl PartialEq for DeferredExecItem
source§fn eq(&self, other: &DeferredExecItem) -> bool
 
fn eq(&self, other: &DeferredExecItem) -> bool
self and other values to be equal, and is used
by ==.source§impl Serialize for DeferredExecItem
 
impl Serialize for DeferredExecItem
impl StructuralPartialEq for DeferredExecItem
Auto Trait Implementations§
impl Freeze for DeferredExecItem
impl RefUnwindSafe for DeferredExecItem
impl Send for DeferredExecItem
impl Sync for DeferredExecItem
impl Unpin for DeferredExecItem
impl UnwindSafe for DeferredExecItem
Blanket Implementations§
§impl<U> As for U
 
impl<U> As for U
§fn as_<T>(self) -> Twhere
    T: CastFrom<U>,
 
fn as_<T>(self) -> Twhere
    T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moresource§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
 
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more