1 个不稳定版本
0.1.0 | 2024 年 8 月 8 日 |
---|
#1305 在 Rust 模式
每月 104 次下载
5KB
64 行
函数重载
这是一个通过 Rust 宏添加函数重载的 Rust 库。它支持常规函数语法,但目前不支持异步、泛型或生命周期等高级功能。
用法
使用 def!
宏定义重载函数
def! {
foo, // The name of the function
fn (a: u32, b: u32) {
println!("{}", a + b);
}, // The comma is not optional
fn (s: &str) -> () { // you dont need the return type explicitly
println!("{}", s);
},
fn (s: char) -> String { // You can also have different return types
return s.to_string();
} // You can add a comma at the end, but it's not required
}
您可以通过像调用宏一样调用重载函数来使用它
fn main() {
foo!(1, 2); // Outputs: 3
foo!("bar"); // Outputs: bar
let bar: String = foo!('a');
}
未来计划
- 改进语法:使语法更类似于定义函数。
- 新增功能:添加对泛型、生命周期、异步函数等的支持。
- Proc 宏:使用 proc 宏来使
-> ()
隐式。- 结果发现,我并不需要 proc 宏来完成这个任务
- 添加到 crates.io
依赖项
~4KB