1
2
3
4
5
6
7
8
9
10
11
12
use proc_macro::TokenStream;

#[proc_macro]
pub fn my_macro(_tokens: TokenStream) -> TokenStream {
    let crate_name = std::env::var("CARGO_PKG_NAME").unwrap();
    let working_dir = std::env::current_dir().unwrap().display().to_string();
    println!("CRATE_NAME: {}", crate_name);
    println!("WORKING_DIR: {}", working_dir);
    format!("(\"{crate_name}\", \"{working_dir}\")")
        .parse()
        .unwrap()
}