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<'_>,