This repository contains several pieces related to the proposed RFC #1583:
parse-generics-poc- a proof-of-concept implementation of the RFC.
parse-generics-shim- a "polyfill" shim containing an implementation of a subset of the RFC in stable
parse-macros- a crate containing higher-level parsing macros built on top of
A very basic example of using
parse-macros in a crate, and then using that crate, is provided by the
enum-as-str-test crates. Further examples can be found by looking at the
tests directory. Specifically:
derive_clone.rs- a stable implementation of the built-in
Clonederivation compiler plugin.
derive_partial_ord.rs- a stable implementation of the built-in
PartialOrdderivation compiler plugin. I was once assured this was impossible by a member of the core team.
derive_serialize.rs- a stable derivation macro for [
Serializetrait. Does not support attributes (e.g. custom field names).
reflect.rs- a very minimal compile-time reflection derivation macro. Progress is blocked on not being able to define generic constants/statics, not on parsing or generation complexity.
- Latest Releases (
- Latest Docs (
Supporting RFC #1583
The core team currently feels uneasy about accepting RFC #1583, due to its complexity and the lack of demonstrable support for being able to correctly process generics and
where clauses in macros.
If you would like to see it accepted, using the
parse-generics-shim crate (and supporting its
use-parse-generics-poc feature) will help demonstrate the desire for these macros to be accepted into the compiler.
Licensed under either of
- MIT license (see LICENSE or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (see LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.