pub struct CheckpointSealInventory {
pub attempt: CheckpointAttempt,
pub assignment_fence: Option<CheckpointAssignmentFence>,
pub assignment_version: u64,
pub required_vnodes: Vec<u32>,
pub sealed_partials: Vec<SealedVnodePartial>,
pub required_descriptors: Vec<String>,
pub sealed_descriptors: Vec<SealedCommitDescriptor>,
}Expand description
Canonical artifact inventory bound into an immutable checkpoint seal.
A seal is meaningful only for the exact set that was proven durable. The inventory is exposed so recovery-side protocols (notably the designated external-sink committer) can independently validate the participant markers that the seal admitted.
Fields§
§attempt: CheckpointAttemptExact attempt named by the seal.
assignment_fence: Option<CheckpointAssignmentFence>Exact cluster assignment certificate, or None for a local-runtime seal.
assignment_version: u64Assignment generation attested by every vnode partial, including local-runtime seals.
required_vnodes: Vec<u32>Sorted, duplicate-free vnode partials required by the seal.
sealed_partials: Vec<SealedVnodePartial>Per-vnode writer, assignment-generation, length, and digest attestations.
required_descriptors: Vec<String>Sorted, duplicate-free commit-descriptor keys required by the seal.
sealed_descriptors: Vec<SealedCommitDescriptor>Per-descriptor writer, authority, length, and digest attestations.
Implementations§
Source§impl CheckpointSealInventory
impl CheckpointSealInventory
Sourcepub fn sealed_descriptor(&self, key: &str) -> Option<&SealedCommitDescriptor>
pub fn sealed_descriptor(&self, key: &str) -> Option<&SealedCommitDescriptor>
Attestation for one exact descriptor key.
Sourcepub fn descriptor_leader_proof(&self) -> Result<Option<&LeaderProof>, String>
pub fn descriptor_leader_proof(&self) -> Result<Option<&LeaderProof>, String>
Exact leader term certified by every cluster descriptor in this seal.
An empty descriptor inventory has no descriptor authority. Local descriptors return
None; a mixed, incomplete, or assignment-mismatched inventory is rejected.
§Errors
Returns an error when the inventory is noncanonical, incomplete, or mixes authorities.
Trait Implementations§
Source§impl Clone for CheckpointSealInventory
impl Clone for CheckpointSealInventory
Source§fn clone(&self) -> CheckpointSealInventory
fn clone(&self) -> CheckpointSealInventory
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CheckpointSealInventory
impl Debug for CheckpointSealInventory
impl Eq for CheckpointSealInventory
Source§impl PartialEq for CheckpointSealInventory
impl PartialEq for CheckpointSealInventory
Source§impl Serialize for CheckpointSealInventory
impl Serialize for CheckpointSealInventory
impl StructuralPartialEq for CheckpointSealInventory
Auto Trait Implementations§
impl Freeze for CheckpointSealInventory
impl RefUnwindSafe for CheckpointSealInventory
impl Send for CheckpointSealInventory
impl Sync for CheckpointSealInventory
impl Unpin for CheckpointSealInventory
impl UnsafeUnpin for CheckpointSealInventory
impl UnwindSafe for CheckpointSealInventory
Blanket Implementations§
impl<T> Allocation for T
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].