Я использую что-то похожее на этот ответ , чтобы загрузить некоторые данные файла в двоичный файл Rust. Я хотел бы, чтобы эти данные были сохранены в HashMap, поэтому я могу искать по ключу в основной программе. Однако я не уверен, как это сделать так, чтобы эти данные были неизменными.
Из вектора, ранее определенного в build.rs
, я предполагаю, что мог бы сделать что-то подобное в main.rs
:
const ALL_THE_FILES: &[(&str, &[u8])] = &include!(concat!(env!("OUT_DIR"), "/all_the_files.rs"));
fn main () {
let all_the_files_hashmap: HashMap<&str, &[u8]> = ALL_THE_FILES.iter().cloned().collect();
// ...
}
Есть ли способ построить этот HashMap напрямую из build.rs
и загрузить его в const
in main.rs
? Если я заменю подход вектор-кортеж, используемый в связанном ответе, на определение HashMap, повторяющееся с чем-то вроде data.insert(<key>,<value>);
, могу ли я загрузить его в main.rs
с include!
таким же образом, сохранив неизменность HashMap?
Большое спасибо! Привет