2个不稳定版本

0.2.0 2024年6月16日
0.1.0 2024年6月14日

#352过程宏

Download history 49/week @ 2024-06-08 291/week @ 2024-06-15 6/week @ 2024-06-22

每月 68 次下载

MIT 许可证

9KB

哦,嗨 mark

对于渴望更便捷的标记特质。

简介

标记特质是Rust中的一种常见设计模式,用于表示类型的一些属性或功能,而无需任何额外实现。然而,管理标记特质可能很繁琐,并且通常会导致大量样板代码。《code>himark 库旨在通过提供用于处理标记特质的便捷工具来缓解这些问题。

关于

《code>himark 库通过提供以下两个主要功能简化了Rust中标记特质的用法

  1. 自动实现生成:使用 himark::mark 自动生成标记特质的 impl 块。
  2. 特质验证:使用 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