pub struct IdempotencyEntry {
pub request_body_hash: [u8; 32],
pub status: u16,
pub content_type: String,
pub body: Vec<u8>,
pub inserted_at: Instant,
}Expand description
One cached response entry. Holds enough metadata to project the original wire response back verbatim (status, body, content-type) AND to detect body drift for the same key (request_body_hash).
Fields§
§request_body_hash: [u8; 32]SHA-256 of the canonicalized request body. Used to detect “same key, different body” → 422.
status: u16HTTP status code of the cached response.
content_type: StringContent-Type header of the cached response (preserved verbatim so the replay matches the original wire format — JSON, SSE, ndjson, etc.).
body: Vec<u8>Cached response body bytes.
inserted_at: InstantWhen this entry was inserted. Used by the retention sweep to evict entries older than the configured window.
Trait Implementations§
Source§impl Clone for IdempotencyEntry
impl Clone for IdempotencyEntry
Source§fn clone(&self) -> IdempotencyEntry
fn clone(&self) -> IdempotencyEntry
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for IdempotencyEntry
impl RefUnwindSafe for IdempotencyEntry
impl Send for IdempotencyEntry
impl Sync for IdempotencyEntry
impl Unpin for IdempotencyEntry
impl UnsafeUnpin for IdempotencyEntry
impl UnwindSafe for IdempotencyEntry
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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreCreates a shared type from an unshared type.