chiark / gitweb /
rename methods etc.
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 22 Aug 2021 15:46:14 +0000 (16:46 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 22 Aug 2021 15:48:09 +0000 (16:48 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
client/client.rs
src/queue.rs

index cd87c8ad9ceb9b4f87117d2c96d5f51c96178c66..887645d0fbca2b3a593696272863af22e440926a 100644 (file)
@@ -281,7 +281,7 @@ async fn run_client<C:HCC>(
               if addr != ic.link.client.0 { throw!(PE::Dst(addr)) }
               Ok(())
             },
-            |(o,())| future::ready(Ok({ rx_queue.push(o); })),
+            |(o,())| future::ready(Ok({ rx_queue.push_esc(o); })),
             |e| Ok::<_,SlipFramesError<Void>>( {
               error!("{} #{}: rx discarding: {}", &ic, req_num, e);
             })).await
index 5e22de9fb21eebfa40366e8945be27a6e87a1d5a..f32a47252f8e0a218e855671300d369b84c95d06 100644 (file)
@@ -53,7 +53,7 @@ impl<E> QueueBuf<E> where E: AsRef<[u8]> {
   pub fn push<B: Into<E>>(&mut self, b: B) {
     self.push_(b.into());
   }
-  pub fn push_(&mut self, b: E) {
+  fn push_(&mut self, b: E) {
     let l = b.as_ref().len();
     self.queue.push_back(b);
     self.content += l;
@@ -63,25 +63,24 @@ impl<E> QueueBuf<E> where E: AsRef<[u8]> {
 }
 
 impl FrameQueueBuf {
-  pub fn push<B: Into<Box<[u8]>>>(&mut self, b: B) {
-    self.push_(b.into());
+  pub fn push_esc<B: Into<Box<[u8]>>>(&mut self, b: B) {
+    self.push_esc_(b.into());
   }
-  pub fn push_(&mut self, b: Box<[u8]>) {
+  fn push_esc_(&mut self, b: Box<[u8]>) {
     self.queue.push_(Cervine::Owned(b));
     self.queue.push_(Cervine::Borrowed(&SLIP_END_SLICE));
   }
+  pub fn esc_push(&mut self, b: Box<[u8]>) {
+    self.queue.push_(Cervine::Borrowed(&SLIP_END_SLICE));
+    self.queue.push_(Cervine::Owned(b));
+  }
+  pub fn push_raw(&mut self, b: Box<[u8]>) {
+    self.queue.push_(Cervine::Owned(b));
+  }
   pub fn is_empty(&self) -> bool { self.queue.is_empty() }
   pub fn len(&self) -> usize { self.queue.len() }
 }
 
-impl<E> Extend<E> for FrameQueueBuf where E: Into<Box<[u8]>> {
-  fn extend<I>(&mut self, it: I)
-  where I: IntoIterator<Item=E>
-  {
-    for b in it { self.push(b) }
-  }
-}
-
 impl<E> hyper::body::Buf for QueueBuf<E> where E: AsRef<[u8]> {
   fn remaining(&self) -> usize { self.content }
   fn chunk(&self) -> &[u8] {
@@ -119,7 +118,7 @@ impl BufBody<FrameQueueBuf> {
   pub fn display<S:Display>(s: S) -> Self {
     let s = s.to_string().into_bytes();
     let mut buf: FrameQueueBuf = default();
-    buf.push(s);
+    buf.push_raw(s.into());
     Self::new(buf)
   }
 }