From b4fea634b0ab0f1149eee454eebefb9d967ee581 Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Sat, 7 May 2022 16:29:20 +0800 Subject: [PATCH] Avoid unnecessary allocations. --- src/api/json.rs | 6 ++++-- src/packages/string_basic.rs | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/api/json.rs b/src/api/json.rs index f8a8c2ce..675ae427 100644 --- a/src/api/json.rs +++ b/src/api/json.rs @@ -156,11 +156,13 @@ pub fn format_map_as_json(map: &Map) -> String { let mut result = String::from('{'); for (key, value) in map { + use std::fmt::Write; + if result.len() > 1 { result.push(','); } - result.push_str(&format!("{:?}", key)); + write!(result, "{:?}", key).unwrap(); result.push(':'); if let Some(val) = value.read_lock::() { @@ -171,7 +173,7 @@ pub fn format_map_as_json(map: &Map) -> String { if value.is::<()>() { result.push_str("null"); } else { - result.push_str(&format!("{:?}", value)); + write!(result, "{:?}", value).unwrap(); } } diff --git a/src/packages/string_basic.rs b/src/packages/string_basic.rs index c817a24c..a64317b2 100644 --- a/src/packages/string_basic.rs +++ b/src/packages/string_basic.rs @@ -195,12 +195,16 @@ mod print_debug_functions { result.push_str("#{"); map.iter_mut().enumerate().for_each(|(i, (k, v))| { - result.push_str(&format!( + use std::fmt::Write; + + write!( + result, "{:?}: {}{}", k, &print_with_func(FUNC_TO_DEBUG, &ctx, v), if i < len - 1 { ", " } else { "" } - )); + ) + .unwrap(); }); result.push('}');