From 3ac02fdc6ee9cc788be2bde7c2cbae2f09754194 Mon Sep 17 00:00:00 2001 From: Kaede Hoshikawa Date: Sat, 13 Aug 2022 00:01:00 +0900 Subject: [PATCH] Reduce allocations on string. --- packages/yew/src/platform/fmt.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/yew/src/platform/fmt.rs b/packages/yew/src/platform/fmt.rs index 6583f8b8c5e..1992c12db2a 100644 --- a/packages/yew/src/platform/fmt.rs +++ b/packages/yew/src/platform/fmt.rs @@ -132,7 +132,10 @@ impl Stream for BufStream { let mut inner = self.inner.borrow_mut(); if !inner.buf.is_empty() { - return Poll::Ready(Some(inner.buf.split_off(0))); + let mut buf = String::new(); + std::mem::swap(&mut buf, &mut inner.buf); + + return Poll::Ready(Some(buf)); } if let BufStreamState::Done = inner.state { @@ -189,6 +192,7 @@ where { type Item = String; + #[inline] fn poll_next( self: std::pin::Pin<&mut Self>, cx: &mut std::task::Context<'_>,