如何在Rust中动态匹配枚举变体?

时间:2017-07-14 13:45:26

标签: enums rust pattern-matching

我有以下枚举:

enum Token {
    Word(String),
    Semicolon,
    Comma
}

我没有实施Eq。我想写一个函数来匹配上面的类型比较:

fn expect(t: &Token, const_t: &Token) -> bool {
    match (t, const_t) {
        (&Token::Semicolon, &Token::Semicolon) => true,
        (&Token::Comma, &Token::Comma) => true,
        _ => false,
    }
}

上面的代码正在运行,但可扩展性差。如果我有100个变种,我会有很多辅助函数,并且会依赖默认匹配_

我没有看到隐藏Enum的不同变体的简单方法,只是简单地说'#34;我想匹配两个类似枚举的变体"。

为此目的还有其他解决方法吗?

0 个答案:

没有答案