3 个不稳定版本
使用旧的 Rust 2015
0.2.1 | 2021 年 4 月 3 日 |
---|---|
0.2.0 | 2021 年 4 月 1 日 |
0.1.3 | 2021 年 3 月 31 日 |
在 Rust 模式 中排名 2759
每月下载 24 次
7KB
turbonone (no_std)
用于调用具有泛型 Option<T>
参数的函数的微型宏。
用法
将以下内容添加到您的 Cargo.toml 文件中
[dependencies]
turbonone = "0.*"
问题
fn my_function<T>(arg: Option<T>) -> &'static str {
"Works!"
}
fn my_box_function<T>(arg: Option<Box<T>>) -> &'static str {
"Works!"
}
fn my_complex_function<T>(arg: Option<Arc<Box<T>>>) -> &'static str {
"Works!"
}
my_function(None); // cannot infer type for type parameter `T` declared on the associated function `my_function`
my_function(Some("An argument")); // Works!
my_box_function(None); // cannot infer type for type parameter `T` declared on the associated function `my_box_function`
my_box_function(Some(Box::new("An argument"))); // Works!
my_complex_function(None); // cannot infer type for type parameter `T` declared on the associated function `my_complex_function`
my_complex_function(Some(Arc::new(Box::new("An argument")))); // Works!
解决方案
#[macro_use] extern crate turbonone;
fn my_function<T>(arg: Option<T>) -> &'static str {
"Works!"
}
fn my_box_function<T>(arg: Option<Box<T>>) -> &'static str {
"Works!"
}
fn my_complex_function<T>(arg: Option<Arc<Box<T>>>) -> &'static str {
"Works!"
}
my_function(turbonone!()); // Works!
my_function(Some("An argument")); // Works!
my_box_function(turbonone!(Box)); // Works!
my_box_function(turbonone!(Box<()>)); // Works!
my_box_function(Some(Box::new("An argument"))); // Works!
my_complex_function(turbonone!(Arc<Box<()>>)); // Works!
my_complex_function(Some(Arc::new(Box::new("An argument")))); // Works!