【发布时间】:2021-10-13 02:21:32
【问题描述】:
我正在 Rust 中创建一个语言环境库,我需要一个地区的枚举。
大多数地区代码可以表示为枚举值,Uk,Jp,Kr ... 。但也有一些地区代码只包含数字,例如001、002 ...等。
所以我像下面这样写了枚举。
#[derive(Debug, PartialEq, Eq)]
#[repr(u16)]
pub enum Territory {
_001,
_002,
Us,
Uk,
Jp,
Kp,
Kr,
}
但是,在 Rust 中,以下划线开头的名称具有不同的含义。 所以我很犹豫这是否是正确的方法。
这种情况还有其他方法吗?在其他设计良好的库中是否有此类案例的示例?
【问题讨论】:
-
这些名称是否使用得如此普遍以至于不适合使用较长的名称?可能是
Unnamed001之类的东西? -
@kmdreko 001 不是一个未命名的区域。具体来说,001 表示世界,002 表示非洲。当然,还有很长的英文名字。但地区代码应该是语言中立的。
-
那么也许只是
N001?你将不得不选择一些角色。