archive-lp 0.2.3

a library for easy interaction with multiple archive formats.
Documentation

use failure::Error;

use std::fs;
use std::path::PathBuf;
use std::io::Read;

use flate2;

pub fn decode(file : &PathBuf) -> Result<Vec<u8>,Error> {
    //! decodes a gz stream

    let mut buffer : Vec<u8> = Vec::new();
    let mut archive = fs::File::open(&file)?;
    archive.read_to_end(&mut buffer)?;

    let mut decoder = flate2::read::GzDecoder::new(&buffer[..]);
    let mut decoded_buffer : Vec<u8> = Vec::new();
    decoder.read_to_end(&mut decoded_buffer)?;

    Ok(decoded_buffer)

}