浏览代码

optimize hashmap insertion

Bunny Bites 1 年之前
父节点
当前提交
1a9d1eda19
共有 1 个文件被更改,包括 15 次插入8 次删除
  1. 15 8
      packages/html/src/events/form.rs

+ 15 - 8
packages/html/src/events/form.rs

@@ -62,14 +62,21 @@ impl FormData {
                 In this case we would want to deserialize the value as follows
                 favourite_language: "rust"
             */
-            if values.len() > 1 {
-                // handling multiple values - case 1
-                parsed_values.insert(fieldname, ValueType::VecText(values.clone()));
-            } else {
-                // handle single value - case 2
-                let prepared_value = values.into_iter().next().unwrap();
-                parsed_values.insert(fieldname, ValueType::Text(prepared_value));
-            }
+            parsed_values.insert(
+                fieldname,
+                if values.len() > 1 {
+                    // handling multiple values - case 1
+                    ValueType::VecText(values)
+                } else {
+                    // handle single value - case 2
+                    ValueType::Text(
+                        values
+                            .into_iter()
+                            .next()
+                            .ok_or_else(|| serde_json::Error::custom("Values array is empty"))?,
+                    )
+                },
+            );
         }
 
         // convert HashMap to JSON string