ethers_macros_rs/
lib.rs

1use contract::Contract;
2use gen::CodeGen;
3use proc_macro::TokenStream;
4use syn::parse_macro_input;
5
6mod contract;
7mod error;
8mod gen;
9
10// #[proc_macro_derive(Contract, attributes(abi_file))]
11// pub fn table(item: TokenStream) -> TokenStream {
12//     let stream = Contract::new(parse_macro_input!(item))
13//         .expect("Derive contract structure")
14//         .gen_ir_code();
15
16//     eprintln!("{}", stream);
17
18//     stream.into()
19// }
20
21#[proc_macro]
22pub fn contract(item: TokenStream) -> TokenStream {
23    let stream = parse_macro_input!(item as Contract).gen_ir_code();
24
25    // eprintln!("{}", stream);
26
27    stream.into()
28}