1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
use proc_macro::TokenStream; use crate::COUNTER; pub fn generate_dummy_part_checker(input: TokenStream) -> TokenStream { if !input.is_empty() { return syn::Error::new(proc_macro2::Span::call_site(), "No arguments expected") .to_compile_error().into() } let count = COUNTER.with(|counter| counter.borrow_mut().inc()); let no_op_macro_ident = syn::Ident::new( &format!("__dummy_part_checker_{}", count), proc_macro2::Span::call_site(), ); quote::quote!( #[macro_export] #[doc(hidden)] macro_rules! #no_op_macro_ident { ( $( $tt:tt )* ) => {}; } #[doc(hidden)] pub mod __substrate_genesis_config_check { #[doc(hidden)] pub use #no_op_macro_ident as is_genesis_config_defined; #[doc(hidden)] pub use #no_op_macro_ident as is_std_enabled_for_genesis; } #[doc(hidden)] pub mod __substrate_event_check { #[doc(hidden)] pub use #no_op_macro_ident as is_event_part_defined; } #[doc(hidden)] pub mod __substrate_inherent_check { #[doc(hidden)] pub use #no_op_macro_ident as is_inherent_part_defined; } #[doc(hidden)] pub mod __substrate_validate_unsigned_check { #[doc(hidden)] pub use #no_op_macro_ident as is_validate_unsigned_part_defined; } #[doc(hidden)] pub mod __substrate_call_check { #[doc(hidden)] pub use #no_op_macro_ident as is_call_part_defined; } #[doc(hidden)] pub mod __substrate_origin_check { #[doc(hidden)] pub use #no_op_macro_ident as is_origin_part_defined; } ).into() }