macro_rules! interface_account_set {
(
$(#[$marker_meta:meta])*
$vis:vis struct $marker:ident : $interface:ty;
$(#[$resolved_meta:meta])*
$enum_vis:vis enum $resolved:ident {
$($variant:ident($layout:ty)),+ $(,)?
}
) => { ... };
}Expand description
Declare a bounded multi-layout interface account resolver.
Use this when one account slot may hold one of several Hopper-header layouts
owned by the same interface program set, such as a migration reader that
accepts VaultV1 or VaultV2.
ⓘ
hopper::interface_account_set! {
pub struct AnyVaultAccount: VaultPrograms;
pub enum AnyVault {
V1(VaultV1),
V2(VaultV2),
}
}