From 94e1cfaa6f4b7aed9132fd3db3809ace723a9fab Mon Sep 17 00:00:00 2001 From: Finn Bear Date: Wed, 1 Jan 2025 10:25:20 -0800 Subject: [PATCH] Update buffer.rs --- rmp/src/encode/buffer.rs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/rmp/src/encode/buffer.rs b/rmp/src/encode/buffer.rs index 4d26dbda..b3107a8e 100644 --- a/rmp/src/encode/buffer.rs +++ b/rmp/src/encode/buffer.rs @@ -51,14 +51,9 @@ impl<'a> RmpWrite for &'a mut [u8] { let to_write = buf.len(); let remaining = self.len(); if to_write <= remaining { - self[..to_write].copy_from_slice(buf); - unsafe { - //Cant use split_at or re-borrowing due to lifetime errors :( - *self = core::slice::from_raw_parts_mut( - self.as_mut_ptr().add(to_write), - remaining - to_write, - ) - } + let (a, b) = core::mem::take(self).split_at_mut(to_write); + a.copy_from_slice(buf); + *self = b; Ok(()) } else { Err(FixedBufCapacityOverflow { _priv: () })