blob: 55eefc2635dd74c9ac7541cf6c1c019f4edb1071 [file] [log] [blame] [edit]
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;
use std::io::{Read, Write};
let stdout = &mut io::stdout();
{
let mut writer = brotli::CompressorWriter::new(
stdout,
4096,
11,
22);
let mut buf = [0u8; 4096];
loop {
match io::stdin().read(&mut buf[..]) {
Err(e) => {
if let io::ErrorKind::Interrupted = e.kind() {
continue;
}
panic!("{}", e);
}
Ok(size) => {
if size == 0 {
match writer.flush() {
Err(e) => {
if let io::ErrorKind::Interrupted = e.kind() {
continue;
}
panic!("{}", e)
}
Ok(_) => break,
}
}
match writer.write_all(&buf[..size]) {
Err(e) => panic!("{}", e),
Ok(_) => {},
}
}
}
}
}
}