pub struct WorkerConfig {
pub writer: Arc<PersistentResultCacheWriter>,
pub io: Arc<dyn PersistentCacheIo>,
pub cipher: Option<Arc<AesCipher>>,
pub staleness: Arc<dyn StalenessGuard>,
pub max_staleness_retries: u32,
pub completion: Option<Sender<()>>,
}Expand description
Configuration for spawning a spawn_persistent_cache_worker.
Fields§
§writer: Arc<PersistentResultCacheWriter>Writer to drain. Must outlive the worker.
io: Arc<dyn PersistentCacheIo>I/O backend. The worker uses write_atomic / remove / clear /
load. Must outlive the worker.
cipher: Option<Arc<AesCipher>>Optional encryption cipher. When Some, the worker encrypts every
payload before framing; when None, the payload is written in
plaintext.
staleness: Arc<dyn StalenessGuard>Stale-check guard. The worker re-checks that the queued entry’s
(key, key_generation, clear_generation) is still the latest snapshot
before publishing. When the guard reports a stale match, the op is
skipped and counted as StoreStale.
max_staleness_retries: u32Maximum stale-checks to perform per op. Prevents unbounded work on a single contended key.
completion: Option<Sender<()>>Optional completion signal. When Some, the worker sends ()
immediately before exiting. The receiver (held by the engine) uses
recv_timeout(remaining_deadline) to wait for a bounded shutdown.
Send errors (receiver dropped) are ignored.
Auto Trait Implementations§
impl !RefUnwindSafe for WorkerConfig
impl !UnwindSafe for WorkerConfig
impl Freeze for WorkerConfig
impl Send for WorkerConfig
impl Sync for WorkerConfig
impl Unpin for WorkerConfig
impl UnsafeUnpin for WorkerConfig
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
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