У меня есть конфигурация, которую я хочу инициализировать при запуске, но мне не нужно каждый раз перечитывать файл. Чтобы сделать это, я использую lazy_stati c:
lazy_static! {
static ref SETTINGS: Settings = {
match Settings::init() {
Ok(c) => c,
Err(e) => panic!("{}", e),
}
};
}
Но теперь у меня есть метод, который обновляет этот файл конфигурации, и я хочу "повторно инициализировать" / обновить его, без необходимости Перезапустите программу.
pub fn save_config_file(data: &str) -> Result<String, Error> {
fs::write(CONFIG_FILE, data)?;
SETTINGS = {
match Settings::init() {
Ok(c) => c, // The line with the error
Err(e) => panic!("{}", e),
}
};
Self::read_config_file()
}
Что дает мне ошибку: [rustc E0308] [E] mismatched types expected struct settings::SETTINGS, found struct settings::Settings
Есть ли способ повторно инициализировать lazy_stati c? Или мне нужно перезапустить программу?