Avoid over-size allocation in `render_once_to_string`

This commit is contained in:
Kogia-sima 2020-07-25 23:56:17 +09:00
parent 658a623008
commit 4f64a3b7fe
1 changed files with 3 additions and 1 deletions

View File

@ -277,10 +277,12 @@ fn derive_template_impl(tokens: TokenStream) -> Result<TokenStream, syn::Error>
let mut __sf_buf = __sf_rt::Buffer::from(buf.as_str());
__sf_buf.reserve(SIZE_HINT.get());
let __sf_old_len = __sf_buf.len();
let #name { #field_names } = self;
include!(#output_file_string);
SIZE_HINT.update(__sf_buf.len());
SIZE_HINT.update(__sf_buf.len() - __sf_old_len);
*buf = __sf_buf.into_string();
Ok(())
}