pub struct CacheConfig { /* private fields */ }Expand description
Cache configuration.
Controls cache behavior including size limits, persistence, and location.
§Default Values
max_bytes: 50 MB (52,428,800 bytes)enable_persistence:truecache_root:.sqry-cache(relative to working directory)background_writer:true(use background thread for writes)
§Environment Variables
Configuration can be overridden via environment variables:
SQRY_CACHE_MAX_BYTES: Maximum cache size in bytesSQRY_CACHE_DISABLE_PERSIST: Set to1to disable persistenceSQRY_CACHE_ROOT: Custom cache directory locationSQRY_CACHE_POLICY:lru,tiny_lfu, orhybrideviction policySQRY_CACHE_POLICY_WINDOW: Protected window ratio for hybridTinyLFU(float, e.g.0.2)
§Examples
use sqry_core::cache::CacheConfig;
// Default configuration
let config = CacheConfig::default();
assert_eq!(config.max_bytes(), 50 * 1024 * 1024); // 50 MB
// Custom configuration
let config = CacheConfig::new()
.with_max_bytes(100 * 1024 * 1024) // 100 MB
.with_persistence(false); // Memory-onlyImplementations§
Source§impl CacheConfig
impl CacheConfig
Sourcepub const DEFAULT_MAX_BYTES: u64
pub const DEFAULT_MAX_BYTES: u64
Default maximum cache size (50 MB).
Sourcepub const DEFAULT_CACHE_ROOT: &'static str = ".sqry-cache"
pub const DEFAULT_CACHE_ROOT: &'static str = ".sqry-cache"
Default cache root directory.
Sourcepub const DEFAULT_POLICY_WINDOW_RATIO: f32 = 0.20
pub const DEFAULT_POLICY_WINDOW_RATIO: f32 = 0.20
Default protected window ratio for hybrid/tiny LFU policies.
Sourcepub const MIN_POLICY_WINDOW_RATIO: f32 = 0.05
pub const MIN_POLICY_WINDOW_RATIO: f32 = 0.05
Minimum allowed protected window ratio for TinyLFU policies.
Sourcepub const MAX_POLICY_WINDOW_RATIO: f32 = 0.95
pub const MAX_POLICY_WINDOW_RATIO: f32 = 0.95
Maximum allowed protected window ratio for TinyLFU policies.
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new cache configuration with default values.
§Examples
use sqry_core::cache::CacheConfig;
let config = CacheConfig::new();Sourcepub fn from_env() -> Self
pub fn from_env() -> Self
Create configuration from environment variables.
Reads configuration from:
SQRY_CACHE_MAX_BYTES: Override max cache sizeSQRY_CACHE_DISABLE_PERSIST: Set to1to disable persistenceSQRY_CACHE_ROOT: Custom cache directory
Falls back to default values if environment variables are not set.
§Examples
use sqry_core::cache::CacheConfig;
// Reads from environment, falls back to defaults
let config = CacheConfig::from_env();Sourcepub fn with_max_bytes(self, max_bytes: u64) -> Self
pub fn with_max_bytes(self, max_bytes: u64) -> Self
Set maximum cache size in bytes.
§Examples
use sqry_core::cache::CacheConfig;
let config = CacheConfig::new().with_max_bytes(100 * 1024 * 1024); // 100 MBSourcepub fn with_persistence(self, enable: bool) -> Self
pub fn with_persistence(self, enable: bool) -> Self
Enable or disable persistent cache to disk.
§Examples
use sqry_core::cache::CacheConfig;
// Memory-only cache
let config = CacheConfig::new().with_persistence(false);Sourcepub fn with_cache_root(self, cache_root: PathBuf) -> Self
pub fn with_cache_root(self, cache_root: PathBuf) -> Self
Set cache root directory.
§Examples
use sqry_core::cache::CacheConfig;
use std::path::PathBuf;
let config = CacheConfig::new().with_cache_root(PathBuf::from("/tmp/sqry-cache"));Sourcepub fn with_background_writer(self, enable: bool) -> Self
pub fn with_background_writer(self, enable: bool) -> Self
Enable or disable background writer thread.
When enabled, cache writes are performed asynchronously to avoid blocking query execution. Disable for testing or debugging.
§Examples
use sqry_core::cache::CacheConfig;
// Synchronous writes (useful for testing)
let config = CacheConfig::new().with_background_writer(false);Sourcepub fn with_policy_kind(self, kind: CachePolicyKind) -> Self
pub fn with_policy_kind(self, kind: CachePolicyKind) -> Self
Override eviction policy kind.
Sourcepub fn with_policy_window_ratio(self, ratio: f32) -> Self
pub fn with_policy_window_ratio(self, ratio: f32) -> Self
Override protected window ratio for hybrid/TinyLFU policies.
Sourcepub fn is_persistence_enabled(&self) -> bool
pub fn is_persistence_enabled(&self) -> bool
Check if persistence is enabled.
Sourcepub fn cache_root(&self) -> &PathBuf
pub fn cache_root(&self) -> &PathBuf
Get cache root directory.
Sourcepub fn is_background_writer_enabled(&self) -> bool
pub fn is_background_writer_enabled(&self) -> bool
Check if background writer is enabled.
Sourcepub fn policy_kind(&self) -> CachePolicyKind
pub fn policy_kind(&self) -> CachePolicyKind
Get eviction policy kind.
Sourcepub fn policy_window_ratio(&self) -> f32
pub fn policy_window_ratio(&self) -> f32
Get protected window ratio for TinyLFU/hybrid policies.
Trait Implementations§
Source§impl Clone for CacheConfig
impl Clone for CacheConfig
Source§fn clone(&self) -> CacheConfig
fn clone(&self) -> CacheConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
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
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>
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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more