macro place_macro_proc

This crate contains the procedural macros for place_macro

1 stable release

1.0.0 Dec 22, 2023
Download history 7/week @ 2024-07-20 11/week @ 2024-07-27 19/week @ 2024-08-03 12/week @ 2024-08-10 9/week @ 2024-08-17 17/week @ 2024-08-24 44/week @ 2024-08-31 25/week @ 2024-09-07 23/week @ 2024-09-14 60/week @ 2024-09-21 47/week @ 2024-09-28 82/week @ 2024-10-05 35/week @ 2024-10-12 58/week @ 2024-10-19 113/week @ 2024-10-26 53/week @ 2024-11-02

264 downloads per month
Used in 7 crates (via place_macro)

Custom license

34KB
529 lines

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

~660KB