pub trait CredentialSource {
// Required methods
fn add_credential<'a>(
&'a self,
crew_id: CrewID,
credential: MemberCredential,
) -> Pin<Box<dyn Future<Output = ()> + 'a>>;
fn current_credentials_for<'a>(
&'a self,
crew_id: &'a CrewID,
) -> Vec<MemberCredential>;
fn id_hash(&self) -> CredentialSourceHash;
fn clone_ref(&self) -> Box<dyn CredentialSource>;
fn current_state(&self) -> HashMap<CrewID, Vec<MemberCredential>>;
}