|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+use std::io;
|
|
|
2
|
+use std::io::prelude::*;
|
|
|
3
|
+
|
|
1
|
4
|
struct Shell<R, W> {
|
|
2
|
5
|
pub reader: R,
|
|
3
|
6
|
pub writer: W,
|
|
|
@@ -30,13 +33,22 @@ impl Shell<R, W> {
|
|
30
|
33
|
}
|
|
31
|
34
|
|
|
32
|
35
|
impl BufRead for Shell<R, W> {
|
|
33
|
|
- fn fill_buf(&mut self) -> Result<&[u8]> {}
|
|
34
|
|
- fn consume(&mut self, amt: usize) {}
|
|
|
36
|
+ fn fill_buf(&mut self) -> Result<&[u8]> {
|
|
|
37
|
+ let buf = match stdin.fill_buf() {
|
|
|
38
|
+ Ok(res) => res,
|
|
|
39
|
+ Err(e) => return Err(e),
|
|
|
40
|
+ }
|
|
|
41
|
+ buf.unwrap()
|
|
|
42
|
+ }
|
|
|
43
|
+ fn consume(&mut self, amt: usize) {
|
|
|
44
|
+ }
|
|
35
|
45
|
}
|
|
36
|
46
|
|
|
37
|
47
|
impl Write for Shell<R, W> {
|
|
38
|
|
- fn write(&mut self, buf: &[u8]) -> Result<usize> {}
|
|
39
|
|
- fn flush(&mut self) -> Result<()> {}
|
|
|
48
|
+ fn write(&mut self, buf: &[u8]) -> Result<usize> {
|
|
|
49
|
+ }
|
|
|
50
|
+ fn flush(&mut self) -> Result<()> {
|
|
|
51
|
+ }
|
|
40
|
52
|
}
|
|
41
|
53
|
|
|
42
|
54
|
|