1 个不稳定版本
0.1.0 | 2024年2月17日 |
---|
#1899 在 异步
2,420 每月下载
在 6 个crate中使用(通过 fuse3)
15KB
239 代码行
源自 https://github.com/rust-lang/impl-trait-utils
trait_variant
是一个很好的库,但它仍然不支持默认方法,因此我分支出来创建了一个新的库 trait-make
来支持默认方法
用户可以通过少量更改将 trait_variant
替换掉
trait_make
trait_make
生成一个基特质的专用版本,该版本使用 async fn
和/或 -> impl Trait
。
例如,如果您想为您的特质创建一个 Send
版本,您将编写
#[trait_make::make(IntFactory: Send)]
trait LocalIntFactory {
async fn make(&self) -> i32;
fn stream(&self) -> impl Iterator<Item = i32>;
fn call(&self) -> u32;
}
trait_make::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_make::make
的文档。
许可证和使用说明
根据您的选择,受Apache许可证版本2.0 或 MIT许可证许可。
依赖项
~290–740KB
~18K SLoC