18 breaking releases

new 0.24.0 May 11, 2024
0.23.0 Mar 22, 2024
0.22.0 Mar 19, 2024
0.3.0 Oct 21, 2023
0.1.1 Jan 15, 2022

#2234 in Development tools

Download history 33/week @ 2024-01-25 22/week @ 2024-02-01 66/week @ 2024-02-08 106/week @ 2024-02-15 115/week @ 2024-02-22 652/week @ 2024-02-29 841/week @ 2024-03-07 1024/week @ 2024-03-14 661/week @ 2024-03-21 184/week @ 2024-03-28 97/week @ 2024-04-04 97/week @ 2024-04-11 105/week @ 2024-04-18 102/week @ 2024-04-25 112/week @ 2024-05-02 2996/week @ 2024-05-09

3,325 downloads per month
Used in 53 crates (5 directly)

MIT license

130KB
2.5K SLoC

Module :: proc_macro_tools

experimental rust-status docs.rs Open in Gitpod discord

Tools for writing procedural macros.

Basic use-case

#[ cfg( feature = "enabled" ) ]
{
  use macro_tools::exposed::*;

  let code = qt!( core::option::Option< i8, i16, i32, i64 > );
  let tree_type = syn::parse2::< syn::Type >( code ).unwrap();
  let got = typ::type_parameters( &tree_type, 0..=2 );
  got.iter().for_each( | e | println!( "{}", qt!( #e ) ) );
  /* print :
    i8
    i16
    i32
  */
}

To add to your project

cargo add proc_macro_tools

Try out from the repository

git clone https://github.com/Wandalen/wTools
cd wTools
cd examples/macro_tools_trivial
cargo run

Dependencies

~300–760KB
~18K SLoC