首页 > 解决方案 > 如何检查宏规则中的 arg 类型?

问题描述

如何检查 macro_rules 内部(甚至外部)的特定类型?

我想使用 macro_rules 模拟函数重载,但似乎我受到缺乏类型检查的限制。我知道我可以检查 Result 和 Option 枚举,但我需要查看参数是 &String 还是 bool 或其他东西。我怎样才能做到这一点?

macro_rules! my_macro {
    ($arg:expr) => {
        match $arg {
            // String => {},
            // bool => {},
            // _ => {}
        }
    };
}

标签: rust

解决方案


推荐阅读