messagepack_rs/stream/
serializer.rs1use crate::serializable::*;
2use std::io::{BufWriter, Error, Write};
3
4pub struct Serializer<T: Write>(BufWriter<T>);
5
6impl<W: Write> Serializer<W> {
7 pub fn new(w: W) -> Self {
8 Serializer(BufWriter::new(w))
9 }
10
11 pub fn serialize<T: Serializable>(&mut self, value: T) -> Result<usize, SerializeError> {
12 self.0.write(&value.serialize()?).or(Err(SerializeError::FailedToWrite))
13 }
14
15 pub fn get_ref(&self) -> &W {
16 self.0.get_ref()
17 }
18
19 pub fn flush(&mut self) -> Result<(), Error> {
20 self.0.flush()
21 }
22}