Implement Serialize for flexbuffer::Reader (#6635)

* Implement Serialize for flexbuffer::Reader

* bump version

* Remove use of experimantal or-patterns

* Remove more use of experimantal or-patterns

Co-authored-by: Casper Neo <cneo@google.com>
This commit is contained in:
Casper
2021-05-10 23:15:46 -04:00
committed by GitHub
parent a1730fcea8
commit 8fd10606c1
9 changed files with 125 additions and 40 deletions

View File

@@ -41,18 +41,18 @@ extern crate num_enum;
extern crate serde;
mod bitwidth;
mod buffer;
mod builder;
mod flexbuffer_type;
mod reader;
mod buffer;
pub use bitwidth::BitWidth;
pub use buffer::Buffer;
pub use builder::Error as SerializationError;
pub use builder::{
singleton, Builder, BuilderOptions, FlexbufferSerializer, MapBuilder, Pushable, VectorBuilder,
};
pub use flexbuffer_type::FlexBufferType;
pub use buffer::Buffer;
pub use reader::Error as ReaderError;
pub use reader::{DeserializationError, MapReader, Reader, ReaderIterator, VectorReader};
use serde::{Deserialize, Serialize};
@@ -76,7 +76,7 @@ pub fn from_slice<'de, T: Deserialize<'de>>(buf: &'de [u8]) -> Result<T, Deseria
/// Deserialize a type from a flexbuffer.
pub fn from_buffer<'de, T: Deserialize<'de>, B: Buffer>(
buf: &'de B
buf: &'de B,
) -> Result<T, DeserializationError> {
let r = Reader::get_root(buf as &'de [u8])?;
T::deserialize(r)