]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust/derive: transform all uppercase names the right way
authorPhilippe Antoine <pantoine@oisf.net>
Mon, 17 Jun 2024 21:38:31 +0000 (23:38 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 16 Jul 2024 04:43:03 +0000 (06:43 +0200)
So that MQTTTypeCode::CONNECT does not become c_o_n_n_e_c_t

rust/derive/src/applayerevent.rs

index 29475fa2d51b596e3ddfbaeda76d0bc0f307612a..c4402381120ac3b5ea5163b5bc2c524cf867dd8f 100644 (file)
@@ -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());
     }
 }