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 在 解析器工具 中
52,299 每月下载量
用于 8 个 crate(2 个直接使用)
12KB
130 行
Synattra
一个 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
,它表示任何调用句柄,无论是宏还是其他(例如 foo
或 println!
)。
通过重用 Syn 的设计,Synattra 解析器非常健壮,并且当它们编译时,通常能正常工作 :-)
变更日志
- 0.2.0:
- 更新依赖项以使用
syn
、proc-macro2
和quote
1.0
- 更新依赖项以使用
所需的 Rust 版本
Synattra 在 Rust
稳定版上运行。
设计
Synattra 使用 Syn 的设计进行属性解析。您可以在 Metered 项目 中看到它的使用。
许可
根据以下任一许可授权:
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确说明,否则根据 Apache-2.0 许可证定义,您提交的任何有意包含在作品中的贡献将按上述方式双许可,不附加任何额外条款或条件。
依赖关系
~1–1.4MB
~33K SLoC