Соглашение для значения, начинающегося с числового

#rust #enums

Вопрос:

Я создаю библиотеку локалей в Rust, и мне нужно перечисление территорий.

Большинство кодов территорий могут быть представлены в виде значения перечисления, Uk, Jp, Kr … . Но есть некоторые коды территорий, содержащие только цифры, такие как 001, 002 … и т. Д.

Поэтому я написал перечисление, как показано ниже.

 #[derive(Debug, PartialEq, Eq)]
#[repr(u16)]
pub enum Territory {
    _001,
    _002,
    Us,
    Uk,
    Jp,
    Kp,
    Kr,
}
 

Однако в Rust имена, начинающиеся с подчеркивания, имеют разные значения.
Поэтому я сомневаюсь, правильный ли это путь.

Есть ли какой-нибудь другой способ для этого дела? Есть ли примеры таких случаев в другой хорошо спроектированной библиотеке?

Комментарии:

1. Используются ли они так часто, что более длинное название не подходит? Что-то вроде Unnamed001 «возможно»?

2. @kmdreko 001 не является безымянной областью. В деталях 001 указывает на мир, а 002-на Африку. Есть, конечно, длинные английские имена. Но коды территорий должны быть нейтральными по языку.

3. Может быть, именно N001 тогда? Тебе придется выбрать какого-нибудь персонажа.

Ответ №1:

Я не думаю, что существует какое-либо соглашение специально для этого случая. Я бы предложил вам выбрать букву или короткое слово в качестве префикса. Примером может быть Num001 , Num002 ,…. Если вы хотите, чтобы ваши варианты перечисления были отсортированы и каким-то образом числовые значения находились вверху или внизу списка, даже какой-то искусственный префикс, такой как Aaa или Zzz , может оказаться неплохой идеей.

Комментарии:

1. Мои кандидаты-T001, T002 … или _001, _002, как написано в вопросе. Действительно ли эта плохая идея начинается с подчеркивания? Я бы хотел, чтобы значения перечисления были отсортированы..