pub struct DocCacheTtl {
pub crate_docs_secs: u64,
pub search_results_secs: u64,
pub item_docs_secs: u64,
/* private fields */
}Expand description
Document cache TTL configuration
Configure independent TTL for different document types.
§Fields
crate_docs_secs: Crate document cache duration (seconds)search_results_secs: search results cache duration (seconds)item_docs_secs: item docs cache duration (seconds)jitter_ratio: TTL jitter ratio(0.0-1.0),used to prevent cache stampede
Fields§
§crate_docs_secs: u64Crate document TTL (seconds)
search_results_secs: u64Search results TTL (seconds)
item_docs_secs: u64Item documentation TTL (seconds)
Implementations§
Source§impl DocCacheTtl
impl DocCacheTtl
Sourcepub fn from_cache_config(config: &CacheConfig) -> Self
pub fn from_cache_config(config: &CacheConfig) -> Self
Sourcepub fn with_jitter(
crate_docs_secs: u64,
search_results_secs: u64,
item_docs_secs: u64,
jitter_ratio: f64,
) -> Self
pub fn with_jitter( crate_docs_secs: u64, search_results_secs: u64, item_docs_secs: u64, jitter_ratio: f64, ) -> Self
Create TTL configuration with custom jitter ratio
§Arguments
crate_docs_secs- Crate docs TTL in secondssearch_results_secs- Search results TTL in secondsitem_docs_secs- Item docs TTL in secondsjitter_ratio- Jitter ratio (0.0-1.0), out-of-range values are clamped
§Returns
Returns TTL configuration with validated and clamped jitter_ratio
Sourcepub const fn jitter_ratio(&self) -> f64
pub const fn jitter_ratio(&self) -> f64
Get the current jitter ratio
Sourcepub fn set_jitter_ratio(&mut self, ratio: f64)
pub fn set_jitter_ratio(&mut self, ratio: f64)
Set the jitter ratio with validation
Values outside [0.0, 1.0] range are clamped to the nearest valid value. NaN values are treated as 0.0.
§Arguments
ratio- The jitter ratio to set
§Examples
use crates_docs::tools::docs::cache::DocCacheTtl;
let mut ttl = DocCacheTtl::default();
ttl.set_jitter_ratio(0.2);
assert!((ttl.jitter_ratio() - 0.2).abs() < f64::EPSILON);
// Out of range values are clamped
ttl.set_jitter_ratio(1.5);
assert!((ttl.jitter_ratio() - 1.0).abs() < f64::EPSILON);Sourcepub fn apply_jitter(&self, base_ttl: u64) -> u64
pub fn apply_jitter(&self, base_ttl: u64) -> u64
Sourcepub fn crate_docs_duration(&self) -> Duration
pub fn crate_docs_duration(&self) -> Duration
Get TTL duration for crate docs with jitter applied
Sourcepub fn search_results_duration(&self) -> Duration
pub fn search_results_duration(&self) -> Duration
Get TTL duration for search results with jitter applied
Sourcepub fn item_docs_duration(&self) -> Duration
pub fn item_docs_duration(&self) -> Duration
Get TTL duration for item docs with jitter applied
Trait Implementations§
Source§impl Clone for DocCacheTtl
impl Clone for DocCacheTtl
Source§fn clone(&self) -> DocCacheTtl
fn clone(&self) -> DocCacheTtl
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 DocCacheTtl
impl Debug for DocCacheTtl
Source§impl Default for DocCacheTtl
impl Default for DocCacheTtl
impl Copy for DocCacheTtl
Auto Trait Implementations§
impl Freeze for DocCacheTtl
impl RefUnwindSafe for DocCacheTtl
impl Send for DocCacheTtl
impl Sync for DocCacheTtl
impl Unpin for DocCacheTtl
impl UnsafeUnpin for DocCacheTtl
impl UnwindSafe for DocCacheTtl
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