aboutsummaryrefslogtreecommitdiff
path: root/mingling_macros/src/func
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-07-21 05:49:00 +0800
committer魏曹先生 <1992414357@qq.com>2026-07-21 05:49:00 +0800
commit700c049f64b66f424cda5da3021dfce4462655ca (patch)
treeb4fd21e5e6f82be29b18c47d8617814b28c159a6 /mingling_macros/src/func
parent2097238b57810d78989d3ecab8bc97ce1b8a6aa1 (diff)
feat(core): add generic parameter `C` to `StructuralData` trait
Make `StructuralData` and `StructuralDataSealed` generic over a program collector type to bypass the orphan rule for `group_structural!`. This enables external types to implement `StructuralData<crate::ThisProgram>` without violating coherence.
Diffstat (limited to 'mingling_macros/src/func')
-rw-r--r--mingling_macros/src/func/pack_err.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/mingling_macros/src/func/pack_err.rs b/mingling_macros/src/func/pack_err.rs
index 36e550a..2a318bc 100644
--- a/mingling_macros/src/func/pack_err.rs
+++ b/mingling_macros/src/func/pack_err.rs
@@ -139,8 +139,8 @@ pub(crate) fn pack_err_structural(input: TokenStream) -> TokenStream {
.insert(type_name_str);
let structural_data = quote! {
- impl ::mingling::__private::StructuralDataSealed for #type_name {}
- impl ::mingling::__private::StructuralData for #type_name {}
+ impl ::mingling::__private::StructuralDataSealed<crate::ThisProgram> for #type_name {}
+ impl ::mingling::__private::StructuralData<crate::ThisProgram> for #type_name {}
};
// Generate the struct + impls (same as pack_err! but with Serialize derive + sealed)