|
1 | 1 | use std::fmt; |
2 | 2 | use std::io::{self, Read, Write}; |
3 | 3 |
|
| 4 | +use bytes::{Buf, BufMut}; |
4 | 5 | use futures::Poll; |
5 | 6 | use tokio_io::{AsyncRead, AsyncWrite}; |
6 | 7 | use tokio_tls::TlsStream; |
@@ -51,19 +52,37 @@ impl<T: Read + Write> Write for MaybeHttpsStream<T> { |
51 | 52 | } |
52 | 53 |
|
53 | 54 | impl<T: AsyncRead + AsyncWrite> AsyncRead for MaybeHttpsStream<T> { |
| 55 | + #[inline] |
54 | 56 | unsafe fn prepare_uninitialized_buffer(&self, buf: &mut [u8]) -> bool { |
55 | 57 | match *self { |
56 | 58 | MaybeHttpsStream::Http(ref s) => s.prepare_uninitialized_buffer(buf), |
57 | 59 | MaybeHttpsStream::Https(ref s) => s.prepare_uninitialized_buffer(buf), |
58 | 60 | } |
59 | 61 | } |
| 62 | + |
| 63 | + #[inline] |
| 64 | + fn read_buf<B: BufMut>(&mut self, buf: &mut B) -> Poll<usize, io::Error> { |
| 65 | + match *self { |
| 66 | + MaybeHttpsStream::Http(ref mut s) => s.read_buf(buf), |
| 67 | + MaybeHttpsStream::Https(ref mut s) => s.read_buf(buf), |
| 68 | + } |
| 69 | + } |
60 | 70 | } |
61 | 71 |
|
62 | 72 | impl<T: AsyncWrite + AsyncRead> AsyncWrite for MaybeHttpsStream<T> { |
| 73 | + #[inline] |
63 | 74 | fn shutdown(&mut self) -> Poll<(), io::Error> { |
64 | 75 | match *self { |
65 | 76 | MaybeHttpsStream::Http(ref mut s) => s.shutdown(), |
66 | 77 | MaybeHttpsStream::Https(ref mut s) => s.shutdown(), |
67 | 78 | } |
68 | 79 | } |
| 80 | + |
| 81 | + #[inline] |
| 82 | + fn write_buf<B: Buf>(&mut self, buf: &mut B) -> Poll<usize, io::Error> { |
| 83 | + match *self { |
| 84 | + MaybeHttpsStream::Http(ref mut s) => s.write_buf(buf), |
| 85 | + MaybeHttpsStream::Https(ref mut s) => s.write_buf(buf), |
| 86 | + } |
| 87 | + } |
69 | 88 | } |
0 commit comments