pub struct SignedLeverageToNotional(/* private fields */);
Expand description
Leverage calculated based on the protocol’s internal representation.
This is calculated by comparing the notional size of a position against some amount of collateral (either active collateral from the trader or counter collateral from the liquidity pool). One of these values needs to be converted using a Price, so the leverage will change over time based on exchange rate.
Implementations§
source§impl SignedLeverageToNotional
impl SignedLeverageToNotional
sourcepub fn direction(self) -> DirectionToNotional
pub fn direction(self) -> DirectionToNotional
Extract the direction value
sourcepub fn calculate(
notional_size: Signed<Notional>,
price_point: &PricePoint,
collateral: NonZero<Collateral>,
) -> Self
pub fn calculate( notional_size: Signed<Notional>, price_point: &PricePoint, collateral: NonZero<Collateral>, ) -> Self
Calculate based on notional size, a price point, and some amount of collateral.
Can fail because of overflow issues, but is otherwise guaranteed to return a sensible value since the collateral is a non-zero value.
sourcepub fn into_number(self) -> Signed<Decimal256>
pub fn into_number(self) -> Signed<Decimal256>
Convert into the raw value.
sourcepub fn into_base(self, market_type: MarketType) -> Result<SignedLeverageToBase>
pub fn into_base(self, market_type: MarketType) -> Result<SignedLeverageToBase>
Convert into an SignedLeverageToBase.
sourcepub fn checked_mul_collateral(
self,
collateral: NonZero<Collateral>,
) -> Result<Signed<Collateral>>
pub fn checked_mul_collateral( self, collateral: NonZero<Collateral>, ) -> Result<Signed<Collateral>>
Multiply by active collateral of a position, returning the notional size in collateral of a position.
Trait Implementations§
source§impl Clone for SignedLeverageToNotional
impl Clone for SignedLeverageToNotional
source§fn clone(&self) -> SignedLeverageToNotional
fn clone(&self) -> SignedLeverageToNotional
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for SignedLeverageToNotional
impl Debug for SignedLeverageToNotional
source§impl From<Signed<Decimal256>> for SignedLeverageToNotional
impl From<Signed<Decimal256>> for SignedLeverageToNotional
source§fn from(value: Signed<Decimal256>) -> Self
fn from(value: Signed<Decimal256>) -> Self
impl Copy for SignedLeverageToNotional
Auto Trait Implementations§
impl Freeze for SignedLeverageToNotional
impl RefUnwindSafe for SignedLeverageToNotional
impl Send for SignedLeverageToNotional
impl Sync for SignedLeverageToNotional
impl Unpin for SignedLeverageToNotional
impl UnwindSafe for SignedLeverageToNotional
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: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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