pub enum ReceiptsMode {
BestEffort,
Durable,
}Expand description
Controls what happens to audit traces when the background writer channel is full.
BestEffort—try_senddrops the trace and incrementsfirstpass_traces_dropped_total; bounded memory, zero added latency. The hash chain over persisted traces stays valid; a dropped trace is simply absent.Durable— onTrySendError::Fullthe trace is serialised as a JSON line and appended (withsync_data) to<db_path>.spill.jsonl. The background writer drains the spill file at startup and whenever the channel empties, inserting spilled traces BEFORE new channel arrivals so the hash chain remains append-only and valid. The blocking fs append on the hot path is the DELIBERATE tradeoff of durable mode — it only fires under sustained backpressure; switch tobest_effortif disk latency under load is unacceptable.
Variants§
BestEffort
Drop traces when the writer channel is full (default — bounded memory, zero latency impact).
Durable
Spill traces to disk when the writer channel is full; drain and recover on the next boot or whenever the channel empties.
Trait Implementations§
Source§impl Clone for ReceiptsMode
impl Clone for ReceiptsMode
Source§fn clone(&self) -> ReceiptsMode
fn clone(&self) -> ReceiptsMode
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 moreimpl Copy for ReceiptsMode
Source§impl Debug for ReceiptsMode
impl Debug for ReceiptsMode
Source§impl Default for ReceiptsMode
impl Default for ReceiptsMode
Source§fn default() -> ReceiptsMode
fn default() -> ReceiptsMode
Returns the “default value” for a type. Read more
impl Eq for ReceiptsMode
Source§impl PartialEq for ReceiptsMode
impl PartialEq for ReceiptsMode
impl StructuralPartialEq for ReceiptsMode
Auto Trait Implementations§
impl Freeze for ReceiptsMode
impl RefUnwindSafe for ReceiptsMode
impl Send for ReceiptsMode
impl Sync for ReceiptsMode
impl Unpin for ReceiptsMode
impl UnsafeUnpin for ReceiptsMode
impl UnwindSafe for ReceiptsMode
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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.