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