Type Alias Credit
pub type Credit<AccountId, B> = Imbalance<<B as Inspect<AccountId>>::AssetId, <B as Inspect<AccountId>>::Balance, <B as Balanced<AccountId>>::OnDropCredit, <B as Balanced<AccountId>>::OnDropDebt>;
Expand description
Imbalance implying that the total_issuance value is greater than the sum of all account balances.
Aliased Type§
struct Credit<AccountId, B> { /* private fields */ }
Implementations
§impl<A, B, OnDrop, OppositeOnDrop> Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
impl<A, B, OnDrop, OppositeOnDrop> Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
pub fn zero(asset: A) -> Imbalance<A, B, OnDrop, OppositeOnDrop>
pub fn drop_zero(self) -> Result<(), Imbalance<A, B, OnDrop, OppositeOnDrop>>
pub fn split( self, amount: B, ) -> (Imbalance<A, B, OnDrop, OppositeOnDrop>, Imbalance<A, B, OnDrop, OppositeOnDrop>)
pub fn extract(&mut self, amount: B) -> Imbalance<A, B, OnDrop, OppositeOnDrop>
pub fn extract(&mut self, amount: B) -> Imbalance<A, B, OnDrop, OppositeOnDrop>
Mutate self
by extracting a new instance with at most amount
value, reducing self
accordingly.
pub fn merge( self, other: Imbalance<A, B, OnDrop, OppositeOnDrop>, ) -> Result<Imbalance<A, B, OnDrop, OppositeOnDrop>, (Imbalance<A, B, OnDrop, OppositeOnDrop>, Imbalance<A, B, OnDrop, OppositeOnDrop>)>
pub fn subsume( &mut self, other: Imbalance<A, B, OnDrop, OppositeOnDrop>, ) -> Result<(), Imbalance<A, B, OnDrop, OppositeOnDrop>>
pub fn offset( self, other: Imbalance<A, B, OppositeOnDrop, OnDrop>, ) -> Result<SameOrOther<Imbalance<A, B, OnDrop, OppositeOnDrop>, Imbalance<A, B, OppositeOnDrop, OnDrop>>, (Imbalance<A, B, OnDrop, OppositeOnDrop>, Imbalance<A, B, OppositeOnDrop, OnDrop>)>
pub fn peek(&self) -> B
pub fn asset(&self) -> A
Trait Implementations
§impl<A, B, OnDrop, OppositeOnDrop> Debug for Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
impl<A, B, OnDrop, OppositeOnDrop> Debug for Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
§impl<A, B, OnDrop, OppositeOnDrop> Drop for Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
impl<A, B, OnDrop, OppositeOnDrop> Drop for Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
§impl<A, B, OnDrop, OppositeOnDrop> PartialEq for Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
impl<A, B, OnDrop, OppositeOnDrop> PartialEq for Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
§impl<A, B, OnDrop, OppositeOnDrop> TryDrop for Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
impl<A, B, OnDrop, OppositeOnDrop> TryDrop for Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
§impl<A, B, OnDrop, OppositeOnDrop> TryMerge for Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
impl<A, B, OnDrop, OppositeOnDrop> TryMerge for Imbalance<A, B, OnDrop, OppositeOnDrop>where
A: AssetId,
B: Balance,
OnDrop: HandleImbalanceDrop<A, B>,
OppositeOnDrop: HandleImbalanceDrop<A, B>,
§fn try_merge(
self,
other: Imbalance<A, B, OnDrop, OppositeOnDrop>,
) -> Result<Imbalance<A, B, OnDrop, OppositeOnDrop>, (Imbalance<A, B, OnDrop, OppositeOnDrop>, Imbalance<A, B, OnDrop, OppositeOnDrop>)>
fn try_merge( self, other: Imbalance<A, B, OnDrop, OppositeOnDrop>, ) -> Result<Imbalance<A, B, OnDrop, OppositeOnDrop>, (Imbalance<A, B, OnDrop, OppositeOnDrop>, Imbalance<A, B, OnDrop, OppositeOnDrop>)>
Consume
self
and an other
to return a new instance that combines both. Errors with
Err(self, other) if the imbalances cannot be merged (e.g. imbalances of different assets).