我怎样才能定义"重叠" Rust中的枚举?

时间:2014-08-10 07:43:12

标签: enums rust

我想要以下两个枚举。但是,由于"重复定义"以下代码无法编译。 LargestMagnitudeSmallestMagnitude

enum SymmetricWhich {
    LargestMagnitude,
    SmallestMagnitude,
    LargestAlgebraic,
    SmallestAlgebraic,
    BothEnds,
}

enum NonsymmetricWhich {
    LargestMagnitude,
    SmallestMagnitude,
    LargestRealPart,
    SmallestRealPart,
    LargestImaginaryPart,
    SmallestImaginaryPart,
}

如何避免这种重复定义?有没有办法在不需要重命名其中一个的枚举值的情况下?我考虑了将重复值移动到第三个枚举的可能性(下面给出CommonWhich),希望我可以然后导出" from是作为一个基类,但我不清楚Rust是否支持这个(或如何)。

enum CommonWhich {
    LargestMagnitude,
    SmallestMagnitude,
}

最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

目前在枚举中没有任何此类子类型;所有变体都只是一种具体类型,你想要做的事情是不可能的。

您需要重命名变体以使它们保持不相交,或者将枚举放在不同的模块中。

相关问题