Struct polkadot_sdk_frame::traits::tokens::fungible::UnionOf
pub struct UnionOf<Left, Right, Criterion, AssetKind, AccountId>(/* private fields */);
Expand description
Type to combine some fungible::*
and fungibles::*
implementations into one union
fungibles::*
implementation.
§Parameters:
Left
isfungible::*
implementation that is incorporated into the resulting union.Right
isfungibles::*
implementation that is incorporated into the resulting union.Criterion
determines whether theAssetKind
belongs to theLeft
orRight
set.AssetKind
is a superset type encompassing asset kinds fromLeft
andRight
sets.AccountId
is an account identifier type.
Trait Implementations§
§impl<Left, Right, Criterion, AssetKind, AccountId> AccountTouch<AssetKind, AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Inspect<AccountId> + AccountTouch<(), AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Right: Inspect<AccountId> + AccountTouch<<Right as Inspect<AccountId>>::AssetId, AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
impl<Left, Right, Criterion, AssetKind, AccountId> AccountTouch<AssetKind, AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Inspect<AccountId> + AccountTouch<(), AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Right: Inspect<AccountId> + AccountTouch<<Right as Inspect<AccountId>>::AssetId, AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
§fn deposit_required(
asset: AssetKind,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as AccountTouch<AssetKind, AccountId>>::Balance
fn deposit_required( asset: AssetKind, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as AccountTouch<AssetKind, AccountId>>::Balance
The deposit amount of a native currency required for touching an account of the
asset
.§fn should_touch(asset: AssetKind, who: &AccountId) -> bool
fn should_touch(asset: AssetKind, who: &AccountId) -> bool
Check if an account for a given asset should be touched to meet the existence requirements.
§fn touch(
asset: AssetKind,
who: &AccountId,
depositor: &AccountId,
) -> Result<(), DispatchError>
fn touch( asset: AssetKind, who: &AccountId, depositor: &AccountId, ) -> Result<(), DispatchError>
Create an account for
who
of the asset
with a deposit taken from the depositor
.§impl<Left, Right, Criterion, AssetKind, AccountId> Balanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Balanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
§type OnDropDebt = ConvertImbalanceDropHandler<<Left as Balanced<AccountId>>::OnDropDebt, <Right as Balanced<AccountId>>::OnDropDebt, Criterion, AssetKind, <Left as Inspect<AccountId>>::Balance, <Right as Inspect<AccountId>>::AssetId, AccountId>
type OnDropDebt = ConvertImbalanceDropHandler<<Left as Balanced<AccountId>>::OnDropDebt, <Right as Balanced<AccountId>>::OnDropDebt, Criterion, AssetKind, <Left as Inspect<AccountId>>::Balance, <Right as Inspect<AccountId>>::AssetId, AccountId>
The type for managing what happens when an instance of
Debt
is dropped without being used.§type OnDropCredit = ConvertImbalanceDropHandler<<Left as Balanced<AccountId>>::OnDropCredit, <Right as Balanced<AccountId>>::OnDropCredit, Criterion, AssetKind, <Left as Inspect<AccountId>>::Balance, <Right as Inspect<AccountId>>::AssetId, AccountId>
type OnDropCredit = ConvertImbalanceDropHandler<<Left as Balanced<AccountId>>::OnDropCredit, <Right as Balanced<AccountId>>::OnDropCredit, Criterion, AssetKind, <Left as Inspect<AccountId>>::Balance, <Right as Inspect<AccountId>>::AssetId, AccountId>
The type for managing what happens when an instance of
Credit
is dropped without being
used.§fn deposit(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
value: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>, DispatchError>
fn deposit( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, value: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, ) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>, DispatchError>
§fn issue(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>
fn issue( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>
Increase the total issuance by
amount
and return the according imbalance. The imbalance
will typically be used to increase an account by the same amount with e.g.
resolve_into_existing
or resolve_creating
. Read more§fn pair(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<(Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>, Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>), DispatchError>
fn pair( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<(Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>, Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>), DispatchError>
Produce a pair of imbalances that cancel each other out exactly. Read more
§fn rescind(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>
fn rescind( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>
Reduce the total issuance by
amount
and return the according imbalance. The imbalance will
typically be used to reduce an account by the same amount with e.g. settle
. Read more§fn resolve(
who: &AccountId,
credit: Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>,
) -> Result<(), Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>>
fn resolve( who: &AccountId, credit: Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, ) -> Result<(), Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>>
The balance of
who
is increased in order to counter credit
. If the whole of credit
cannot be countered, then nothing is changed and the original credit
is returned in an
Err
. Read more§fn settle(
who: &AccountId,
debt: Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>,
preservation: Preservation,
) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>>
fn settle( who: &AccountId, debt: Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>, preservation: Preservation, ) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>>
The balance of
who
is decreased in order to counter debt
. If the whole of debt
cannot be countered, then nothing is changed and the original debt
is returned in an
Err
.§fn withdraw(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
value: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
preservation: Preservation,
force: Fortitude,
) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, DispatchError>
fn withdraw( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, value: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, preservation: Preservation, force: Fortitude, ) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, DispatchError>
fn done_rescind(_asset: Self::AssetId, _amount: Self::Balance)
fn done_issue(_asset: Self::AssetId, _amount: Self::Balance)
fn done_deposit(_asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance)
fn done_withdraw( _asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance, )
§impl<Left, Right, Criterion, AssetKind, AccountId> Balanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Balanced<AccountId> + DoneSlash<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, AccountId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>,
Right: Balanced<AccountId, Balance = <Left as Inspect<AccountId>>::Balance, Reason = <Left as Inspect<AccountId>>::Reason> + DoneSlash<AssetKind, <Left as Inspect<AccountId>>::Reason, AccountId, <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
impl<Left, Right, Criterion, AssetKind, AccountId> Balanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Balanced<AccountId> + DoneSlash<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, AccountId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>,
Right: Balanced<AccountId, Balance = <Left as Inspect<AccountId>>::Balance, Reason = <Left as Inspect<AccountId>>::Reason> + DoneSlash<AssetKind, <Left as Inspect<AccountId>>::Reason, AccountId, <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
§fn slash(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> (Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance)
fn slash( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> (Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance)
Reduce the balance of some funds on hold in an account. Read more
§impl<Left, Right, Criterion, AssetKind, AccountId> Create<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Create<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
§impl<Reason, Balance, Left, Right, Criterion, AssetKind, AccountId> DoneSlash<AssetKind, Reason, AccountId, Balance> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Reason, Balance, Left, Right, Criterion, AssetKind, AccountId> DoneSlash<AssetKind, Reason, AccountId, Balance> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
fn done_slash( asset: AssetKind, reason: &Reason, who: &AccountId, amount: Balance, )
§impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
§type Balance = <Left as Inspect<AccountId>>::Balance
type Balance = <Left as Inspect<AccountId>>::Balance
Scalar type for representing balance of an account.
§fn total_issuance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn total_issuance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
The total amount of issuance in the system.
§fn active_issuance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn active_issuance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
The total amount of issuance in the system excluding those which are controlled by the
system.
§fn minimum_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn minimum_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
The minimum balance any single account may have.
§fn balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Get the balance of
who
which does not include funds which are exclusively allocated to
subsystems of the chain (“on hold” or “reserved”). Read more§fn total_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn total_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Get the total amount of funds whose ultimate beneficial ownership can be determined as
who
. Read more§fn reducible_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
preservation: Preservation,
force: Fortitude,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn reducible_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, preservation: Preservation, force: Fortitude, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Get the maximum amount that
who
can withdraw/transfer successfully based on whether the
account should be kept alive (preservation
) or whether we are willing to force the
transfer and potentially go below user-level restrictions on the minimum amount of the
account. Read more§fn can_deposit(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
provenance: Provenance,
) -> DepositConsequence
fn can_deposit( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, provenance: Provenance, ) -> DepositConsequence
§fn can_withdraw(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> WithdrawConsequence<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>
fn can_withdraw( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> WithdrawConsequence<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>
Returns
Failed
if the asset
balance of who
may not be decreased by amount
, otherwise
the consequence.§impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
§fn balance_frozen(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn balance_frozen( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Amount of funds held in reserve by
who
for the given id
.§fn balance_freezable(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn balance_freezable( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
The amount of the balance which can become frozen. Defaults to
total_balance()
.§fn can_freeze(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id,
who: &AccountId,
) -> bool
fn can_freeze( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id, who: &AccountId, ) -> bool
Returns
true
if it’s possible to introduce a freeze for the given id
onto the
account of who
. This will be true as long as the implementor supports as many
concurrent freeze locks as there are possible values of id
.§impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
§type Reason = <Left as Inspect<AccountId>>::Reason
type Reason = <Left as Inspect<AccountId>>::Reason
An identifier for a hold. Used for disambiguating different holds so that
they can be individually replaced or removed and funds from one hold don’t accidentally
become unreserved or slashed for another.
§fn reducible_total_balance_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
force: Fortitude,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn reducible_total_balance_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, force: Fortitude, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Get the maximum amount that the
total_balance_on_hold
of who
can be reduced successfully
based on whether we are willing to force the reduction and potentially go below user-level
restrictions on the minimum amount of the account. Note: This cannot bring the account into
an inconsistent state with regards any required existential deposit. Read more§fn hold_available(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
) -> bool
fn hold_available( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, ) -> bool
Returns
true
if it’s possible to place (additional) funds under a hold of a given
reason
. This may fail if the account has exhausted a limited number of concurrent
holds or if it cannot be made to exist (e.g. there is no provider reference). Read more§fn total_balance_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn total_balance_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Amount of funds on hold (for all hold reasons) of
who
.§fn balance_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn balance_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Amount of funds on hold (for the given reason) of
who
.§fn can_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> bool
fn can_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> bool
Check to see if some
amount
of funds of who
may be placed on hold for the given
reason
. Reasons why this may not be true: Read more§fn ensure_can_hold(
asset: Self::AssetId,
reason: &Self::Reason,
who: &AccountId,
amount: Self::Balance,
) -> Result<(), DispatchError>
fn ensure_can_hold( asset: Self::AssetId, reason: &Self::Reason, who: &AccountId, amount: Self::Balance, ) -> Result<(), DispatchError>
Check to see if some
amount
of funds of who
may be placed on hold with the given
reason
. Reasons why this may not be true: Read more§impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
§fn mint_into(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn mint_into( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Increase the balance of
who
by exactly amount
, minting new tokens. If that isn’t
possible then an Err
is returned and nothing is changed.§fn burn_from(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
preservation: Preservation,
precision: Precision,
force: Fortitude,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn burn_from( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, preservation: Preservation, precision: Precision, force: Fortitude, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Decrease the balance of
who
by at least amount
, possibly slightly more in the case of
minimum-balance requirements, burning the tokens. If that isn’t possible then an Err
is
returned and nothing is changed. If successful, the amount of tokens reduced is returned.§fn shelve(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn shelve( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
§fn restore(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn restore( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
§fn transfer(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
source: &AccountId,
dest: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
preservation: Preservation,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn transfer( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, source: &AccountId, dest: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, preservation: Preservation, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Transfer funds from one account into another. Read more
§fn set_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn set_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Simple infallible function to force an account to have a particular balance, good for use
in tests and benchmarks but not recommended for production code owing to the lack of
error reporting. Read more
fn done_mint_into( _asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance, )
fn done_burn_from( _asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance, )
fn done_shelve(_asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance)
fn done_restore(_asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance)
fn done_transfer( _asset: Self::AssetId, _source: &AccountId, _dest: &AccountId, _amount: Self::Balance, )
§impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
§fn set_freeze(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<(), DispatchError>
fn set_freeze( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<(), DispatchError>
Prevent actions which would reduce the balance of the account of
who
below the given
amount
and identify this restriction though the given id
. Unlike extend_freeze
, any
outstanding freeze in place for who
under the id
are dropped. Read more§fn extend_freeze(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<(), DispatchError>
fn extend_freeze( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<(), DispatchError>
Prevent the balance of the account of
who
from being reduced below the given amount
and
identify this restriction though the given id
. Unlike set_freeze
, this does not
counteract any pre-existing freezes in place for who
under the id
. Also unlike
set_freeze
, in the case that amount
is zero, this is no-op and never fails. Read more§fn thaw(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id,
who: &AccountId,
) -> Result<(), DispatchError>
fn thaw( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id, who: &AccountId, ) -> Result<(), DispatchError>
Remove an existing lock.
§fn set_frozen(
asset: Self::AssetId,
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
fortitude: Fortitude,
) -> Result<(), DispatchError>
fn set_frozen( asset: Self::AssetId, id: &Self::Id, who: &AccountId, amount: Self::Balance, fortitude: Fortitude, ) -> Result<(), DispatchError>
§fn ensure_frozen(
asset: Self::AssetId,
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
fortitude: Fortitude,
) -> Result<(), DispatchError>
fn ensure_frozen( asset: Self::AssetId, id: &Self::Id, who: &AccountId, amount: Self::Balance, fortitude: Fortitude, ) -> Result<(), DispatchError>
Attempt to set the amount frozen under the given
id
to amount
, iff this would increase
the amount frozen under id
. Do nothing otherwise. Read more§fn decrease_frozen(
asset: Self::AssetId,
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
) -> Result<(), DispatchError>
fn decrease_frozen( asset: Self::AssetId, id: &Self::Id, who: &AccountId, amount: Self::Balance, ) -> Result<(), DispatchError>
Decrease the amount which is being frozen for a particular lock, failing in the case of
underflow.
§fn increase_frozen(
asset: Self::AssetId,
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
) -> Result<(), DispatchError>
fn increase_frozen( asset: Self::AssetId, id: &Self::Id, who: &AccountId, amount: Self::Balance, ) -> Result<(), DispatchError>
Increase the amount which is being frozen for a particular lock, failing in the case that
too little balance is available for being frozen.
§impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
§fn hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<(), DispatchError>
fn hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<(), DispatchError>
Hold some funds in an account. If a hold for
reason
is already in place, then this
will increase it.§fn release(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn release( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Release up to
amount
held funds in an account. Read more§fn burn_held(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
force: Fortitude,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn burn_held( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, force: Fortitude, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Attempt to decrease the
asset
balance of who
which is held for the given reason
by
amount
. Read more§fn transfer_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
source: &AccountId,
dest: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
mode: Restriction,
force: Fortitude,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn transfer_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, source: &AccountId, dest: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, mode: Restriction, force: Fortitude, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Transfer held funds into a destination account. Read more
§fn transfer_and_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
source: &AccountId,
dest: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
preservation: Preservation,
force: Fortitude,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn transfer_and_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, source: &AccountId, dest: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, preservation: Preservation, force: Fortitude, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Transfer some
amount
of free balance from source
to become owned by dest
but on hold
for reason
.
for reason
. Read more§fn burn_all_held(
asset: Self::AssetId,
reason: &Self::Reason,
who: &AccountId,
precision: Precision,
force: Fortitude,
) -> Result<Self::Balance, DispatchError>
fn burn_all_held( asset: Self::AssetId, reason: &Self::Reason, who: &AccountId, precision: Precision, force: Fortitude, ) -> Result<Self::Balance, DispatchError>
fn done_hold( _asset: Self::AssetId, _reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance, )
fn done_release( _asset: Self::AssetId, _reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance, )
fn done_burn_held( _asset: Self::AssetId, _reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance, )
fn done_transfer_on_hold( _asset: Self::AssetId, _reason: &Self::Reason, _source: &AccountId, _dest: &AccountId, _amount: Self::Balance, )
fn done_transfer_and_hold( _asset: Self::AssetId, _reason: &Self::Reason, _source: &AccountId, _dest: &AccountId, _transferred: Self::Balance, )
§impl<Left, Right, Criterion, AssetKind, AccountId> Refund<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Refund<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
§type Balance = <Right as Refund<AccountId>>::Balance
type Balance = <Right as Refund<AccountId>>::Balance
Scalar type for representing deposit balance of an account.
§impl<Left, Right, Criterion, AssetKind, AccountId> Unbalanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Unbalanced<AccountId>,
Right: Unbalanced<AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
impl<Left, Right, Criterion, AssetKind, AccountId> Unbalanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Unbalanced<AccountId>,
Right: Unbalanced<AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
§fn handle_dust(
dust: Dust<AccountId, UnionOf<Left, Right, Criterion, AssetKind, AccountId>>,
)
fn handle_dust( dust: Dust<AccountId, UnionOf<Left, Right, Criterion, AssetKind, AccountId>>, )
Do something with the dust which has been destroyed from the system.
Dust
can be converted
into a Credit
with the Balanced
trait impl.§fn write_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<Option<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>, DispatchError>
fn write_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<Option<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>, DispatchError>
§fn set_total_issuance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
)
fn set_total_issuance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, )
Set the total issuance to
amount
.§fn decrease_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
preservation: Preservation,
force: Fortitude,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn decrease_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, preservation: Preservation, force: Fortitude, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
§fn increase_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn increase_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
§fn handle_raw_dust(asset: Self::AssetId, amount: Self::Balance)
fn handle_raw_dust(asset: Self::AssetId, amount: Self::Balance)
Create some dust and handle it with
Self::handle_dust
. This is an unbalanced operation
and it must only be used when an account is modified in a raw fashion, outside of the entire
fungibles API. The amount
is capped at Self::minimum_balance() - 1
. Read more§fn deactivate(_asset: Self::AssetId, _: Self::Balance)
fn deactivate(_asset: Self::AssetId, _: Self::Balance)
Reduce the active issuance by some amount.
§fn reactivate(_asset: Self::AssetId, _: Self::Balance)
fn reactivate(_asset: Self::AssetId, _: Self::Balance)
Increase the active issuance by some amount, up to the outstanding amount reduced.
§impl<Left, Right, Criterion, AssetKind, AccountId> Unbalanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Unbalanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
§fn set_balance_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<(), DispatchError>
fn set_balance_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<(), DispatchError>
Forcefully set the balance on hold of
who
to amount
. This is independent of any other
balances on hold or the main (“free”) balance. Read more§fn decrease_balance_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn decrease_balance_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
§fn increase_balance_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn increase_balance_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Auto Trait Implementations§
impl<Left, Right, Criterion, AssetKind, AccountId> Freeze for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> RefUnwindSafe for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: RefUnwindSafe,
Right: RefUnwindSafe,
Criterion: RefUnwindSafe,
AssetKind: RefUnwindSafe,
AccountId: RefUnwindSafe,
impl<Left, Right, Criterion, AssetKind, AccountId> Send for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Sync for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Unpin for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> UnwindSafe for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: UnwindSafe,
Right: UnwindSafe,
Criterion: UnwindSafe,
AssetKind: UnwindSafe,
AccountId: UnwindSafe,
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> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
§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<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§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> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T
. Read more§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.§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.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T
.