37 lines
998 B
Rust
37 lines
998 B
Rust
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(_) => {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|