proc-macro2-impersonated 0.1.1

A substitute implementation of the compiler's `proc_macro` API
Documentation

proc-macro2-impersonated

Adapted from proc-macro2 Removed wrap proc-macro for correct span outside rust sources Not use in proc-macro context if you don't know what you do

Build Status Latest Version Rust Documentation

A wrapper around the procedural macro API of the compiler's proc_macro crate. This library serves two purposes:

  • Bring proc-macro-like functionality to other contexts like build.rs and main.rs. Types from proc_macro are entirely specific to procedural macros and cannot ever exist in code outside of a procedural macro. Meanwhile proc_macro2 types may exist anywhere including non-macro code. By developing foundational libraries like syn and quote against proc_macro2 rather than proc_macro, the procedural macro ecosystem becomes easily applicable to many other use cases and we avoid reimplementing non-macro equivalents of those libraries.

  • Make procedural macros unit testable. As a consequence of being specific to procedural macros, nothing that uses proc_macro can be executed from a unit test. In order for helper libraries or components of a macro to be testable in isolation, they must be implemented using proc_macro2.

Usage

[dependencies]
proc-macro2-impersonated = "1.0"

License