From a11628efe9288739f5066af20121a6cda114e5f5 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Tue, 28 Jul 2026 19:14:35 +0800 Subject: refactor(macros): move pathf include from gen_program into program_final_gen --- mingling_macros/src/func/gen_program.rs | 10 ---------- mingling_macros/src/func/program_final_gen.rs | 12 ++++++++++++ 2 files changed, 12 insertions(+), 10 deletions(-) (limited to 'mingling_macros/src') diff --git a/mingling_macros/src/func/gen_program.rs b/mingling_macros/src/func/gen_program.rs index 6b6a643..c5358bc 100644 --- a/mingling_macros/src/func/gen_program.rs +++ b/mingling_macros/src/func/gen_program.rs @@ -15,15 +15,6 @@ pub(crate) fn gen_program_impl(_input: TokenStream) -> TokenStream { #[cfg(not(feature = "comp"))] let comp_gen = quote! {}; - // When pathf is enabled, include the type_using.rs generated by the build - // script so that types from submodules are in scope for gen_program!(). - #[cfg(feature = "pathf")] - let pathf_include = quote! { - include!(concat!(env!("OUT_DIR"), "/", env!("CARGO_PKG_NAME"), "/type_using.rs")); - }; - #[cfg(not(feature = "pathf"))] - let pathf_include = quote! {}; - TokenStream::from(quote! { /// Alias for the current program type `crate::ThisProgram` pub type Next = ::mingling::ChainProcess; @@ -49,7 +40,6 @@ pub(crate) fn gen_program_impl(_input: TokenStream) -> TokenStream { } } - #pathf_include #comp_gen ::mingling::macros::program_fallback_gen!(); ::mingling::macros::program_final_gen!(); diff --git a/mingling_macros/src/func/program_final_gen.rs b/mingling_macros/src/func/program_final_gen.rs index 41420a4..e427f05 100644 --- a/mingling_macros/src/func/program_final_gen.rs +++ b/mingling_macros/src/func/program_final_gen.rs @@ -280,6 +280,15 @@ pub(crate) fn program_final_gen_impl(_input: TokenStream) -> TokenStream { quote! { u128 } }; + // When pathf is enabled, include the type_using.rs generated by the build + // script so that types from submodules are in scope for gen_program!(). + #[cfg(feature = "pathf")] + let pathf_include = quote! { + include!(concat!(env!("OUT_DIR"), "/", env!("CARGO_PKG_NAME"), "/type_using.rs")); + }; + #[cfg(not(feature = "pathf"))] + let pathf_include = quote! {}; + let expanded = quote! { #[derive(Debug, PartialEq, Eq, Clone, Copy)] #[repr(#repr_type)] @@ -297,10 +306,13 @@ pub(crate) fn program_final_gen_impl(_input: TokenStream) -> TokenStream { } impl ::mingling::ProgramCollect for #name { + #pathf_include + type Enum = #name; type ErrorDispatcherNotFound = ErrorDispatcherNotFound; type ErrorRendererNotFound = ErrorRendererNotFound; type ResultEmpty = ResultEmpty; + fn build_renderer_not_found(member_id: Self::Enum) -> ::mingling::AnyOutput { ::mingling::AnyOutput::new(ErrorRendererNotFound::new(member_id.to_string())) } -- cgit