Fixup Result-returning encode method

This commit is contained in:
Alex Crichton
2016-11-22 15:22:30 -08:00
parent e970e9a79c
commit b89150c464
2 changed files with 4 additions and 3 deletions
+2 -2
View File
@@ -242,7 +242,7 @@ pub trait Codec {
/// This method will encode `msg` into the byte buffer provided by `buf`.
/// The `buf` provided is an internal buffer of the `Framed` instance and
/// will be written out when possible.
fn encode(&mut self, msg: Self::Out) -> Result<Vec<u8>, io::Error>;
fn encode(&mut self, msg: Self::Out, buf: &mut Vec<u8>) -> io::Result<()>;
}
/// A unified `Stream` and `Sink` interface to an underlying `Io` object, using
@@ -319,7 +319,7 @@ impl<T: Io, C: Codec> Sink for Framed<T, C> {
}
}
self.wr = self.codec.encode(item).unwrap();
try!(self.codec.encode(item, &mut self.wr));
Ok(AsyncSink::Ready)
}
+2 -1
View File
@@ -28,8 +28,9 @@ impl Codec for LineCodec {
Ok(buf.drain_to(amt))
}
fn encode(&mut self, item: EasyBuf, into: &mut Vec<u8>) {
fn encode(&mut self, item: EasyBuf, into: &mut Vec<u8>) -> io::Result<()> {
into.extend_from_slice(item.as_slice());
Ok(())
}
}