tiny_http/util/
custom_stream.rs

1use std::io::Result as IoResult;
2use std::io::{Read, Write};
3
4pub struct CustomStream<R, W> {
5    reader: R,
6    writer: W,
7}
8
9impl<R, W> CustomStream<R, W>
10where
11    R: Read,
12    W: Write,
13{
14    pub fn new(reader: R, writer: W) -> CustomStream<R, W> {
15        CustomStream { reader, writer }
16    }
17}
18
19impl<R, W> Read for CustomStream<R, W>
20where
21    R: Read,
22{
23    fn read(&mut self, buf: &mut [u8]) -> IoResult<usize> {
24        self.reader.read(buf)
25    }
26}
27
28impl<R, W> Write for CustomStream<R, W>
29where
30    W: Write,
31{
32    fn write(&mut self, buf: &[u8]) -> IoResult<usize> {
33        self.writer.write(buf)
34    }
35
36    fn flush(&mut self) -> IoResult<()> {
37        self.writer.flush()
38    }
39}