From: Philippe Antoine Date: Mon, 17 Jun 2024 21:38:31 +0000 (+0200) Subject: rust/derive: transform all uppercase names the right way X-Git-Tag: suricata-8.0.0-beta1~1013 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3c5ad7a23de5c3f2ab899c33bee3920243b0759b;p=thirdparty%2Fsuricata.git rust/derive: transform all uppercase names the right way So that MQTTTypeCode::CONNECT does not become c_o_n_n_e_c_t --- 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()); } }