#泛型 #解析 # #where #解析器

aidanhs-tmp-parse-generics-shim

对提议的 RFC #1583 的稳定适配器;提供解析泛型和 where 子句的宏

1 个不稳定版本

使用旧的 Rust 2015

0.1.3 2017 年 4 月 6 日

#2635Rust 模式


用于 2 个包(通过 hadean

MIT/Apache

51KB
898

parse-generics

此存储库包含与提议的 RFC #1583 相关的几个组件。

  • parse-generics-poc - RFC 的一个概念验证实现。
  • parse-generics-shim - 包含对 RFC 部分内容的稳定实现,并使用宏规则实现的“补丁”。
  • parse-macros - 包含基于 parse-generics-shim 的高级解析宏的包。

在包中提供使用 parse-macros 的一个非常基本的示例,然后使用 包,由 enum-as-strenum-as-str-test 包提供。更多示例可以在查看 parse-macro 包的 tests 目录中找到。特别是

  • derive_clone.rs - 内置 Clone 衍生编译器插件的稳定实现。
  • derive_partial_ord.rs - 内置 PartialOrd 衍生编译器插件的稳定实现。我曾经被核心团队的一员断言这是不可能的。
  • derive_serialize.rs - 为 serde's Serialize 特性提供的稳定衍生宏。不支持属性(例如自定义字段名称)。
  • reflect.rs - 一个非常基本的编译时反射衍生宏。进度受阻于无法定义泛型常量/静态变量,而不是解析或生成复杂性。

链接

支持RFC #1583

核心团队目前对接受RFC #1583感到不安,因为其复杂性以及缺乏在宏中正确处理泛型和where子句的可证明支持。

如果您想看到它被接受,使用parse-generics-shim crate(并支持其use-parse-generics-poc功能)将有助于展示将这些宏接受到编译器中的意愿。

许可证

根据您的选择,许可如下:

任选其一。

贡献

除非您明确声明,否则您有意提交并包含在您的工作中的任何贡献都应按照上述方式双重许可,而不附加任何额外条款或条件。

依赖项