Trait LazyBalanceInput

Source
pub trait LazyBalanceInput<'a, Balance, Variant, Id, Asset, Receipt, T: LazyBalance>:
    VirtualCollector<(MutHandle<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, T::Subject>), Deposit>
    + VirtualCollector<(MutHandle<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, T::Subject>), Mint>
    + VirtualCollector<(MutHandle<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, T::Subject>), Reap>
    + VirtualCollector<(MutHandle<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Receipt>), Withdraw>
    + VirtualCollector<(MutHandle<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>), Drain>
    + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, T::Subject>), CanDeposit>
    + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, T::Subject>), CanMint>
    + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, T::Subject>), CanReap>
    + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Receipt>), CanWithdraw>
    + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>), TotalValue>
    + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Receipt>), ReceiptActiveValue>
    + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>), HasDeposits>
    + VirtualCollector<Cow<'a, Receipt>, ReceiptDepositValue>
    + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, T::Subject>), DepositLimits>
    + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, T::Subject>), MintLimits>
    + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, T::Subject>), ReapLimits>
where Balance: 'a + Clone, Variant: 'a + Clone, Id: 'a + Clone, Asset: 'a + Clone, Receipt: 'a + Clone,
{ }
Expand description

Input contract for all LazyBalance operations.

This trait defines how operation-specific arguments are supplied through a unified input type.

Each operation (e.g. Deposit, Withdraw) declares the exact shape of input it requires via VirtualCollector.

Key semantics:

  • Mutating operations receive MutHandle<Balance>
  • Read-only operations receive Cow<Balance>
  • Additional parameters (e.g. Asset, Receipt) are selectively required
  • Operations may include a Subject to influence execution behavior (e.g. precision and fortitude)

This enables a single input type to serve all operations while preserving strict typing per operation.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'a, T, Balance, Variant, Id, Asset, Receipt, B> LazyBalanceInput<'a, Balance, Variant, Id, Asset, Receipt, B> for T
where Balance: 'a + Clone, Variant: 'a + Clone, Id: 'a + Clone, Asset: 'a + Clone, Receipt: 'a + Clone, B: LazyBalance, T: VirtualCollector<(MutHandle<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, B::Subject>), Deposit> + VirtualCollector<(MutHandle<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, B::Subject>), Mint> + VirtualCollector<(MutHandle<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, B::Subject>), Reap> + VirtualCollector<(MutHandle<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Receipt>), Withdraw> + VirtualCollector<(MutHandle<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>), Drain> + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, B::Subject>), CanDeposit> + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, B::Subject>), CanMint> + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Asset>, Cow<'a, B::Subject>), CanReap> + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Receipt>), CanWithdraw> + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>), TotalValue> + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, Receipt>), ReceiptActiveValue> + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>), HasDeposits> + VirtualCollector<Cow<'a, Receipt>, ReceiptDepositValue> + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, B::Subject>), DepositLimits> + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, B::Subject>), MintLimits> + VirtualCollector<(Cow<'a, Balance>, Cow<'a, Variant>, Cow<'a, Id>, Cow<'a, B::Subject>), ReapLimits>,