Skip to main content

TTLConfig

Struct TTLConfig 

Source
pub struct TTLConfig {
    pub default_ttl: Option<Duration>,
    pub refresh_on_read: bool,
    pub sweep_interval: Duration,
    pub sweep_max_items: usize,
}
Expand description

Configuration for time-to-live (TTL) behavior on MemoryStore.

Controls automatic expiration of items using both lazy evaluation on read and periodic background sweep tasks. Expired items are detected and removed during get() and search() operations, and can be cleaned up in bulk via the background sweep mechanism.

§Examples

use juncture_core::store::{MemoryStore, TTLConfig};
use std::time::Duration;

let store = MemoryStore::new().with_ttl_config(TTLConfig {
    default_ttl: Some(Duration::from_secs(300)),
    refresh_on_read: true,
    ..Default::default()
});

Fields§

§default_ttl: Option<Duration>

Default TTL duration applied to items inserted via put().

When None, items never expire (the default). When Some(duration), each put() sets expires_at = now + duration.

§refresh_on_read: bool

Whether to extend an item’s expiration time when it is read via get().

When true and default_ttl is set, a successful get() will update the item’s expires_at to now + default_ttl, effectively resetting its TTL timer.

§sweep_interval: Duration

Interval between background sweep cleanup cycles.

The background sweep task runs periodically to remove expired items in bulk, preventing unbounded growth of the store. Each sweep pass processes at most sweep_max_items expired items to avoid blocking other operations for extended periods.

§sweep_max_items: usize

Maximum number of items to sweep per background cleanup cycle.

Limits the work done by a single sweep pass. Each sweep cycle will remove at most this many expired items, ensuring predictable cleanup times even with large numbers of expired entries.

Trait Implementations§

Source§

impl Clone for TTLConfig

Source§

fn clone(&self) -> TTLConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TTLConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for TTLConfig

Source§

fn default() -> TTLConfig

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more