pub trait Identities:
Copy
+ Debug
+ Eq
+ Hash
+ 'static {
type EpochId: EpochId;
type Lineage: Copy + Debug + Eq + Hash;
type OpId: Copy + Debug + Eq + Hash + PartialOrd;
type FailureId: Copy + Debug + Eq + Hash;
type FailureToken: Debug;
type LineageHandle: Clone + Debug;
type Instant: Instant;
// Required methods
fn token_id(token: &Self::FailureToken) -> Self::FailureId;
fn handle_lineage(handle: &Self::LineageHandle) -> Self::Lineage;
}Expand description
The identity types an implementation mints, and the consumer’s epoch-id type (DI-D-24). Each
identity carries its implementation’s private provenance, so only that implementation can
make one, and another instance’s is refused. A zero-sized marker implements this; the shared
types are generic over it, so a consumer names one parameter, D::Ids, not five.
Required Associated Types§
Sourcetype OpId: Copy + Debug + Eq + Hash + PartialOrd
type OpId: Copy + Debug + Eq + Hash + PartialOrd
One pushed operation. Ordered by push order within an instance; None across instances.
Sourcetype FailureId: Copy + Debug + Eq + Hash
type FailureId: Copy + Debug + Eq + Hash
A durability failure’s Copy identity, used in events and queries.
Sourcetype FailureToken: Debug
type FailureToken: Debug
The only thing that can resolve a failure: affine, move-only, and dropping it is closing it (DI-D-12).
Sourcetype LineageHandle: Clone + Debug
type LineageHandle: Clone + Debug
A live lineage’s handle (DI-D-40): what acts on the lineage. Clone; releasing the last
copy ends the lineage.
Required Methods§
Sourcefn token_id(token: &Self::FailureToken) -> Self::FailureId
fn token_id(token: &Self::FailureToken) -> Self::FailureId
The failure a token resolves.
Sourcefn handle_lineage(handle: &Self::LineageHandle) -> Self::Lineage
fn handle_lineage(handle: &Self::LineageHandle) -> Self::Lineage
The lineage a handle names.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".