我有以下代码,其中枚举Message
的每个变量都与一个Term
值相关联:
type Term = usize;
pub enum Message {
AppendRequest(Term),
AppendResponse(Term),
VoteRequest(Term),
VoteResponse(Term),
}
impl Message {
pub fn term(&self) -> Term {
match *self {
Message::AppendRequest(term) => term,
Message::AppendResponse(term) => term,
Message::VoteRequest(term) => term,
Message::VoteResponse(term) =>term,
}
}
}
我希望能够在不用分解实际的Message
值的情况下获取它的项。我能想到的最好方法是创建一个公共函数来为我解包值,但这感觉很笨拙。如果我添加了新的枚举值,我将不得不记得更新term
函数中的匹配语句。
有没有更简洁/人性化的方式来表达上面的代码?有没有一种方法可以说“嘿,这个枚举的每个值都将有一个关联的Term
值。”