有没有办法使用现有的结构作为枚举变体?

时间:2018-04-07 07:27:29

标签: rust

我使用enum进行多态,类似于以下内容:

enum MyType {
    Variant1 { a: i32, b: i32 },
    Variant2 { a: bool, b: bool },
}

是否有使用Variant1Variant2的现有结构的干净方法?我做了以下事情:

struct Variant1 {
    a: i32,
    b: i32,
}

struct Variant2 {
    a: bool,
    b: bool,
}

enum MyType {
    Variant1(Variant1),
    Variant2(Variant2),
}

但感觉非常笨重。我想知道是否有更好的方法来完成类似的事情。

2 个答案:

答案 0 :(得分:3)

有一个关于使枚举变体成为自己类型的RFC:Types for enum variants。不幸的是,它被推迟了,因为这不被视为优先事项。 这意味着,现在,您提出的方式是枚举变体类型的唯一方法。

答案 1 :(得分:1)

不,这究竟是如何运作的。