From eb072087de24753982d851fe619b71f241f0d23e Mon Sep 17 00:00:00 2001 From: philippeitis <33013301+philippeitis@users.noreply.github.com> Date: Tue, 18 Oct 2022 20:04:09 -0700 Subject: [PATCH] Use Cow for parameter replacement --- src/generator/templates/api/lib/mbuild.mako | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/generator/templates/api/lib/mbuild.mako b/src/generator/templates/api/lib/mbuild.mako index 5d1a5e9ddf..74ea16a77e 100644 --- a/src/generator/templates/api/lib/mbuild.mako +++ b/src/generator/templates/api/lib/mbuild.mako @@ -658,21 +658,18 @@ else { replace_assign = 'Some(value)' url_replace_arg = 'replace_with.expect("to find substitution value in params")' if URL_ENCODE in special_cases: - replace_init = ' = String::new()' - replace_assign = 'value.to_string()' + replace_init = ': Cow = "".into()' + replace_assign = 'Cow::from(value.as_ref())' url_replace_arg = '&replace_with' # end handle url encoding %>\ let mut replace_with${replace_init}; - for &(name, ref value) in params.iter() { - if name == param_name { - replace_with = ${replace_assign}; - break; - } + if let Some((_, value)) = params.iter().find(|(name, _)| name == ¶m_name) { + replace_with = ${replace_assign}; } % if URL_ENCODE in special_cases: if find_this.as_bytes()[1] == '+' as u8 { - replace_with = percent_encode(replace_with.as_bytes(), DEFAULT_ENCODE_SET).to_string(); + replace_with = percent_encode(replace_with.as_bytes(), DEFAULT_ENCODE_SET).to_string().into(); } % endif url = url.replace(find_this, ${url_replace_arg});