Какие черты должны иметь простые перечисления в Rust? - PullRequest
1 голос
/ 22 сентября 2019

У меня много таких перечислений, у них есть только теги - без каких-либо параметров конструктора:

pub enum VarRec {
    Variant,
    Record,
}

В настоящее время я получаю их с такими чертами:

#[derive(Debug, PartialEq, Eq, Copy, Clone, Ord, PartialOrd, Hash)]

Я бы хотел, чтобы у них было максимальное количество реализованных черт, поскольку перечисление действительно простое, и я не хочу, чтобы они теряли силу, пропуская реализацию черт.Что-нибудь еще, чтобы добавить к производному списку?

1 Ответ

1 голос
/ 22 сентября 2019

Хорошее резюме можно найти в Rust API Guidelines .У вас есть большинство общих черт, которые они рекомендуют, но вы также можете добавить Display и, возможно, Default, если есть один вариант, который вы считаете более базовым.derive_more ящик может помочь сгладить процесс реализации Display.

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

...