4

すべてのメソッドの呼び出し元のソースの場所を取得する必要があります。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
}
4

2 に答える 2