polish the rendering a bit, add a macro
This commit is contained in:
@@ -66,7 +66,22 @@ pub fn instrument_calls(_args: TokenStream, input: TokenStream) -> TokenStream {
|
||||
let mut visitor = CallInstrumenter;
|
||||
visitor.visit_block_mut(&mut input_fn.block);
|
||||
|
||||
TokenStream::from(quote! { #input_fn })
|
||||
// Add an outer span for the function itself
|
||||
let fn_name = input_fn.sig.ident.to_string();
|
||||
let fn_vis = &input_fn.vis;
|
||||
let fn_sig = &input_fn.sig;
|
||||
let fn_block = &input_fn.block;
|
||||
let fn_attrs = &input_fn.attrs;
|
||||
|
||||
let instrumented = quote! {
|
||||
#(#fn_attrs)*
|
||||
#fn_vis #fn_sig {
|
||||
let _guard = ::teleprof::SpanGuard::new(#fn_name);
|
||||
#fn_block
|
||||
}
|
||||
};
|
||||
|
||||
TokenStream::from(instrumented)
|
||||
}
|
||||
|
||||
struct CallInstrumenter;
|
||||
|
||||
Reference in New Issue
Block a user