枚举中的 Rust 名称字段

Tei*_*iem 12 enums rust

是否可以命名或以其他方式描述 in rust 的字段enum
让我们看看这段代码

enum Move {
    Capture(Piece, Piece, (i8, i8), (i8, i8)),
    ...
}
Run Code Online (Sandbox Code Playgroud)

这些值的含义可能并不明显,在这种情况下,第一块是我的块,它捕获第二块,从而从第一个位置 ( (i8, i8)) 移动到第二个位置。

理想的是这样的

enum Move {
    Capture(piece: Piece, captured: Piece, from: (i8, i8), to: (i8, i8)),
    ...
}
Run Code Online (Sandbox Code Playgroud)

遗憾的是这不起作用。

有什么方法可以让我的内容enum更具描述性(除了评论之外)?

Net*_*ave 10

您可以使用嵌入式结构,例如:

enum Move {
    Capture{piece: Piece, captured: Piece, from: (i8, i8), to: (i8, i8)},
    ...
}
Run Code Online (Sandbox Code Playgroud)

或者更好的是,将它们带到外面,您可以在它们上实现方法,然后将其嵌入到枚举中:

struct Capture{piece: Piece, captured: Piece, from: (i8, i8), to: (i8, i8)};

impl Capture {
    ...
}

enum Move {
    Capture(Capture),
    ...
}

Run Code Online (Sandbox Code Playgroud)