inno 0.4.2

Library for reading Inno Setup executables
Documentation
use std::io::{Error, ErrorKind, Read, Result};

use liblzma::stream::{Filters, Stream};

pub struct LzmaStreamHeader;

impl LzmaStreamHeader {
    pub fn read<R>(src: &mut R) -> Result<Stream>
    where
        R: Read,
    {
        let mut properties = [0; 5];
        src.read_exact(&mut properties)?;

        let mut filters = Filters::new();
        filters.lzma1_properties(&properties)?;

        Stream::new_raw_decoder(&filters).map_err(|error| Error::new(ErrorKind::InvalidData, error))
    }
}