From 8ada49529213e0eb2620244a85c1e18e3d36568a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sosth=C3=A8ne=20Gu=C3=A9don?= Date: Wed, 19 Jun 2024 16:36:57 +0200 Subject: [PATCH] Simplify deserialize implementation --- src/lib.rs | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 6c9f5fb..67807c9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -602,29 +602,14 @@ impl<'de, const N: usize> Deserialize<'de> for Bytes { type Value = Bytes; fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { - formatter.write_str("a sequence") + formatter.write_str("a sequence of bytes") } fn visit_bytes(self, v: &[u8]) -> Result where E: serde::de::Error, { - if v.len() > N { - // hprintln!("error! own size: {}, data size: {}", N::to_usize(), v.len()).ok(); - // return Err(E::invalid_length(values.capacity() + 1, &self))?; - return Err(E::invalid_length(v.len(), &self))?; - } - let mut buf: Vec = Vec::new(); - // avoid unwrapping even though redundant - match buf.extend_from_slice(v) { - Ok(()) => {} - Err(()) => { - // hprintln!("error! own size: {}, data size: {}", N::to_usize(), v.len()).ok(); - // return Err(E::invalid_length(values.capacity() + 1, &self))?; - return Err(E::invalid_length(v.len(), &self))?; - } - } - Ok(Bytes::::from(buf)) + Bytes::try_from(v).map_err(|()| E::invalid_length(v.len(), &self)) } fn visit_seq(self, mut seq: A) -> Result