#macro #proc-macro #place #wish #non-proc #less #readable

place_macro

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

#241 in Procedural macros

Download history 15/week @ 2024-06-10 4/week @ 2024-06-17 13/week @ 2024-06-24 18/week @ 2024-07-01 17/week @ 2024-07-15 9/week @ 2024-07-29 16/week @ 2024-08-05 8/week @ 2024-08-12 7/week @ 2024-08-19 38/week @ 2024-08-26 15/week @ 2024-09-02 27/week @ 2024-09-09 18/week @ 2024-09-16 93/week @ 2024-09-23

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

Custom license

19KB

Place-macro

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

[dependencies]
place_macro = "1.0.0"

Macros

  • 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

Examples

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

Dependencies

~680KB
~10K SLoC