From 3c5ad7a23de5c3f2ab899c33bee3920243b0759b Mon Sep 17 00:00:00 2001 From: Philippe Antoine Date: Mon, 17 Jun 2024 23:38:31 +0200 Subject: [PATCH] rust/derive: transform all uppercase names the right way So that MQTTTypeCode::CONNECT does not become c_o_n_n_e_c_t --- rust/derive/src/applayerevent.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rust/derive/src/applayerevent.rs b/rust/derive/src/applayerevent.rs index 29475fa2d5..c440238112 100644 --- a/rust/derive/src/applayerevent.rs +++ b/rust/derive/src/applayerevent.rs @@ -110,6 +110,9 @@ pub fn derive_app_layer_event(input: TokenStream) -> TokenStream { /// Transform names such as "OneTwoThree" to "one_two_three". pub fn transform_name(in_name: &str) -> String { + if in_name.to_uppercase() == in_name { + return in_name.to_lowercase(); + } let mut out = String::new(); for (i, c) in in_name.chars().enumerate() { if i == 0 { @@ -159,5 +162,7 @@ mod test { transform_name("UnassignedMsgType"), "unassigned_msg_type".to_string() ); + assert_eq!(transform_name("SAMECASE"), "samecase".to_string()); + assert_eq!(transform_name("ZFlagSet"), "z_flag_set".to_string()); } }