diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-08-17 05:49:19 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-08-17 05:49:19 +0800 |
| commit | 57c53affe3542cb6bd4e79ee4c18f20a1bd76b2d (patch) | |
| tree | 1cd4aef44cb7a45a8cd9d520b598f5f181e24c76 /mingling_macros/src/func/program_comp_gen.rs | |
| parent | ef23cd944402939605c78a4a853ef6e33af02c21 (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.rs | 15 |
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 } |
