pub struct PositionModel { /* private fields */ }Expand description
Position Model.
Implementations§
Source§impl PositionModel
impl PositionModel
Trait Implementations§
Source§impl Clone for PositionModel
impl Clone for PositionModel
Source§fn clone(&self) -> PositionModel
fn clone(&self) -> PositionModel
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PositionModel
impl Debug for PositionModel
Source§impl Position<{ constants::MARKET_DECIMALS }> for PositionModel
impl Position<{ constants::MARKET_DECIMALS }> for PositionModel
Source§type Market = MarketModel
type Market = MarketModel
Market type.
Source§fn is_collateral_token_long(&self) -> bool
fn is_collateral_token_long(&self) -> bool
Returns whether the collateral token is the long token of the market.
Source§fn are_pnl_and_collateral_tokens_the_same(&self) -> bool
fn are_pnl_and_collateral_tokens_the_same(&self) -> bool
Returns whether the pnl and collateral tokens are the same.
Source§fn on_validate(&self) -> Result<()>
fn on_validate(&self) -> Result<()>
Called from
validate_position to add supplementary checks.Source§impl PositionMut<{ constants::MARKET_DECIMALS }> for PositionModel
impl PositionMut<{ constants::MARKET_DECIMALS }> for PositionModel
Source§fn market_mut(&mut self) -> &mut Self::Market
fn market_mut(&mut self) -> &mut Self::Market
Get a mutable reference to the market.
Source§fn on_increased(&mut self) -> Result<()>
fn on_increased(&mut self) -> Result<()>
Increased callback.
Source§fn on_decreased(&mut self) -> Result<()>
fn on_decreased(&mut self) -> Result<()>
Decreased callback.
Source§fn on_swapped(
&mut self,
_ty: DecreasePositionSwapType,
_report: &SwapReport<Self::Num, <Self::Num as Unsigned>::Signed>,
) -> Result<()>
fn on_swapped( &mut self, _ty: DecreasePositionSwapType, _report: &SwapReport<Self::Num, <Self::Num as Unsigned>::Signed>, ) -> Result<()>
Swapped callback.
Source§fn on_swap_error(
&mut self,
_ty: DecreasePositionSwapType,
_error: Error,
) -> Result<()>
fn on_swap_error( &mut self, _ty: DecreasePositionSwapType, _error: Error, ) -> Result<()>
Handle swap error.
Source§impl PositionState<{ constants::MARKET_DECIMALS }> for PositionModel
impl PositionState<{ constants::MARKET_DECIMALS }> for PositionModel
Source§fn collateral_amount(&self) -> &Self::Num
fn collateral_amount(&self) -> &Self::Num
Get the collateral amount.
Source§fn size_in_usd(&self) -> &Self::Num
fn size_in_usd(&self) -> &Self::Num
Get a reference to the size (in USD) of the position.
Source§fn size_in_tokens(&self) -> &Self::Num
fn size_in_tokens(&self) -> &Self::Num
Get a reference to the size (in tokens) of the position.
Source§fn borrowing_factor(&self) -> &Self::Num
fn borrowing_factor(&self) -> &Self::Num
Get a reference to last borrowing factor applied by the position.
Source§fn funding_fee_amount_per_size(&self) -> &Self::Num
fn funding_fee_amount_per_size(&self) -> &Self::Num
Get a reference to the funding fee amount per size.
Source§fn claimable_funding_fee_amount_per_size(
&self,
is_long_collateral: bool,
) -> &Self::Num
fn claimable_funding_fee_amount_per_size( &self, is_long_collateral: bool, ) -> &Self::Num
Get a reference to claimable funding fee amount per size of the given collateral.
Source§impl PositionStateMut<{ constants::MARKET_DECIMALS }> for PositionModel
impl PositionStateMut<{ constants::MARKET_DECIMALS }> for PositionModel
Source§fn collateral_amount_mut(&mut self) -> &mut Self::Num
fn collateral_amount_mut(&mut self) -> &mut Self::Num
Get a mutable reference to the collateral amount.
Source§fn size_in_usd_mut(&mut self) -> &mut Self::Num
fn size_in_usd_mut(&mut self) -> &mut Self::Num
Get a mutable reference to the size (in USD) of the position.
Source§fn size_in_tokens_mut(&mut self) -> &mut Self::Num
fn size_in_tokens_mut(&mut self) -> &mut Self::Num
Get a mutable reference to the size (in tokens) of the position.
Source§fn borrowing_factor_mut(&mut self) -> &mut Self::Num
fn borrowing_factor_mut(&mut self) -> &mut Self::Num
Get a mutable reference to last borrowing factor applied by the position.
Source§fn funding_fee_amount_per_size_mut(&mut self) -> &mut Self::Num
fn funding_fee_amount_per_size_mut(&mut self) -> &mut Self::Num
Get a mutable reference to the funding fee amount per size.
Source§fn claimable_funding_fee_amount_per_size_mut(
&mut self,
is_long_collateral: bool,
) -> &mut Self::Num
fn claimable_funding_fee_amount_per_size_mut( &mut self, is_long_collateral: bool, ) -> &mut Self::Num
Get a mutable reference to claimable funding fee amount per size of the given collateral.
Auto Trait Implementations§
impl Freeze for PositionModel
impl RefUnwindSafe for PositionModel
impl Send for PositionModel
impl Sync for PositionModel
impl Unpin for PositionModel
impl UnwindSafe for PositionModel
Blanket Implementations§
Source§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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<const DECIMALS: u8, P> PositionExt<DECIMALS> for Pwhere
P: Position<DECIMALS>,
impl<const DECIMALS: u8, P> PositionExt<DECIMALS> for Pwhere
P: Position<DECIMALS>,
Source§fn will_collateral_be_sufficient(
&self,
prices: &Prices<Self::Num>,
delta: &CollateralDelta<Self::Num>,
) -> Result<WillCollateralBeSufficient<Self::Signed>, Error>
fn will_collateral_be_sufficient( &self, prices: &Prices<Self::Num>, delta: &CollateralDelta<Self::Num>, ) -> Result<WillCollateralBeSufficient<Self::Signed>, Error>
Check that whether the collateral will be sufficient after paying the given
realized_pnl and applying delta_size. Read moreSource§fn collateral_price<'a>(
&self,
prices: &'a Prices<Self::Num>,
) -> &'a Price<Self::Num>
fn collateral_price<'a>( &self, prices: &'a Prices<Self::Num>, ) -> &'a Price<Self::Num>
Get collateral price.
Source§fn collateral_value(
&self,
prices: &Prices<Self::Num>,
) -> Result<Self::Num, Error>
fn collateral_value( &self, prices: &Prices<Self::Num>, ) -> Result<Self::Num, Error>
Get collateral value.
Source§fn pnl_value(
&self,
prices: &Prices<Self::Num>,
size_delta_usd: &Self::Num,
) -> Result<(Self::Signed, Self::Signed, Self::Num), Error>
fn pnl_value( &self, prices: &Prices<Self::Num>, size_delta_usd: &Self::Num, ) -> Result<(Self::Signed, Self::Signed, Self::Num), Error>
Calculate the pnl value when decreased by the given delta size. Read more
Source§fn validate(
&self,
prices: &Prices<Self::Num>,
should_validate_min_position_size: bool,
should_validate_min_collateral_usd: bool,
) -> Result<(), Error>
fn validate( &self, prices: &Prices<Self::Num>, should_validate_min_position_size: bool, should_validate_min_collateral_usd: bool, ) -> Result<(), Error>
Validate the position.
Source§fn check_liquidatable(
&self,
prices: &Prices<Self::Num>,
should_validate_min_collateral_usd: bool,
) -> Result<Option<LiquidatableReason>, Error>
fn check_liquidatable( &self, prices: &Prices<Self::Num>, should_validate_min_collateral_usd: bool, ) -> Result<Option<LiquidatableReason>, Error>
Check if the position is liquidatable. Read more
Source§fn position_price_impact(
&self,
size_delta_usd: &Self::Signed,
) -> Result<Self::Signed, Error>
fn position_price_impact( &self, size_delta_usd: &Self::Signed, ) -> Result<Self::Signed, Error>
Get position price impact.
Source§fn capped_positive_position_price_impact(
&self,
index_token_price: &Price<Self::Num>,
size_delta_usd: &Self::Signed,
) -> Result<Self::Signed, Error>
fn capped_positive_position_price_impact( &self, index_token_price: &Price<Self::Num>, size_delta_usd: &Self::Signed, ) -> Result<Self::Signed, Error>
Get position price impact usd and cap the value if it is positive.
Source§fn capped_position_price_impact(
&self,
index_token_price: &Price<Self::Num>,
size_delta_usd: &Self::Signed,
) -> Result<(Self::Signed, Self::Num), Error>
fn capped_position_price_impact( &self, index_token_price: &Price<Self::Num>, size_delta_usd: &Self::Signed, ) -> Result<(Self::Signed, Self::Num), Error>
Get capped position price impact usd. Read more
Source§fn pending_borrowing_fee_value(&self) -> Result<Self::Num, Error>
fn pending_borrowing_fee_value(&self) -> Result<Self::Num, Error>
Get pending borrowing fee value of this position.
Source§fn pending_funding_fees(&self) -> Result<FundingFees<Self::Num>, Error>
fn pending_funding_fees(&self) -> Result<FundingFees<Self::Num>, Error>
Get pending funding fees.
Source§fn position_fees(
&self,
collateral_token_price: &Price<Self::Num>,
size_delta_usd: &Self::Num,
is_positive_impact: bool,
is_liquidation: bool,
) -> Result<PositionFees<Self::Num>, Error>
fn position_fees( &self, collateral_token_price: &Price<Self::Num>, size_delta_usd: &Self::Num, is_positive_impact: bool, is_liquidation: bool, ) -> Result<PositionFees<Self::Num>, Error>
Calculates the
PositionFees generated by changing the position size by the specified size_delta_usd.