rusty_bin/monitor/config/
storage.rs

1//! Storage and file management configuration
2use serde::{Deserialize, Serialize};
3use std::path::PathBuf;
4
5/// Storage and file management configuration
6#[derive(Default, Debug, Clone, Serialize, Deserialize)]
7pub struct StorageConfig {
8    /// Base directory path for all data storage
9    pub base_path: PathBuf,
10    /// Specific path for market data files
11    pub market_data_path: PathBuf,
12    /// Prefix for generated data files
13    pub file_prefix: String,
14    /// File extension for data files
15    pub file_extension: String,
16    /// Date format string for file naming
17    pub date_format: String,
18    /// Whether to rotate files at midnight
19    pub rotate_at_midnight: bool,
20    /// Whether to enable compression for stored data
21    pub enable_compression: bool,
22    /// Compression algorithm to use (e.g., "zstd", "lz4")
23    pub compression_algorithm: String,
24    /// Compression level (0-22 for zstd)
25    pub compression_level: u8,
26    /// Hours after which to compress old files
27    pub compress_after_hours: u64,
28    /// Whether to delete raw files after compression
29    pub delete_raw_after_compression: bool,
30    /// Maximum file size in megabytes before rotation
31    pub max_file_size_mb: u64,
32    /// Maximum number of records to batch before writing
33    pub max_batch_size: usize,
34    /// Maximum number of records per file before rotation
35    pub max_records_per_file: u64,
36    /// Number of days to retain data files
37    pub retention_days: u32,
38    /// Interval in seconds for checking rotation conditions
39    pub rotation_check_interval_s: u64,
40}