From 6e8a1a415c3ce1c6c0f946a8d55d245eeb582331 Mon Sep 17 00:00:00 2001 From: Alex Helfet Date: Fri, 22 Dec 2017 14:39:46 +0000 Subject: [PATCH] Writer.send() uses to_slice(). --- src/lib.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 30d8af7..cf34dbb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -152,17 +152,11 @@ impl Sender { self.w } - pub fn send(&mut self, p: &[u8]) -> Result<()> { - let mut code = cobs::encode_vec(p); - code.push(END_SYMBOL); - #[cfg(feature = "trace")] { - println!("framed: Sending code = {:?}", code); - } - - #[cfg(feature = "use_std")] { - self.w.write(&code)?; - } - + pub fn send(&mut self, p: &Payload) -> Result<()> { + let buf_len = max_encoded_len(p.0.len())?; + let mut buf = vec![0; buf_len]; + let code_len = to_slice(p, &mut buf[0..])?; + self.w.write(&buf[0..code_len])?; Ok(()) } }