Лучшие практики использования постоянных хеш-карт в Rust
Описание проблемы:
Я пытаюсь установить константную, предопределенную хэш-карту в Rust, но не уверен, как лучше всего это сделать с точки зрения практики. Я создал следующий код:
use std::collections::HashMap;
pub const Countries: HashMap<&str, &str> = [
("UK", "United Kingdom"),
("US", "United States")
].iter().cloned().collect();
В дальнейшем я планирую использовать эту хэш-карту в библиотеке.
Я хотел бы узнать, является ли такой подход правильным или же мне стоит рассмотреть использование конструкции match
внутри функции вместо этого решения? Сообщите, пожалуйста, о лучших практиках в Rust для работы с подобными коллекциями.
1 ответ(ов)
Вы можете использовать lazy_static для ленивающего инициализирования данных во время выполнения программы.
Лично я предпочитаю использовать phf для статических коллекций, если данные действительно статичны.
Пример кода:
use phf::{phf_map};
static COUNTRIES: phf::Map<&'static str, &'static str> = phf_map! {
"US" => "United States",
"UK" => "United Kingdom",
};
Таким образом, вы можете выбрать подходящий способ в зависимости от ваших требований к инициализации данных.
Как обновить значение по ключу в хэш-карте?
Почему нет ConcurrentHashSet, если есть ConcurrentHashMap?
Почему println! не работает в юнит-тестах Rust?
Как умножать/делить/складывать/вычитать числа разных типов?
Что означает "Sized не реализован"?