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:
VirtualDynField-> for allocation and capacity constraintsVirtualDynExtension-> for external extensibilityPluginexecution -> for resolving context-dependent logic
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.