aboutsummaryrefslogtreecommitdiff
path: root/mingling_macros/src/func/program_comp_gen.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-17 05:49:19 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-17 05:49:19 +0800
commit57c53affe3542cb6bd4e79ee4c18f20a1bd76b2d (patch)
tree1cd4aef44cb7a45a8cd9d520b598f5f181e24c76 /mingling_macros/src/func/program_comp_gen.rs
parentef23cd944402939605c78a4a853ef6e33af02c21 (diff)
refactor!: replace pack! macros with derive-based pipeline types
Remove the `pack!`, `pack_err!`, `pack_structural!`, and `pack_err_structural!` macros, replacing all pipeline type definitions with `#[derive(Grouped)]` and `#[derive(Grouped, Wrap)]` attributes. This changes the generated struct shape from named-field structs with an `inner` field to tuple structs accessed via `.0`, and removes the auto-generated `name` and `info` fields from error types.
Diffstat (limited to 'mingling_macros/src/func/program_comp_gen.rs')
-rw-r--r--mingling_macros/src/func/program_comp_gen.rs15
1 files changed, 7 insertions, 8 deletions
diff --git a/mingling_macros/src/func/program_comp_gen.rs b/mingling_macros/src/func/program_comp_gen.rs
index ed04379..cdd2597 100644
--- a/mingling_macros/src/func/program_comp_gen.rs
+++ b/mingling_macros/src/func/program_comp_gen.rs
@@ -11,11 +11,11 @@ pub(crate) fn program_comp_gen_impl(_input: TokenStream) -> TokenStream {
pub async fn __exec_completion(prev: CompletionContext) -> Next {
use ::mingling::Grouped;
- let read_ctx = ::mingling::ShellContext::try_from(prev.inner);
+ let read_ctx = ::mingling::ShellContext::try_from(prev.0);
match read_ctx {
Ok(ctx) => {
let suggest = ::mingling::CompletionHelper::exec_completion::<crate::ThisProgram>(&ctx);
- ::mingling::Routable::<crate::ThisProgram>::to_render(CompletionSuggest::new((ctx, suggest)))
+ ::mingling::Routable::<crate::ThisProgram>::to_render(CompletionSuggest((ctx, suggest)))
}
Err(_) => std::process::exit(1),
}
@@ -29,11 +29,11 @@ pub(crate) fn program_comp_gen_impl(_input: TokenStream) -> TokenStream {
pub fn __exec_completion(prev: CompletionContext) -> Next {
use ::mingling::Grouped;
- let read_ctx = ::mingling::ShellContext::try_from(prev.inner);
+ let read_ctx = ::mingling::ShellContext::try_from(prev.0);
match read_ctx {
Ok(ctx) => {
let suggest = ::mingling::CompletionHelper::exec_completion::<crate::ThisProgram>(&ctx);
- ::mingling::Routable::<crate::ThisProgram>::to_render(CompletionSuggest::new((ctx, suggest)))
+ ::mingling::Routable::<crate::ThisProgram>::to_render(CompletionSuggest((ctx, suggest)))
}
Err(_) => std::process::exit(1),
}
@@ -50,9 +50,8 @@ pub(crate) fn program_comp_gen_impl(_input: TokenStream) -> TokenStream {
mod __internal_completion_mod {
use ::mingling::Grouped;
::mingling::macros::dispatcher!("__comp", CompletionContext);
- ::mingling::macros::pack!(
- CompletionSuggest = (::mingling::ShellContext, ::mingling::Suggest)
- );
+ #[derive(::mingling::Grouped, ::mingling::Wrap)]
+ pub struct CompletionSuggest(pub (::mingling::ShellContext, ::mingling::Suggest));
}
#internal_dispatcher_comp
use __internal_completion_mod::CompletionContext;
@@ -67,7 +66,7 @@ pub(crate) fn program_comp_gen_impl(_input: TokenStream) -> TokenStream {
#[::mingling::macros::renderer]
pub fn __render_completion(prev: CompletionSuggest) -> ::mingling::RenderResult {
let result = ::mingling::RenderResult::default();
- let (ctx, suggest) = prev.inner;
+ let (ctx, suggest) = prev.0;
::mingling::CompletionHelper::render_suggest::<crate::ThisProgram>(&ctx, suggest);
result
}