| use std::io::{self, Read}; |
| |
| fn main() { |
| std::process::exit(real_main()); |
| } |
| |
| fn real_main() -> i32 { |
| let stdin = io::stdin(); |
| let mut stdin_handle = stdin.lock(); |
| let mut buf = [0u8; 16]; |
| |
| loop { |
| match zip::read::read_zipfile_from_stream(&mut stdin_handle) { |
| Ok(Some(mut file)) => { |
| println!( |
| "{}: {} bytes ({} bytes packed)", |
| file.name(), |
| file.size(), |
| file.compressed_size() |
| ); |
| match file.read(&mut buf) { |
| Ok(n) => println!("The first {} bytes are: {:?}", n, &buf[0..n]), |
| Err(e) => println!("Could not read the file: {e:?}"), |
| }; |
| } |
| Ok(None) => break, |
| Err(e) => { |
| println!("Error encountered while reading zip: {e:?}"); |
| return 1; |
| } |
| } |
| } |
| |
| 0 |
| } |