pub struct StorageConfig {
pub data_dir: String,
pub max_cache_size_bytes: u64,
pub enable_persistence: bool,
pub sync_interval_secs: u64,
pub enable_compression: bool,
pub gc_interval_secs: u64,
}Expand description
Storage configuration
§Examples
Using the default configuration:
use chie_shared::StorageConfig;
let config = StorageConfig::default();
assert_eq!(config.data_dir, "./chie_data");
assert_eq!(config.max_cache_size_bytes, 10 * 1024 * 1024 * 1024); // 10 GB
assert!(config.enable_persistence);
assert!(config.enable_compression);
assert!(config.validate().is_ok());Building a custom configuration:
use chie_shared::StorageConfigBuilder;
let config = StorageConfigBuilder::new()
.data_dir("/var/lib/chie")
.max_cache_size_gb(50)
.enable_persistence(true)
.enable_compression(true)
.sync_interval_secs(600) // 10 minutes
.gc_interval_secs(7200) // 2 hours
.build();
assert_eq!(config.data_dir, "/var/lib/chie");
assert_eq!(config.max_cache_size_bytes, 50 * 1024 * 1024 * 1024);
assert_eq!(config.sync_interval_secs, 600);Fields§
§data_dir: StringPath to storage directory
max_cache_size_bytes: u64Maximum cache size in bytes
enable_persistence: boolEnable disk persistence
sync_interval_secs: u64Sync interval in seconds (0 = no auto-sync)
enable_compression: boolEnable compression
gc_interval_secs: u64Garbage collection interval in seconds
Implementations§
Source§impl StorageConfig
impl StorageConfig
Sourcepub fn validate(&self) -> ChieResult<()>
pub fn validate(&self) -> ChieResult<()>
Trait Implementations§
Source§impl Clone for StorageConfig
impl Clone for StorageConfig
Source§fn clone(&self) -> StorageConfig
fn clone(&self) -> StorageConfig
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 StorageConfig
impl Debug for StorageConfig
Source§impl Default for StorageConfig
impl Default for StorageConfig
Source§impl<'de> Deserialize<'de> for StorageConfig
impl<'de> Deserialize<'de> for StorageConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for StorageConfig
impl RefUnwindSafe for StorageConfig
impl Send for StorageConfig
impl Sync for StorageConfig
impl Unpin for StorageConfig
impl UnwindSafe for StorageConfig
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