pub trait LeaseRepository: Send + Sync {
// Required methods
fn acquire(
&self,
resource: &str,
owner: LeaseOwner,
now_ms: u64,
) -> ProviderResult<SharedResourceLease>;
fn heartbeat(
&self,
heartbeat: LeaseHeartbeat,
) -> ProviderResult<SharedResourceLease>;
fn release(&self, token: &LeaseToken) -> ProviderResult<()>;
fn current(
&self,
resource: &str,
) -> ProviderResult<Option<SharedResourceLease>>;
fn check_fence(
&self,
token: &LeaseToken,
now_ms: u64,
) -> ProviderResult<LeaseDecision>;
}Expand description
Provider-independent shared-resource lease repository.
Required Methods§
Sourcefn acquire(
&self,
resource: &str,
owner: LeaseOwner,
now_ms: u64,
) -> ProviderResult<SharedResourceLease>
fn acquire( &self, resource: &str, owner: LeaseOwner, now_ms: u64, ) -> ProviderResult<SharedResourceLease>
Acquires a lease or recovers an expired one.
Sourcefn heartbeat(
&self,
heartbeat: LeaseHeartbeat,
) -> ProviderResult<SharedResourceLease>
fn heartbeat( &self, heartbeat: LeaseHeartbeat, ) -> ProviderResult<SharedResourceLease>
Renews a lease held by the same owner and fencing epoch.
Sourcefn release(&self, token: &LeaseToken) -> ProviderResult<()>
fn release(&self, token: &LeaseToken) -> ProviderResult<()>
Releases a current lease.
Sourcefn current(&self, resource: &str) -> ProviderResult<Option<SharedResourceLease>>
fn current(&self, resource: &str) -> ProviderResult<Option<SharedResourceLease>>
Returns the current durable lease state, expired or not.
Sourcefn check_fence(
&self,
token: &LeaseToken,
now_ms: u64,
) -> ProviderResult<LeaseDecision>
fn check_fence( &self, token: &LeaseToken, now_ms: u64, ) -> ProviderResult<LeaseDecision>
Checks whether a writer still owns the current fencing token.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".