| extern crate brotli; |
| #[cfg(not(feature="std"))] |
| fn main() { |
| panic!("For no-stdlib examples please see the tests") |
| } |
| #[cfg(feature="std")] |
| fn main() { |
| use std::io; |
| let stdin = &mut io::stdin(); |
| { |
| use std::io::{Read, Write}; |
| let mut reader = brotli::Decompressor::new( |
| stdin, |
| 4096, // buffer size |
| ); |
| let mut buf = [0u8; 4096]; |
| loop { |
| match reader.read(&mut buf[..]) { |
| Err(e) => { |
| if let io::ErrorKind::Interrupted = e.kind() { |
| continue; |
| } |
| panic!("{}", e); |
| } |
| Ok(size) => { |
| if size == 0 { |
| break; |
| } |
| match io::stdout().write_all(&buf[..size]) { |
| Err(e) => panic!("{}", e), |
| Ok(_) => {}, |
| } |
| } |
| } |
| } |
| } |
| } |