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}