3个版本
0.1.2 | 2024年7月22日 |
---|---|
0.1.1 | 2024年7月22日 |
0.1.0 | 2024年7月22日 |
286 在 过程宏 中
每月506次下载
6KB
71 行
Arc特征
arc_trait
是一个过程宏,简化了为 std::sync::Arc<T>
实现特质的流程。通过将此宏应用于一个特质,您使 Arc<T>
能够在内部类型 T
实现该特质时实现它,从而节省您编写重复的样板代码。
功能
- 自动为
std::sync::Arc<T>
类型实现特质。 - 简化代码并减少样板代码。
- 使用简单属性语法易于使用。
安装
将此添加到您的 Cargo.toml
[dependencies]
arc_trait = "0.1.0"
并将其添加到您的crate根目录
extern crate arc_trait;
use arc_trait::arc_trait;
使用方法
将 arc_trait 属性应用于您的特质,如示例所示
extern crate arc_trait;
use arc_trait::arc_trait;
use std::sync::Arc;
#[arc_trait]
trait ExampleTrait {
fn example_method(&self, value: i32) -> i32;
}
struct Example;
impl ExampleTrait for Example {
fn example_method(&self, value: i32) -> i32 {
value + 1
}
}
fn main() {
let example = Arc::new(Example);
assert_eq!(example.example_method(1), 2);
}
它是如何工作的
arc_trait 通过以下方式工作:
- 解析给定的特质以识别其中所有方法。
- 为
std::sync::Arc<T>
生成特质的实现,该方法将方法调用转发到由Arc
包装的内部值。
贡献
欢迎贡献!请随意在 GitHub 上打开问题或提交pull请求。
许可证
本项目采用MIT许可证。有关详细信息,请参阅LICENSE文件。
依赖关系
~2.6–9MB
~74K SLoC