summaryrefslogtreecommitdiffstats
path: root/third_party/rust/flate2/examples/zlibencoder-bufread.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/flate2/examples/zlibencoder-bufread.rs')
-rw-r--r--third_party/rust/flate2/examples/zlibencoder-bufread.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/third_party/rust/flate2/examples/zlibencoder-bufread.rs b/third_party/rust/flate2/examples/zlibencoder-bufread.rs
new file mode 100644
index 0000000000..0321d8d38b
--- /dev/null
+++ b/third_party/rust/flate2/examples/zlibencoder-bufread.rs
@@ -0,0 +1,24 @@
+extern crate flate2;
+
+use flate2::bufread::ZlibEncoder;
+use flate2::Compression;
+use std::fs::File;
+use std::io;
+use std::io::prelude::*;
+use std::io::BufReader;
+
+// Open file and debug print the contents compressed with zlib
+fn main() {
+ println!("{:?}", open_hello_world().unwrap());
+}
+
+// Opens sample file, compresses the contents and returns a Vector or error
+// File wrapped in a BufReader implements Bufread
+fn open_hello_world() -> io::Result<Vec<u8>> {
+ let f = File::open("examples/hello_world.txt")?;
+ let b = BufReader::new(f);
+ let mut z = ZlibEncoder::new(b, Compression::fast());
+ let mut buffer = Vec::new();
+ z.read_to_end(&mut buffer)?;
+ Ok(buffer)
+}