3 个版本
使用旧的 Rust 2015
0.0.3 | 2016 年 4 月 7 日 |
---|---|
0.0.2 | 2016 年 4 月 7 日 |
0.0.1 | 2016 年 4 月 6 日 |
1851 在 Rust 模式 中
每月下载 31 次
23KB
473 行
specialize-rs
specialize
是一个用于处理类型专业化的实验性 Rust 库。
文档
请参阅提供的所有宏和类型的 文档,以及更详细的语法和信息。
约束
使用 constrain!()
宏可以为现有的泛型参数添加额外的类型限制。例如,假设您想要打印类型的调试表示,而不将其添加到您的泛型限制中
#[macro_use]
extern crate specialize;
fn some_func<T: SomeTrait>(t: &T) {
if let Some(debug) = constrain!(ref [t: Debug] = ()) {
println!("some_func({:?})", debug);
}
t.something();
}
它还可以用作 Any
的替代品,使泛型类型再次成为其匹配的具体类型。
专业化
specialize! { }
宏允许进行更高级的类型匹配,但由于其语法和外部函数的实现,它更为繁琐。有关详细信息,请参阅文档。