From 858ca3a4cee944f42256ad77645628db93a30056 Mon Sep 17 00:00:00 2001 From: Eric Seppanen Date: Thu, 13 May 2021 20:54:25 -0700 Subject: [PATCH] bin_ser: simplify ser_into_slice The conversion of &mut [u8] into Write is a little tricky. Also, remove an unused generic parameter. --- zenith_utils/src/bin_ser.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/zenith_utils/src/bin_ser.rs b/zenith_utils/src/bin_ser.rs index 9e6c54858a..9627c7a62c 100644 --- a/zenith_utils/src/bin_ser.rs +++ b/zenith_utils/src/bin_ser.rs @@ -83,10 +83,11 @@ pub fn le_coder() -> impl Options { /// pub trait BeSer: Serialize + DeserializeOwned { /// Serialize into a byte slice - fn ser_into_slice(&self, b: &mut [u8]) -> Result<(), SerializeError> { - // This is slightly awkward; we need a mutable reference to a mutable reference. - let mut w = b; - self.ser_into(&mut w) + fn ser_into_slice(&self, mut b: &mut [u8]) -> Result<(), SerializeError> { + // &mut [u8] implements Write, but `ser_into` needs a mutable + // reference to that. So we need the slightly awkward "mutable + // reference to a mutable reference. + self.ser_into(&mut b) } /// Serialize into a borrowed writer @@ -119,10 +120,11 @@ pub trait BeSer: Serialize + DeserializeOwned { /// pub trait LeSer: Serialize + DeserializeOwned { /// Serialize into a byte slice - fn ser_into_slice(&self, b: &mut [u8]) -> Result<(), SerializeError> { - // This is slightly awkward; we need a mutable reference to a mutable reference. - let mut w = b; - self.ser_into(&mut w) + fn ser_into_slice(&self, mut b: &mut [u8]) -> Result<(), SerializeError> { + // &mut [u8] implements Write, but `ser_into` needs a mutable + // reference to that. So we need the slightly awkward "mutable + // reference to a mutable reference. + self.ser_into(&mut b) } /// Serialize into a borrowed writer