#[non_exhaustive]pub struct CacheConfig {
pub default_ttl: Duration,
pub key_strategy: CacheKeyStrategy,
pub cacheable_methods: Vec<String>,
pub cacheable_status_codes: Vec<u16>,
pub exclude_paths: Vec<String>,
pub max_entries: Option<usize>,
}Expand description
Cache configuration
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.default_ttl: DurationDefault TTL
key_strategy: CacheKeyStrategyCache key generation strategy
cacheable_methods: Vec<String>Cacheable methods
cacheable_status_codes: Vec<u16>Cacheable status codes
exclude_paths: Vec<String>Paths to exclude
max_entries: Option<usize>Maximum cache size
Implementations§
Source§impl CacheConfig
impl CacheConfig
Sourcepub fn new(default_ttl: Duration, key_strategy: CacheKeyStrategy) -> Self
pub fn new(default_ttl: Duration, key_strategy: CacheKeyStrategy) -> Self
Create a new configuration
§Examples
use std::time::Duration;
use reinhardt_middleware::cache::{CacheConfig, CacheKeyStrategy};
let config = CacheConfig::new(Duration::from_secs(300), CacheKeyStrategy::UrlOnly);
assert_eq!(config.default_ttl, Duration::from_secs(300));Sourcepub fn with_cacheable_methods(self, methods: Vec<String>) -> Self
pub fn with_cacheable_methods(self, methods: Vec<String>) -> Self
Set cacheable methods
§Examples
use std::time::Duration;
use reinhardt_middleware::cache::{CacheConfig, CacheKeyStrategy};
let config = CacheConfig::new(Duration::from_secs(300), CacheKeyStrategy::UrlOnly)
.with_cacheable_methods(vec!["GET".to_string()]);Sourcepub fn with_excluded_paths(self, paths: Vec<String>) -> Self
pub fn with_excluded_paths(self, paths: Vec<String>) -> Self
Add paths to exclude
§Examples
use std::time::Duration;
use reinhardt_middleware::cache::{CacheConfig, CacheKeyStrategy};
let config = CacheConfig::new(Duration::from_secs(300), CacheKeyStrategy::UrlOnly)
.with_excluded_paths(vec!["/admin".to_string()]);Sourcepub fn with_max_entries(self, max_entries: usize) -> Self
pub fn with_max_entries(self, max_entries: usize) -> Self
Set maximum number of entries
§Examples
use std::time::Duration;
use reinhardt_middleware::cache::{CacheConfig, CacheKeyStrategy};
let config = CacheConfig::new(Duration::from_secs(300), CacheKeyStrategy::UrlOnly)
.with_max_entries(5000);Trait Implementations§
Source§impl Clone for CacheConfig
impl Clone for CacheConfig
Source§fn clone(&self) -> CacheConfig
fn clone(&self) -> CacheConfig
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 CacheConfig
impl Debug for CacheConfig
Auto Trait Implementations§
impl Freeze for CacheConfig
impl RefUnwindSafe for CacheConfig
impl Send for CacheConfig
impl Sync for CacheConfig
impl Unpin for CacheConfig
impl UnsafeUnpin for CacheConfig
impl UnwindSafe for CacheConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().