2个不稳定版本
0.2.0 | 2024年6月16日 |
---|---|
0.1.0 | 2024年6月14日 |
#352 在 过程宏
每月 68 次下载
9KB
哦,嗨 mark
。
对于渴望更便捷的标记特质。
简介
标记特质是Rust中的一种常见设计模式,用于表示类型的一些属性或功能,而无需任何额外实现。然而,管理标记特质可能很繁琐,并且通常会导致大量样板代码。《code>himark 库旨在通过提供用于处理标记特质的便捷工具来缓解这些问题。
关于
《code>himark 库通过提供以下两个主要功能简化了Rust中标记特质的用法
- 自动实现生成:使用
himark::mark
自动生成标记特质的impl
块。 - 特质验证:使用
himark::marker
确保特质符合标记特质的条件。
用法
为标记特质生成实现
himark::mark
属性宏会为指定的标记特质生成实现,减少了样板代码的需求。
示例
use himark::mark;
#[mark(MyMarkerTrait)]
struct MyStruct;
这将自动生成以下实现
impl MyMarkerTrait for MyStruct {}
验证标记特质
himark::marker
属性宏验证特质是否符合标记特质的条件,确保它没有关联项,并且所有超特质也都是标记特质或自动特质。
示例
use himark::marker;
#[marker]
trait MyMarkerTrait {}
如果特质不符合标记特质的条件,此宏将产生编译时错误。
推荐配置
为了获得最佳用户体验,我们建议将 himark
导入为 hi
,可以使用 use himark as hi;
或自定义 Cargo.toml
配置。
[dependencies]
hi = { package = "himark", version = ... }
并编写如下代码
use himark as hi;
#[hi::mark(...)]
struct Foo { }
功能
- 自动实现生成:简化了实现标记特性的过程。
- 特性验证:确保您的标记特性符合预期的结构。
贡献
欢迎贡献!请随意提交一个 pull request 或在 GitHub 上打开一个 issue。
许可证
本项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。
依赖
~240–680KB
~16K SLoC