pub enum WorkDescription {
OpenPosition {
direction: DirectionToBase,
leverage: LeverageToBase,
collateral: NonZero<Collateral>,
take_profit: TakeProfitTrader,
stop_loss_override: Option<PriceBaseInQuote>,
},
ClosePosition {
pos_id: PositionId,
},
CollectClosedPosition {
pos_id: PositionId,
close_time: Timestamp,
active_collateral: Collateral,
},
ResetShares,
ClearDeferredExec {
id: DeferredExecId,
},
UpdatePositionAddCollateralImpactSize {
pos_id: PositionId,
amount: NonZero<Collateral>,
},
UpdatePositionRemoveCollateralImpactSize {
pos_id: PositionId,
amount: NonZero<Collateral>,
crank_fee: Collateral,
},
}
Expand description
Work to be performed for a specific market.
Variants§
OpenPosition
Open a new position
Fields
direction: DirectionToBase
Direction of the new position
leverage: LeverageToBase
Leverage
collateral: NonZero<Collateral>
Amount of deposit collateral
take_profit: TakeProfitTrader
Take profit value
stop_loss_override: Option<PriceBaseInQuote>
Stop loss price of new position
ClosePosition
Close an unnecessary position
Fields
pos_id: PositionId
Position to be closed
CollectClosedPosition
Update collateral balance based on an already closed position
Fields
pos_id: PositionId
Position that has already been closed
active_collateral: Collateral
Active collateral that was sent back to our contract
All collateral exhausted, reset shares to 0
ClearDeferredExec
Deferred execution completed, we can continue our processing
Fields
id: DeferredExecId
ID to be cleared
UpdatePositionAddCollateralImpactSize
Add collateral to a position, causing notional size to increase
Fields
pos_id: PositionId
ID of position to update
amount: NonZero<Collateral>
Amount of funds to add to the position
UpdatePositionRemoveCollateralImpactSize
Remove collateral from a position, causing notional size to decrease
Fields
pos_id: PositionId
ID of position to update
amount: NonZero<Collateral>
Amount of funds to remove from the position
crank_fee: Collateral
Crank fee to be paid
Trait Implementations§
source§impl Clone for WorkDescription
impl Clone for WorkDescription
source§fn clone(&self) -> WorkDescription
fn clone(&self) -> WorkDescription
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WorkDescription
impl Debug for WorkDescription
source§impl<'de> Deserialize<'de> for WorkDescription
impl<'de> Deserialize<'de> for WorkDescription
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 Display for WorkDescription
impl Display for WorkDescription
source§impl PartialEq for WorkDescription
impl PartialEq for WorkDescription
source§fn eq(&self, other: &WorkDescription) -> bool
fn eq(&self, other: &WorkDescription) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Serialize for WorkDescription
impl Serialize for WorkDescription
impl Eq for WorkDescription
impl StructuralPartialEq for WorkDescription
Auto Trait Implementations§
impl Freeze for WorkDescription
impl RefUnwindSafe for WorkDescription
impl Send for WorkDescription
impl Sync for WorkDescription
impl Unpin for WorkDescription
impl UnwindSafe for WorkDescription
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
)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
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