我正在Rust中创建一个区域库,我需要一个区域enum。
大多数地区代码可以表示为枚举值,Uk, Jp, Kr ... .但也有一些地区代码只包含数字,如001、002……等。
所以我将枚举写成如下所示:
#[derive(Debug, PartialEq, Eq)]
#[repr(u16)]
pub enum Territory {
_001,
_002,
Us,
Uk,
Jp,
Kp,
Kr,
}
然而,在Rust中,以下划线开头的名字有不同的含义。所以我在犹豫这是不是正确的方法。
这种情况还有别的办法吗?在其他设计良好的库中有这样的例子吗?
我认为对于这种情况没有特定的约定。我建议你选择一个字母或一个简短的单词作为前缀。例如:Num001
,Num002
, ....如果您希望对枚举变量进行排序,并且以某种方式将数值置于列表的顶部或底部,甚至一些人工前缀(如Aaa
或Zzz
)也可能不是一个坏主意。