1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
//! A module to deserialize a `Message` as defined in a .proto file //! //! Creates the struct and implements a reader use std::io::{Write, BufWriter}; use std::path::Path; use std::fs::File; use errors::Result; use writer::Writer; /// A trait to handle deserialization based on parsed `Field`s pub trait MessageWrite: Sized { /// Writes `Self` into W writer fn write_message<W: Write>(&self, w: &mut Writer<W>) -> Result<()>; /// Computes necessary binary size of self once serialized in protobuf fn get_size(&self) -> usize; /// Writes self into a file fn write_file<P: AsRef<Path>>(&self, p: P) -> Result<()> { let file = BufWriter::new(File::create(p)?); let mut writer = Writer::new(file); self.write_message(&mut writer) } }