38 lines
1.0 KiB
Rust
38 lines
1.0 KiB
Rust
extern crate brotli_decompressor;
|
|
#[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::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(_) => {},
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|