use crate::Platform;
use crate::prelude::*;
use std::hash::{Hash, Hasher};
#[derive(Clone, Debug, Eq)]
pub struct ProviderKey {
pub platform: Platform,
pub env: EnvId,
pub tenant: TenantId,
pub team: Option<TeamId>,
}
impl PartialEq for ProviderKey {
fn eq(&self, other: &Self) -> bool {
self.platform == other.platform
&& self.env == other.env
&& self.tenant == other.tenant
&& self.team == other.team
}
}
impl Hash for ProviderKey {
fn hash<H: Hasher>(&self, state: &mut H) {
self.platform.hash(state);
self.env.0.hash(state);
self.tenant.0.hash(state);
if let Some(team) = &self.team {
team.0.hash(state);
} else {
"".hash(state);
}
}
}