From ed391e177729dbfbe83c92f5f20ea0a69f101a57 Mon Sep 17 00:00:00 2001 From: Casper Date: Fri, 13 Nov 2020 07:53:01 -0800 Subject: [PATCH] BREAKING: Rust flexbuffers serde human readable set to false (#6257) Co-authored-by: Casper Neo --- rust/flexbuffers/Cargo.toml | 13 ++++++++++++- rust/flexbuffers/src/builder/ser.rs | 3 +++ rust/flexbuffers/src/reader/de.rs | 4 ++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/rust/flexbuffers/Cargo.toml b/rust/flexbuffers/Cargo.toml index ebbbbbca6..44737a08e 100644 --- a/rust/flexbuffers/Cargo.toml +++ b/rust/flexbuffers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flexbuffers" -version = "0.1.1" +version = "0.2.1" authors = ["Casper Neo ", "FlatBuffers Maintainers"] edition = "2018" license = "Apache-2.0" @@ -10,6 +10,17 @@ repository = "https://github.com/google/flatbuffers" keywords = ["flatbuffers", "flexbuffers", "serialization", "zero-copy"] categories = ["encoding", "data-structures", "memory-management"] +[features] +# Sets serde::Serializer::is_human_readable() to true. +# The default was changed from true to false in version "0.2.1". +# You basically never need this to be true unless writing data for old binaries. +serialize_human_readable = [] +# Sets serde::Deserializer::is_human_readable() to true. +# The default was changed from true to false in version "0.2.1". +# You basically never need this to be true unless reading data from old binaries. +deserialize_human_readable = [] + + [dependencies] serde = "1.0" serde_derive = "1.0" diff --git a/rust/flexbuffers/src/builder/ser.rs b/rust/flexbuffers/src/builder/ser.rs index 0b9d689ce..8e483baf8 100644 --- a/rust/flexbuffers/src/builder/ser.rs +++ b/rust/flexbuffers/src/builder/ser.rs @@ -217,6 +217,9 @@ impl<'a> ser::Serializer for &'a mut FlexbufferSerializer { type SerializeStructVariant = &'a mut FlexbufferSerializer; type Ok = (); type Error = Error; + fn is_human_readable(&self) -> bool { + cfg!(serialize_human_readable) + } fn serialize_bool(self, v: bool) -> Result { self.builder.push(v); self.finish_if_not_nested() diff --git a/rust/flexbuffers/src/reader/de.rs b/rust/flexbuffers/src/reader/de.rs index ad35f25c2..8cc3b6ed4 100644 --- a/rust/flexbuffers/src/reader/de.rs +++ b/rust/flexbuffers/src/reader/de.rs @@ -151,6 +151,10 @@ impl<'de> VariantAccess<'de> for Reader<'de> { impl<'de> Deserializer<'de> for crate::Reader<'de> { type Error = DeserializationError; + fn is_human_readable(&self) -> bool { + cfg!(deserialize_human_readable) + } + fn deserialize_any(self, visitor: V) -> Result where V: Visitor<'de>,