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}