pub struct ConcurrentCacheConfig<C> {
pub base: C,
pub segments: usize,
}Expand description
Generic configuration wrapper for concurrent caches.
Wraps any base cache configuration and adds the segments field
for controlling the number of independent segments used for sharding.
§Type Parameter
C: The base cache configuration type (e.g.,LruCacheConfig,LfuCacheConfig)
§Fields
base: The underlying single-threaded cache configuration. See the base config docs for sizing guidance oncapacityandmax_size.segments: Number of independent segments for sharding (more = less contention)
§Sizing Note
The capacity and max_size in the base config apply to the entire cache
(distributed across all segments), not per-segment.
§Example
ⓘ
use cache_rs::config::{ConcurrentCacheConfig, LruCacheConfig, ConcurrentLruCacheConfig};
use core::num::NonZeroUsize;
// 100MB concurrent cache with 16 segments
let config: ConcurrentLruCacheConfig = ConcurrentCacheConfig {
base: LruCacheConfig {
capacity: NonZeroUsize::new(10_000).unwrap(),
max_size: 100 * 1024 * 1024, // 100MB total
},
segments: 16,
};Fields§
§base: CBase configuration for the underlying cache algorithm. See individual config docs for sizing guidance.
segments: usizeNumber of segments for sharding (more segments = less contention)
Trait Implementations§
Source§impl<C: Clone> Clone for ConcurrentCacheConfig<C>
impl<C: Clone> Clone for ConcurrentCacheConfig<C>
Source§fn clone(&self) -> ConcurrentCacheConfig<C>
fn clone(&self) -> ConcurrentCacheConfig<C>
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<C: Debug> Debug for ConcurrentCacheConfig<C>
Available on crate feature concurrent only.
impl<C: Debug> Debug for ConcurrentCacheConfig<C>
Available on crate feature
concurrent only.impl<C: Copy> Copy for ConcurrentCacheConfig<C>
Auto Trait Implementations§
impl<C> Freeze for ConcurrentCacheConfig<C>where
C: Freeze,
impl<C> RefUnwindSafe for ConcurrentCacheConfig<C>where
C: RefUnwindSafe,
impl<C> Send for ConcurrentCacheConfig<C>where
C: Send,
impl<C> Sync for ConcurrentCacheConfig<C>where
C: Sync,
impl<C> Unpin for ConcurrentCacheConfig<C>where
C: Unpin,
impl<C> UnwindSafe for ConcurrentCacheConfig<C>where
C: UnwindSafe,
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