From af9996aa9a274eab8917b453becb4a0d38dfabb4 Mon Sep 17 00:00:00 2001 From: David Ross Date: Mon, 12 Mar 2018 11:26:11 -0700 Subject: [PATCH] Fix borrowed Cow<'_, [u8]> deserializing as str. This changes the deserialize implementation for a borrowed Cow<[u8]> to specifically request a byte slice, rather than a borrowed string. The old behavior breaks any program which relies on data being deserialized the same way as it was serialized and uses Cow<[u8]>. In serde_json, it just wouldn't deserialize. In bincode, it deserialized normally unless the bytes were invalid UTF8. Fixes https://github.com/TyOverby/bincode/issues/231. --- serde/src/private/de.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serde/src/private/de.rs b/serde/src/private/de.rs index 33b91a47..a3a55d8e 100644 --- a/serde/src/private/de.rs +++ b/serde/src/private/de.rs @@ -188,7 +188,7 @@ where } } - deserializer.deserialize_str(CowBytesVisitor) + deserializer.deserialize_bytes(CowBytesVisitor) } pub mod size_hint {