From ec88e6a1682740c64cb3735016632542e69f9e53 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sun, 19 Jul 2026 10:53:33 +0800 Subject: feat(macros): add Routable trait and update route! macro Introduce a `Routable` trait with `to_chain` and `to_render` methods, replacing direct `Grouped` usage in the `route!` macro so error branches correctly route through the rendering pipeline --- mingling_core/src/any/group.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'mingling_core/src/any') diff --git a/mingling_core/src/any/group.rs b/mingling_core/src/any/group.rs index 14663db..90ef9fc 100644 --- a/mingling_core/src/any/group.rs +++ b/mingling_core/src/any/group.rs @@ -1,4 +1,4 @@ -use crate::{AnyOutput, ChainProcess}; +use crate::{AnyOutput, ChainProcess, ProgramCollect, Routable}; /// Used to mark a type with a unique enum ID, assisting dynamic dispatch /// @@ -32,3 +32,17 @@ where AnyOutput::new(self).route_renderer() } } + +impl Routable for T +where + C: ProgramCollect, + T: Grouped + Send, +{ + fn to_chain(self) -> ChainProcess { + T::to_chain(self) + } + + fn to_render(self) -> ChainProcess { + T::to_render(self) + } +} -- cgit