pub trait ServiceLeadershipGuard: Send + Sync {
// Required methods
fn current_service_lease(
&self,
service_id: &ServiceId,
) -> Option<ServiceLeaderLease>;
fn check_service_write_permission(
&self,
service_id: &ServiceId,
tenant_id: &TenantId,
cluster_id: &ClusterId,
core_id: &CoreId,
min_epoch: Option<u64>,
now_ms: u64,
) -> LeadershipDecision;
}Expand description
Checks leadership for an independently coordinated service.
Required Methods§
Sourcefn current_service_lease(
&self,
service_id: &ServiceId,
) -> Option<ServiceLeaderLease>
fn current_service_lease( &self, service_id: &ServiceId, ) -> Option<ServiceLeaderLease>
Returns the current lease for service_id, when one is known.
Sourcefn check_service_write_permission(
&self,
service_id: &ServiceId,
tenant_id: &TenantId,
cluster_id: &ClusterId,
core_id: &CoreId,
min_epoch: Option<u64>,
now_ms: u64,
) -> LeadershipDecision
fn check_service_write_permission( &self, service_id: &ServiceId, tenant_id: &TenantId, cluster_id: &ClusterId, core_id: &CoreId, min_epoch: Option<u64>, now_ms: u64, ) -> LeadershipDecision
Checks whether core_id may write for service_id at now_ms.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".