fn unpack_archive<'a, A, C, D>(
    archive: &mut Archive<A>,
    apparent_limit_size: u64,
    actual_limit_size: u64,
    limit_count: u64,
    entry_checker: C,
    entry_processor: D
) -> Result<()>where
    A: Read,
    C: FnMut(&[&str], EntryType) -> UnpackPath<'a>,
    D: Fn(PathBuf),