#macro #place #proc-macro #wish #non-proc #expand


Macros you wish you had while you were writing your non-proc macro

5 releases (1 stable)

1.0.0 Dec 22, 2023
0.2.0 Sep 22, 2023
0.1.3 Sep 3, 2023

#151 in Procedural macros

38 downloads per month
Used in 3 crates (via termal_core)

Custom license



crates.io Downloads

Macros you wish you had while you were writing your non-proc macro.

This library privides some macros that make writing regural non-proc macros much simpler, readable and with less dirty tricks.

The main macro of this library is place. It is able to expand the macros in this library in reverse expansion order.

If you have some macros that you would like to add feel free to open new issue on GitHub.

How to get it

With cargo

cargo add place_macro

In Cargo.toml

place_macro = "1.0.0"


  • place: expands the following macros in reverse order, see docs for more info
  • ignore: expands to nothing
  • identity: expands to what is given, it bypasses the reverse order in the place macro
  • dollar: expands to dollar sign $
  • string: concats the contents into single string, see the doc
  • identifier: concats the contents into sintle identifier in the same way as string
  • head: expands to the first token
  • tail: expands to all but the first token
  • start: expands to all but the last token
  • last: expands to the last token
  • reverse: expands to the tokens in reverse order
  • stringify: expands to string of the input
  • replace_newline: replaces all newlines and folowing whitespace in literal with the given literal
  • str_replace: replace in string literal
  • to_case: change the case of a identifier


For examples and more detailed info about how to use the macros in this crate see docs


~13K SLoC