1 use std::io::{self, Read};
2 
main()3 fn main() {
4     std::process::exit(real_main());
5 }
6 
real_main() -> i327 fn real_main() -> i32 {
8     let stdin = io::stdin();
9     let mut stdin_handle = stdin.lock();
10     let mut buf = [0u8; 16];
11 
12     loop {
13         match zip::read::read_zipfile_from_stream(&mut stdin_handle) {
14             Ok(Some(mut file)) => {
15                 println!(
16                     "{}: {} bytes ({} bytes packed)",
17                     file.name(),
18                     file.size(),
19                     file.compressed_size()
20                 );
21                 match file.read(&mut buf) {
22                     Ok(n) => println!("The first {} bytes are: {:?}", n, &buf[0..n]),
23                     Err(e) => println!("Could not read the file: {:?}", e),
24                 };
25             }
26             Ok(None) => break,
27             Err(e) => {
28                 println!("Error encountered while reading zip: {:?}", e);
29                 return 1;
30             }
31         }
32     }
33     return 0;
34 }
35