From 13a1723050f1d92d33cfff1040be12f39f189c9e Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Thu, 7 May 2026 13:24:15 +0800 Subject: Add support for resource injection in `#[chain]` macro --- CHANGELOG.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 23ceef5..6a99966 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,29 @@ None 1. **\[macros\]** The `gen_program!()` macro now generates `pub fn this() -> &'static Program<#name>` for the generated program type, providing convenient static accessors. +2. **\[macros\]** The `#[chain]` macro now supports resource injection parameters (2nd to Nth). When you write: + +```rust +#[chain] +fn process(prev: HelloEntry, age: &Age, name: &Name) -> NextProcess { + // age and name are automatically injected from global resources +} +``` + +Will expand: + +```rust +fn proc(prev: HelloEntry) -> ChainProcess { + let age: &Age = ::mingling::this::() + .res_or_default::() + .as_ref(); + let name: &Name = ::mingling::this::() + .res_or_default::() + .as_ref(); + // original function body inlined here +} +``` + #### **BREAKING CHANGES**: None -- cgit