Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@rust-play
Created December 9, 2021 09:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rust-play/bbc22f90048223081109b661be05ae9d to your computer and use it in GitHub Desktop.
Save rust-play/bbc22f90048223081109b661be05ae9d to your computer and use it in GitHub Desktop.
Code shared from the Rust Playground
// lib.rs
use proc_macro::TokenStream;
use quote::quote;
use syn::{parse_macro_input, ItemFn};
#[proc_macro_attribute]
pub fn rust_decorator(_attr: TokenStream, input: TokenStream) -> TokenStream {
let func = parse_macro_input!(input as ItemFn);
let fn_name = &func.sig.ident;
quote!{
println!("aaaa");
#fn_name();
};
TokenStream::from(quote!(#func))
}
// bin.rs
#[rust_decorator]
fn task(){
println!("Task is running!!!");
}
pub fn main() {
task();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment