From 7610a6f53f835995b06c9c623fbca1d188f07544 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Tue, 28 Apr 2026 09:13:12 +0800 Subject: Simplify Picker API by removing generic parameter and route types --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 0997e27..8682c5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -135,6 +135,32 @@ use mingling::marker::NextProcess; // Remove this gen_program!(); ``` +6. **\[picker\]** Simplified `Picker` logic: + + - `Picker` no longer requires the generic parameter `` by default; it only needs it when using `pick_or_route` or `after_or_route` + + - Additionally, if no `or_route` operations are used, the `unpack_directly` function is no longer available; `unpack` will directly extract the inner value + +```rust +// Before +let (name, age) = Picker::<()>::new(prev.inner) // had to specify an arbitrary type even for routers Picker without routes + .pick::(()) + .pick::(()) + .unpack_directly(); // had to use `unpack_directly` to get the inner value + +// After +let (name, age) = Picker::new(prev.inner) // no longer need to specify an unused route type + .pick::(()) + .pick::(()) + .unpack(); // no longer need to use `unpack_directly` + +// But ... +let (name, age) = Picker::new(prev.inner) + .pick::(()) + .pick_or_route::((), NoNumberProvided::default().to_render()) // if a route type is specified + .unpack(); // will return Result +``` + --- ### Release 0.1.6 **\[YANKED\]** -- cgit