rialo_sol_attribute_constant/
lib.rs1#[allow(unused_extern_crates)]
5extern crate proc_macro;
6
7#[proc_macro_attribute]
10pub fn constant(
11 _attr: proc_macro::TokenStream,
12 input: proc_macro::TokenStream,
13) -> proc_macro::TokenStream {
14 #[cfg(feature = "idl-build")]
15 {
16 use quote::quote;
17
18 let ts = match syn::parse(input).unwrap() {
19 syn::Item::Const(item) => {
20 let idl_print = rialo_sol_syn::idl::gen_idl_print_fn_constant(&item);
21 quote! {
22 #item
23 #idl_print
24 }
25 }
26 item => quote! {#item},
27 };
28
29 return proc_macro::TokenStream::from(quote! {
30 #ts
31 });
32 };
33
34 #[allow(unreachable_code)]
35 input
36}