From bfe10f7805b3edf4f69fd764c324dd6ddcb5609f Mon Sep 17 00:00:00 2001 From: Weicao-CatilGrass <1992414357@qq.com> Date: Mon, 1 Jun 2026 19:16:28 +0800 Subject: Refactor flag argument macros for better performance --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index e7b9257..a888cc2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ #### Optimizations: -None +1. **\[core:flag\]** Refactored the `special_argument!` and `special_arguments!` macros to replace index‑based `while` loops with iterator `position` and `drain`, improving both performance and readability. #### Features: @@ -22,6 +22,7 @@ This macro wraps `::mingling::test::unpack_chain_process_result` to downcast a ` let result = some_chain_function(args).into(); let value: MyType = unpack_chain_process!(result, MyType); ``` + 2. **\[core\]** Refactored the built-in flag system in `BasicProgramSetup` into individual, reusable setup structs (`HelpFlagSetup`, `QuietFlagSetup`, `ConfirmFlagSetup`). These setups are now separate implementations of `ProgramSetup`, each with customizable flag aliases and `Default` implementations. `BasicProgramSetup` now composes them via `with_setup` instead of defining flags inline. ```rust -- cgit