pub struct MemoryManifest {
pub schema_version: u32,
pub revision: u64,
pub records: Vec<ManifestEntry>,
pub tombstones: Vec<Tombstone>,
pub applied: Vec<String>,
}Expand description
The index written alongside a user’s records.
Fields§
§schema_version: u32Manifest schema version.
revision: u64Monotonic revision, bumped on every commit.
records: Vec<ManifestEntry>One entry per record.
tombstones: Vec<Tombstone>Deletions, without content.
applied: Vec<String>Idempotency keys of commits already applied, most recent last.
Durable, because the retry guarantee has to survive a restart to be worth anything. Reconciliation is at-least-once: if the process dies between a successful commit and the caller learning about it, the retry arrives at a fresh repository. Without these keys it applies a second time, advancing the revision and re-reinforcing evidence — so a crash silently inflates a memory’s confidence.
Bounded: a key only has to outlive the retry window of the transaction that produced it, and the manifest is rewritten on every commit.
Trait Implementations§
Source§impl Clone for MemoryManifest
impl Clone for MemoryManifest
Source§fn clone(&self) -> MemoryManifest
fn clone(&self) -> MemoryManifest
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MemoryManifest
impl Debug for MemoryManifest
Source§impl Default for MemoryManifest
impl Default for MemoryManifest
Source§impl<'de> Deserialize<'de> for MemoryManifest
impl<'de> Deserialize<'de> for MemoryManifest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for MemoryManifest
impl PartialEq for MemoryManifest
Source§impl Serialize for MemoryManifest
impl Serialize for MemoryManifest
impl StructuralPartialEq for MemoryManifest
Auto Trait Implementations§
impl Freeze for MemoryManifest
impl RefUnwindSafe for MemoryManifest
impl Send for MemoryManifest
impl Sync for MemoryManifest
impl Unpin for MemoryManifest
impl UnwindSafe for MemoryManifest
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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>
Converts
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>
Converts
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>
Wrap the input message
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>,
Applies the layer to a service and wraps it in [
Layered].