5个版本
0.1.2 | 2024年3月18日 |
---|---|
0.1.1 | 2024年1月5日 |
0.1.0 | 2023年12月21日 |
0.0.1 | 2023年12月18日 |
0.0.0 | 2023年12月15日 |
#136 in 异步
136,163 monthly downloads
用于 42 个crates (21直接)
15KB
224 行
Rust中使用impl特质的实用工具。
trait_variant
trait_variant
生成了一个使用async fn
和/或-> impl Trait
的基特质的专用版本。
例如,如果您想要您特质的Send
版本,您将编写
#[trait_variant::make(IntFactory: Send)]
trait LocalIntFactory {
async fn make(&self) -> i32;
fn stream(&self) -> impl Iterator<Item = i32>;
fn call(&self) -> u32;
}
trait_variant::make
会生成一个名为IntFactory
的额外特质
use core::future::Future;
trait IntFactory: Send {
fn make(&self) -> impl Future<Output = i32> + Send;
fn stream(&self) -> impl Iterator<Item = i32> + Send;
fn call(&self) -> u32;
}
实现者可以选择实现LocalIntFactory
或IntFactory
,具体取决于情况。
有关更多详细信息,请参阅trait_variant::make
的文档。
许可证和用法说明
根据您的选择,受Apache License,版本2.0或MIT许可证许可。
依赖关系
~295–750KB
~18K SLoC