extern crate klu_core;
use std::io::prelude::*;
#[cfg(feature = "virtual_fs")]
fn main() {
let mut archive =
klu_core::read::Archive::from_path("./test/archive.klu").expect("Unable to open archive");
let mut reader = archive.get_virtual("archive/testfile").unwrap();
let mut buffer = [0; 8];
reader
.read(&mut buffer)
.expect("Error while reading in VirtualFile");
assert_eq!(buffer, [0xFF, 0xEE, 0xDD, 0xCC, 0xBB, 0xAA, 0x99, 0x88]);
let mut buf_r1 = std::io::BufReader::new(archive.get_virtual("archive/image.jpg").unwrap());
let mut buf_r2 = std::io::BufReader::new(archive.get_virtual("archive/image.jpg").unwrap());
let mut buf1 = [0; 8];
let mut buf2 = [0; 8];
assert_eq!(
buf_r1.read(&mut buf1).unwrap(),
buf_r2.read(&mut buf2).unwrap()
);
assert_eq!(buf1, buf2);
let mut buf2 = [0; 5];
assert_eq!(
buf_r1.read(&mut buf1).unwrap(),
buf_r2.read(&mut buf2).unwrap() + 3
);
assert_eq!(buf1[..5], buf2);
}
#[cfg(not(feature = "virtual_fs"))]
fn main() {
println!("read_file exemple needs to run with the 'virtual_fs' feature");
println!("cargo run --examples read_file --features virtual_fs");
}