solana_validator_optimizer/
config.rs

1use config::Config;
2use serde::Deserialize;
3
4#[derive(Debug, Deserialize)]
5pub struct AppConfig {
6    pub snapshot_url: String,
7    pub snapshot_sha256: Option<String>, //  New field for optional hash check
8    pub rpc_url: String,
9    pub metrics_port: u16,
10    pub cache_size: usize,
11}
12
13impl AppConfig {
14    pub fn load() -> Result<Self, config::ConfigError> {
15        Config::builder()
16            .add_source(config::File::with_name("Config").required(false))
17            .add_source(config::Environment::with_prefix("OPTIMIZER"))
18            .build()?
19            .try_deserialize()
20    }
21}