Newer
Older
use {Payload, Error, MessageResult};
pub fn serialize_payload<T>(t: &T, version: u32, flags: u32) -> MessageResult<Bytes> where T: Payload {
let mut stream = PayloadStream::new(version, flags);
try!(stream.append(t));
Ok(stream.out())
}
pub struct PayloadStream {
stream: Stream,
version: u32,
}
impl PayloadStream {
pub fn append<T>(&mut self, t: &T) -> MessageResult<()> where T: Payload {
t.serialize_payload(&mut self.stream, self.version)
}
pub fn out(self) -> Bytes {
self.stream.out()