bufread_reduced_read_count/
bufread_reduced_read_count.rs1use io_wrapper_statistics::{IOStatWrapper, IopInfoPair};
2
3use std::fs::File;
4use std::io::{Read, BufReader};
5
6fn main() {
7 let file_obj = File::open("Cargo.toml").unwrap();
8 let mut instrumented_raw_file = IOStatWrapper::<_, Vec<IopInfoPair>>::new(file_obj, 0);
9 let buffered_io = BufReader::new(&mut instrumented_raw_file);
10 let mut instrumented_buf_file = IOStatWrapper::<_, Vec<IopInfoPair>>::new(buffered_io, 0);
11
12 let mut xor_result: u8 = 0x00;
14 for byte in (&mut instrumented_buf_file).bytes() {
15 xor_result ^= byte.unwrap();
16 }
17 println!("XOR of all bytes in Cargo.toml is {:#x}", xor_result);
18
19 println!("Buffered read was called successfully {} times",
21 instrumented_buf_file.read_call_counter().success_ctr());
22 println!("Inner read was called successfully {} times",
23 instrumented_raw_file.read_call_counter().success_ctr());
24}