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>,