aboutsummaryrefslogtreecommitdiff
path: root/mingling_macros/src/chain.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-04-28 21:35:58 +0800
committer魏曹先生 <1992414357@qq.com>2026-04-28 21:35:58 +0800
commit94ac5ec454ef9fa687857b8d4323d0269bddb3c2 (patch)
tree360ce60c2717a79acf80dd7f91d257ff3be0220a /mingling_macros/src/chain.rs
parent347a13f33332fdcbd680a5bd0df12cd1182f8cdf (diff)
se internal ugly naming convention for generated structs
Diffstat (limited to 'mingling_macros/src/chain.rs')
-rw-r--r--mingling_macros/src/chain.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/mingling_macros/src/chain.rs b/mingling_macros/src/chain.rs
index daa6b1c..6cc249f 100644
--- a/mingling_macros/src/chain.rs
+++ b/mingling_macros/src/chain.rs
@@ -100,9 +100,12 @@ pub fn chain_attr(attr: TokenStream, item: TokenStream) -> TokenStream {
// Get function name
let fn_name = &input_fn.sig.ident;
- // Generate struct name from function name using pascal_case
- let pascal_case_name = just_fmt::pascal_case!(fn_name.to_string());
- let struct_name = Ident::new(&pascal_case_name, fn_name.span());
+ // Generate struct name from function name using snake_case
+ let internal_name = format!(
+ "__internal_chain_{}",
+ just_fmt::snake_case!(fn_name.to_string())
+ );
+ let struct_name = Ident::new(&internal_name, fn_name.span());
// Determine the program type for the return type
let program_type = if use_crate_prefix {
@@ -163,6 +166,7 @@ pub fn chain_attr(attr: TokenStream, item: TokenStream) -> TokenStream {
quote! {
#(#fn_attrs)*
#[doc(hidden)]
+ #[allow(non_camel_case_types)]
#vis struct #struct_name;
::mingling::macros::register_chain!(#previous_type, #struct_name);
@@ -179,6 +183,7 @@ pub fn chain_attr(attr: TokenStream, item: TokenStream) -> TokenStream {
} else {
quote! {
#(#fn_attrs)*
+ #[allow(non_camel_case_types)]
#vis struct #struct_name;
::mingling::macros::register_chain!(#previous_type, #struct_name);