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}