pub struct BorrowPositionGuard<'a>(/* private fields */);
Implementations§
Source§impl<'a> BorrowPositionGuard<'a>
impl<'a> BorrowPositionGuard<'a>
pub fn new( market: &'a mut Market, account_id: AccountId, position: BorrowPosition, ) -> Self
pub fn record_collateral_asset_deposit( &mut self, _proof: InterestAccumulationProof, amount: CollateralAssetAmount, )
pub fn record_collateral_asset_withdrawal( &mut self, _proof: InterestAccumulationProof, amount: CollateralAssetAmount, )
Sourcepub fn record_borrow_initial(
&mut self,
_proof: SnapshotProof,
_interest: InterestAccumulationProof,
amount: BorrowAssetAmount,
price_pair: &PricePair,
block_timestamp_ms: u64,
) -> Result<InitialBorrow, InitialBorrowError>
pub fn record_borrow_initial( &mut self, _proof: SnapshotProof, _interest: InterestAccumulationProof, amount: BorrowAssetAmount, price_pair: &PricePair, block_timestamp_ms: u64, ) -> Result<InitialBorrow, InitialBorrowError>
§Errors
- If there is not enough borrow asset available to borrow.
- If there is an error calculating the fee (e.g. overflow).
pub fn record_borrow_final( &mut self, _snapshot: SnapshotProof, interest: InterestAccumulationProof, borrow: &InitialBorrow, success: bool, block_timestamp_ms: u64, )
Sourcepub fn record_repay(
&mut self,
proof: InterestAccumulationProof,
amount: BorrowAssetAmount,
) -> Result<BorrowAssetAmount, LiquidationLockError>
pub fn record_repay( &mut self, proof: InterestAccumulationProof, amount: BorrowAssetAmount, ) -> Result<BorrowAssetAmount, LiquidationLockError>
Returns the amount that is left over after repaying the whole position. That is, the return value is the number of tokens that may be returned to the owner of the borrow position.
§Errors
- If any collateral is locked for liquidation.
pub fn accumulate_interest_partial(&mut self, snapshot_limit: u32)
pub fn accumulate_interest(&mut self) -> InterestAccumulationProof
pub fn liquidation_lock(&mut self, amount: CollateralAssetAmount)
pub fn liquidation_unlock(&mut self, amount: CollateralAssetAmount)
Sourcepub fn record_liquidation_initial(
&mut self,
_proof: InterestAccumulationProof,
liquidator_sent: BorrowAssetAmount,
liquidator_request: Option<CollateralAssetAmount>,
price_pair: &PricePair,
block_timestamp_ms: u64,
) -> Result<InitialLiquidation, InitialLiquidationError>
pub fn record_liquidation_initial( &mut self, _proof: InterestAccumulationProof, liquidator_sent: BorrowAssetAmount, liquidator_request: Option<CollateralAssetAmount>, price_pair: &PricePair, block_timestamp_ms: u64, ) -> Result<InitialLiquidation, InitialLiquidationError>
§Errors
- If this record is not eligible for liquidation.
- If the liquidator requests to liquidate too much collateral from the position.
- If the calculation of the collateral value fails.
- If the liquidator offers too little to purchase the collateral.
pub fn record_liquidation_final( &mut self, proof: InterestAccumulationProof, liquidator_id: AccountId, initial_liquidation: &InitialLiquidation, )
Methods from Deref<Target = BorrowPositionRef<&'a mut Market>>§
pub fn account_id(&self) -> &AccountId
pub fn inner(&self) -> &BorrowPosition
pub fn estimate_current_snapshot_interest(&self) -> BorrowAssetAmount
pub fn with_pending_interest(&mut self)
pub fn status( &self, price_pair: &PricePair, block_timestamp_ms: u64, ) -> BorrowStatus
pub fn within_allowable_borrow_range(&self) -> bool
pub fn liquidatable_collateral( &self, price_pair: &PricePair, ) -> CollateralAssetAmount
Trait Implementations§
Source§impl<'a> Deref for BorrowPositionGuard<'a>
impl<'a> Deref for BorrowPositionGuard<'a>
Source§impl DerefMut for BorrowPositionGuard<'_>
impl DerefMut for BorrowPositionGuard<'_>
Auto Trait Implementations§
impl<'a> Freeze for BorrowPositionGuard<'a>
impl<'a> !RefUnwindSafe for BorrowPositionGuard<'a>
impl<'a> Send for BorrowPositionGuard<'a>
impl<'a> !Sync for BorrowPositionGuard<'a>
impl<'a> Unpin for BorrowPositionGuard<'a>
impl<'a> !UnwindSafe for BorrowPositionGuard<'a>
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref()
only in debug builds, and is erased in release
builds.