3 个版本

0.7.3 2024年1月23日
0.7.2 2024年1月20日
0.7.1 2024年1月19日
0.7.0 2024年1月19日

1549Rust 模式

每月 37 次下载

MIT 许可证

18KB
371

多态性

这是一个过程宏,用于模拟特定情境下的多态性(函数重载),这在许多现代编程语言中都可以看到。它可以像 fnimpl 声明一样使用,但 多态性 允许具有不同签名的重复 fn 名称(参数类型)。此 多态性 实现通过使用 Local 类型绕过了孤儿规则。


示例

polymorphism!(
    pub fn func(n: i32, m: i32) -> i32 {
        n+m
    }
    pub fn func(n: f64, m: f64) -> f64 {
        n-m
    }
);

assert_eq!(polymorphism!(func(1,2)), 3);
assert_eq!(polymorphism!(func(1.0,2.0)), -1.0);

说明

  • 这是一个概念验证,因此它非常不稳定
  • 几乎未经测试,可能在边缘情况下崩溃
  • 目前请不要在生产代码库中使用它
  • 欢迎反馈 :)

无运行时依赖