refactor(http): delete some indirection around Http1Transaction::parse

This commit is contained in:
Yazad Daruvala
2017-05-10 23:52:45 -07:00
parent 09fe9e6a80
commit 2f0470bcf3
3 changed files with 17 additions and 24 deletions

View File

@@ -5,7 +5,7 @@ use std::ptr;
use tokio_io::{AsyncRead, AsyncWrite};
use http::{Http1Transaction, h1, MessageHead, ParseResult, DebugTruncate};
use http::{Http1Transaction, MessageHead, DebugTruncate};
use bytes::{BytesMut, Bytes};
const INIT_BUFFER_SIZE: usize = 8192;
@@ -56,7 +56,7 @@ impl<T: AsyncRead + AsyncWrite> Buffered<T> {
pub fn parse<S: Http1Transaction>(&mut self) -> ::Result<Option<MessageHead<S::Incoming>>> {
loop {
match try!(parse::<S, _>(&mut self.read_buf)) {
match try!(S::parse(&mut self.read_buf)) {
Some(head) => {
//trace!("parsed {} bytes out of {}", len, self.read_buf.len());
return Ok(Some(head.0))
@@ -151,10 +151,6 @@ impl<T: Write> Write for Buffered<T> {
}
}
fn parse<T: Http1Transaction<Incoming=I>, I>(rdr: &mut BytesMut) -> ParseResult<I> {
h1::parse::<T, I>(rdr)
}
pub trait MemRead {
fn read_mem(&mut self, len: usize) -> io::Result<Bytes>;
}