Skip to content

Commit 1326cde

Browse files
committed
divide files
1 parent 6722774 commit 1326cde

File tree

4 files changed

+20
-17
lines changed

4 files changed

+20
-17
lines changed

chapter3/Cargo.toml

+5-2
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,8 @@ path = "src/3_9_5/main.rs"
3333
name = "3_6_1"
3434
path = "src/3_6_1/main.rs"
3535
[[bin]]
36-
name = "3_7"
37-
path = "src/3_7/main.rs"
36+
name = "3_7_multi"
37+
path = "src/3_7/multi_reader.rs"
38+
[[bin]]
39+
name = "3_7_tee"
40+
path = "src/3_7/tee_reader.rs"

chapter3/src/3_7/multi_reader.rs

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
use std::io::{copy, stdout};
2+
3+
use lib::io::MultiReader;
4+
5+
fn main() -> std::io::Result<()> {
6+
let header = "---- HEADER ----\n".as_bytes();
7+
let content = "Example of MultiReader\n".as_bytes();
8+
let footer = "---- FOOTER ----\n".as_bytes();
9+
let mut multi_reader = MultiReader::new(vec![header, content, footer]);
10+
copy(&mut multi_reader, &mut stdout())?;
11+
12+
Ok(())
13+
}

chapter3/src/3_7/main.rs renamed to chapter3/src/3_7/tee_reader.rs

+1-14
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
//! Rust には MultiReader と TeeReader は存在しないため、それらを自前で実装して用意しています。
2-
3-
use std::{
4-
io::{copy, stdout, Read, Write},
5-
usize,
6-
};
7-
8-
use lib::io::MultiReader;
1+
use std::io::{Read, Write};
92

103
struct TeeReader<R, W>
114
where
@@ -39,12 +32,6 @@ where
3932
}
4033

4134
fn main() -> std::io::Result<()> {
42-
let header = "---- HEADER ----\n".as_bytes();
43-
let content = "Example of MultiReader\n".as_bytes();
44-
let footer = "---- FOOTER ----\n".as_bytes();
45-
let mut multi_reader = MultiReader::new(vec![header, content, footer]);
46-
copy(&mut multi_reader, &mut stdout())?;
47-
4835
// TeeReader を使用した場合の例。
4936
let mut buf = Vec::new();
5037
let reader = "Example of TeeReader".as_bytes();

lib/src/io/multi_reader.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ impl<R: Read> Read for MultiReader<R> {
4646
}
4747
None => return Ok(0),
4848
}
49-
self.pos = self.pos + 1;
49+
self.pos += 1;
5050
}
5151
}
5252
}

0 commit comments

Comments
 (0)