chiark / gitweb /
rename methods etc.
[hippotat.git] / src / queue.rs
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)
   }
 }