0

Лучшие практики использования постоянных хеш-карт в Rust

6

Описание проблемы:

Я пытаюсь установить константную, предопределенную хэш-карту в Rust, но не уверен, как лучше всего это сделать с точки зрения практики. Я создал следующий код:

use std::collections::HashMap;

pub const Countries: HashMap<&str, &str> = [
    ("UK", "United Kingdom"),
    ("US", "United States")
].iter().cloned().collect();

В дальнейшем я планирую использовать эту хэш-карту в библиотеке.

Я хотел бы узнать, является ли такой подход правильным или же мне стоит рассмотреть использование конструкции match внутри функции вместо этого решения? Сообщите, пожалуйста, о лучших практиках в Rust для работы с подобными коллекциями.

1 ответ(ов)

0

Вы можете использовать lazy_static для ленивающего инициализирования данных во время выполнения программы.

Лично я предпочитаю использовать phf для статических коллекций, если данные действительно статичны.

Пример кода:

use phf::{phf_map};

static COUNTRIES: phf::Map<&'static str, &'static str> = phf_map! {
    "US" => "United States",
    "UK" => "United Kingdom",
};

Таким образом, вы можете выбрать подходящий способ в зависимости от ваших требований к инициализации данных.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь