1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
use proc_macro2::TokenStream; use quote::{quote, ToTokens}; use syn::Ident; pub(crate) trait WrapByModule { fn wrap_by_mod(&self, mod_name: &Ident) -> TokenStream; } impl<T: ToTokens> WrapByModule for T { fn wrap_by_mod(&self, mod_name: &Ident) -> TokenStream { quote! { mod #mod_name { use super::*; #self } } } }