Trait LazyBalanceContext

Source
pub trait LazyBalanceContext:
    VirtualDynBound<BalanceAsset>
    + VirtualDynBound<BalanceRational>
    + VirtualDynBound<BalanceTime>
    + VirtualDynBound<SnapShotAsset>
    + VirtualDynBound<SnapShotRational>
    + VirtualDynBound<SnapShotTime>
    + VirtualDynBound<ReceiptAsset>
    + VirtualDynBound<ReceiptRational>
    + VirtualDynBound<ReceiptTime>
    + VirtualError<LazyBalanceError>
    + VirtualDynExtensionSchema<BalanceAddon>
    + VirtualDynExtensionSchema<SnapShotAddon>
    + VirtualDynExtensionSchema<ReceiptAddon> { }
Expand description

Execution context for the LazyBalance system.

LazyBalanceContext aggregates all external dependencies required to materialize a concrete lazy balance model. It serves as the type-level environment that binds:

  • Bounds for all core components:

    • Balance (asset, rational, time)
    • SnapShot (asset, rational, time)
    • Receipt (asset, rational, time)
  • Error type via VirtualError, defining the unified failure mode for all balance operations.

  • Extension schemas for:

§Role in the System

This trait does not define behavior directly. Instead, it provides the configuration layer required by:

In essence, it acts as a dependency injection boundary at the type level, allowing the same LazyBalance implementation to operate under different:

  • capacity limits
  • extension schemas
  • error definitions

without changing its core logic.

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§