すべてのメソッドの呼び出し元のソースの場所を取得する必要があります。proc_macro_attribute
場所をキャプチャして印刷するを作成しようとしています。
#[proc_macro_attribute]
pub fn get_location(attr: TokenStream, item: TokenStream) -> TokenStream {
// Get and print file!(), line!() of source
// Should print line no. 11
item
}
#[get_location]
fn add(x: u32, y: u32) -> u32 {
x + y
}
fn main() {
add(1, 5); // Line No. 11
}