3个版本
0.1.2 | 2023年7月26日 |
---|---|
0.1.1 | 2023年7月26日 |
0.1.0 | 2023年7月26日 |
1545 在 过程宏 中
10KB
205 行
generic_trait_alias
包含一个过程宏属性,可用于创建具有更直观语法的类型别名(类似于处理结构别名的方式)
安装
cargo install generic_trait_alias
或
cargo add generic_trait_alias
示例
use generic_trait_alias::trait_alias;
// Define internal trait
pub trait Z {
fn z(&self) -> u8;
}
// Creates a pub trait alias with internal and external traits
#[trait_alias]
pub type X = Z + Clone;
// Creates a private trait alias with internal and external traits
#[trait_alias]
type A = Z + Clone;
// Only works with public alias x
pub fn example_pub<T: X>(x: T) {
println!("{}", x.z());
}
// Private functions can work with public or private alias
fn example<T: A>(x: A) {
println!("{}", x.z());
}
限制
目前不支持组合泛型特性