use crate::guard::{GuardLayer, LayerId};
use crate::identity::IdentityModel;
use crate::verification::VerificationModel;
pub trait IdentityGuardBridge<I: IdentityModel, G: GuardLayer> {
fn guard_layer_for_participant(&self, participant: &I::ParticipantId) -> LayerId;
}
pub trait EffectGuardBridge<E, G: GuardLayer> {
fn guard_cost_for_effect(&self, action: &E) -> G::Resource;
}
pub trait PersistenceEffectBridge<P, E> {
fn persistence_delta_for_effect(&self, action: &E) -> P;
}
pub trait IdentityPersistenceBridge<I: IdentityModel, K> {
fn persistence_key_for_participant(&self, participant: &I::ParticipantId) -> K;
}
pub trait IdentityVerificationBridge<I: IdentityModel, V: VerificationModel> {
fn verification_key_for_participant(&self, participant: &I::ParticipantId) -> V::VerifyingKey;
}