Module serde_protobuf::de [−][src]
Expand description
Deserialization of binary protocol buffer encoded data.
All deserialization operations require a previously loaded set of schema descriptors; see the
descriptor
module for more information.
Provided that a set of descriptors have been loaded, a Deserializer
can be used to deserialize
a stream of bytes into something that implements Deserialize
.
extern crate serde; extern crate protobuf; extern crate serde_protobuf; extern crate serde_value; use std::fs; use serde::de::Deserialize; use serde_protobuf::descriptor::Descriptors; use serde_protobuf::de::Deserializer; use serde_value::Value; // Load a descriptor registry (see descriptor module) let mut file = fs::File::open("testdata/descriptors.pb")?; let proto = protobuf::parse_from_reader(&mut file)?; let descriptors = Descriptors::from_proto(&proto); // Set up some data to read let data = &[8, 42]; let mut input = protobuf::CodedInputStream::from_bytes(data); // Create a deserializer let name = ".protobuf_unittest.TestAllTypes"; let mut deserializer = Deserializer::for_named_message(&descriptors, name, input)?; // Deserialize some struct let value = Value::deserialize(&mut deserializer)?;
Structs
Deserializer | A deserializer that can deserialize a single message type. |