3个版本

0.1.2 2024年7月22日
0.1.1 2024年7月22日
0.1.0 2024年7月22日

286过程宏

Download history 357/week @ 2024-07-22 149/week @ 2024-07-29

每月506次下载

MIT 许可证

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