From 06a21ba9e1e18dfa5cd91ecc24b820f47d11b7e4 Mon Sep 17 00:00:00 2001
From: Sprite <SpriteOvO@gmail.com>
Date: Thu, 16 Dec 2021 00:28:52 +0800
Subject: [PATCH] Skip the `language` field of `MessageEntityKind::Pre` if it
 is `None`

---
 src/types/message_entity.rs | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/types/message_entity.rs b/src/types/message_entity.rs
index 1f4873c8..55facb77 100644
--- a/src/types/message_entity.rs
+++ b/src/types/message_entity.rs
@@ -44,6 +44,7 @@ impl MessageEntity {
     }
 }
 
+#[serde_with_macros::skip_serializing_none]
 #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
 #[serde(rename_all = "snake_case")]
 #[serde(tag = "type")]
@@ -104,4 +105,20 @@ mod tests {
                 .unwrap()
         );
     }
+
+    #[test]
+    fn pre_with_none_language() {
+        use serde_json::to_string;
+
+        assert_eq!(
+            to_string(&MessageEntity {
+                kind: MessageEntityKind::Pre { language: None },
+                offset: 1,
+                length: 2,
+            })
+            .unwrap()
+            .find("language"),
+            None
+        );
+    }
 }