#async-trait #proc-macro #async #existential-types #gats

real-async-trait

一个使用实验性功能来绕过异步特质类型擦除的 proc 宏

3 个版本

0.0.2 2020 年 7 月 14 日
0.0.1 2020 年 7 月 14 日
0.0.0 2020 年 7 月 14 日

#1535 in 异步

MIT/Apache

31KB
420 代码行

#[real_async_trait]

Build Status Crates.io Documentation

该软件包提供了一种证明概念 proc 宏属性,允许异步特质成为可能,而无需将所有内容都包装在 Box 中并擦除类型。这是由于实验性的 generic_associated_types 功能以及不稳定的 type_alias_impl_trait 功能才得以实现。

免责声明

generic_associated_types 功能不是一个不稳定的功能,而是一个“不完整”的实验性功能;rustc 甚至在使用它时会给你发出警告。 请勿在生产代码中使用此功能。目前,使用类型擦除的异步特质属性 proc 宏,如 Dtolnay 的 async-trait 软件包,或类似的软件包,可能是一个更好的选择。尽管如此,如果你能测试它,找到编译器或此处缺少的功能,并提交一个 issue,这将对我以及 Rust 编译器来说都是一件很棒的事情。

许可证

根据您的选择,许可如下:

任选其一。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证的定义,您有意提交的任何贡献,均应按上述方式双许可,不附加任何其他条款或条件。

依赖项

~1.5MB
~35K SLoC