Trait LazyBalanceOutput

Source
pub trait LazyBalanceOutput<'a, Asset, Receipt, SnapShot, Time, Limits, T>:
    VirtualCollector<Result<(Cow<'a, Asset>, Cow<'a, Receipt>), Error<T>>, Deposit>
    + VirtualCollector<Result<Cow<'a, Asset>, Error<T>>, Mint>
    + VirtualCollector<Result<Cow<'a, Asset>, Error<T>>, Reap>
    + VirtualCollector<Result<Cow<'a, Asset>, Error<T>>, Drain>
    + VirtualCollector<Result<Cow<'a, Asset>, Error<T>>, Withdraw>
    + VirtualCollector<Result<(), Error<T>>, CanDeposit>
    + VirtualCollector<Result<(), Error<T>>, CanMint>
    + VirtualCollector<Result<(), Error<T>>, CanReap>
    + VirtualCollector<Result<(), Error<T>>, CanWithdraw>
    + VirtualCollector<Result<(), Error<T>>, HasDeposits>
    + VirtualCollector<Result<Cow<'a, Asset>, Error<T>>, TotalValue>
    + VirtualCollector<Result<Cow<'a, Asset>, Error<T>>, ReceiptActiveValue>
    + VirtualCollector<Result<Cow<'a, Asset>, Error<T>>, ReceiptDepositValue>
    + VirtualCollector<Result<Cow<'a, Asset>, Error<T>>, ReceiptDepositValue>
    + VirtualCollector<Result<Cow<'a, Limits>, Error<T>>, DepositLimits>
    + VirtualCollector<Result<Cow<'a, Limits>, Error<T>>, MintLimits>
    + VirtualCollector<Result<Cow<'a, Limits>, Error<T>>, ReapLimits>
where T: LazyBalance, Asset: 'a + Clone, Receipt: 'a + Clone, SnapShot: 'a + Clone, Time: 'a + Clone, Limits: 'a + Clone,
{ }
Expand description

Output contract for all LazyBalance operations.

This trait defines how results are returned for each operation.

Each operation maps to a distinct result type via VirtualCollector, typically wrapped in Result<_, Error<T>>.

Key semantics:

  • State-changing operations return success or error
  • Value-producing operations return assets or receipts
  • Validation operations return Result<(), Error<T>>

This forms a unified, type-indexed result space across all operations.

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, Asset, Receipt, SnapShot, Time, Limits, B> LazyBalanceOutput<'a, Asset, Receipt, SnapShot, Time, Limits, B> for T
where B: LazyBalance, Asset: 'a + Clone, Receipt: 'a + Clone, SnapShot: 'a + Clone, Time: 'a + Clone, Limits: 'a + Clone, T: VirtualCollector<Result<(Cow<'a, Asset>, Cow<'a, Receipt>), Error<B>>, Deposit> + VirtualCollector<Result<Cow<'a, Asset>, Error<B>>, Mint> + VirtualCollector<Result<Cow<'a, Asset>, Error<B>>, Reap> + VirtualCollector<Result<Cow<'a, Asset>, Error<B>>, Drain> + VirtualCollector<Result<Cow<'a, Asset>, Error<B>>, Withdraw> + VirtualCollector<Result<(), Error<B>>, CanDeposit> + VirtualCollector<Result<(), Error<B>>, CanMint> + VirtualCollector<Result<(), Error<B>>, CanReap> + VirtualCollector<Result<(), Error<B>>, CanWithdraw> + VirtualCollector<Result<(), Error<B>>, HasDeposits> + VirtualCollector<Result<Cow<'a, Asset>, Error<B>>, TotalValue> + VirtualCollector<Result<Cow<'a, Asset>, Error<B>>, ReceiptActiveValue> + VirtualCollector<Result<Cow<'a, Asset>, Error<B>>, ReceiptDepositValue> + VirtualCollector<Result<Cow<'a, Limits>, Error<B>>, DepositLimits> + VirtualCollector<Result<Cow<'a, Limits>, Error<B>>, MintLimits> + VirtualCollector<Result<Cow<'a, Limits>, Error<B>>, ReapLimits>,