4 个版本

0.2.1 2020 年 5 月 25 日
0.2.0 2019 年 8 月 24 日
0.1.1 2019 年 2 月 7 日
0.1.0 2019 年 2 月 6 日

#177解析器工具

Download history 11410/week @ 2023-12-15 4194/week @ 2023-12-22 5967/week @ 2023-12-29 10243/week @ 2024-01-05 7965/week @ 2024-01-12 9233/week @ 2024-01-19 9577/week @ 2024-01-26 10633/week @ 2024-02-02 13203/week @ 2024-02-09 12062/week @ 2024-02-16 12022/week @ 2024-02-23 11367/week @ 2024-03-01 14630/week @ 2024-03-08 14672/week @ 2024-03-15 12075/week @ 2024-03-22 8917/week @ 2024-03-29

52,299 每月下载量
用于 8 个 crate(2 个直接使用)

Apache-2.0 或 MIT

12KB
130

Synattra

Build Status License Cargo Documentation Rust 1.31+

一个 Syn 属性解析器工具包

Synattra 扩展了 Syn,提供了易于解析自定义属性的框架。

值得注意的是,Synattra 提供了一个 KVOption<K, V> 类型,允许以 key = value 的形式解析属性,其中 key 可以是任何标记或自定义关键字(包括 Rust 关键字!)而 value 可以是任何可以从 TokenStream 解析的类型。Synattra 从 Metered 项目 中提取出来,该项目需要将类型路径表示为选项值(例如 path::to::GenericType<u32>),这是现有属性解析系统不支持的功能(无论是 Syn 自身的 Meta 解析功能还是其他 crate,如 prom-attire-rs)。

Synattra 还支持单值或多值,可以采用 Foo[Foo, Bar] 的形式。

最后,Synattra 提供了一些额外的类型,例如 InvokePath,它表示任何调用句柄,无论是宏还是其他(例如 fooprintln!)。

通过重用 Syn 的设计,Synattra 解析器非常健壮,并且当它们编译时,通常能正常工作 :-)

变更日志

  • 0.2.0:
    • 更新依赖项以使用 synproc-macro2quote 1.0

所需的 Rust 版本

Synattra 在 Rust 稳定版上运行。

设计

Synattra 使用 Syn 的设计进行属性解析。您可以在 Metered 项目 中看到它的使用。

许可

根据以下任一许可授权:

任选其一。

贡献

除非您明确说明,否则根据 Apache-2.0 许可证定义,您提交的任何有意包含在作品中的贡献将按上述方式双许可,不附加任何额外条款或条件。

依赖关系

~1–1.4MB
~33K SLoC