1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! `ArchiveReader` is a library that wraps partial read functions from libarchive.
//! It provides rustic interface over listing file names and reading given files within archives.
//!
//! # Example
//! ```rust,no_run
//! use archive_reader::Archive;
//! use archive_reader::error::Result;
//!
//! fn main() -> Result<()> {
//! let mut archive = Archive::open("some_archive.zip");
//! let file_names = archive
//! .block_size(1024 * 1024)
//! .list_file_names()?
//! .collect::<Result<Vec<_>>>()?;
//! let mut content = vec![];
//! let _ = archive.read_file(&file_names[0], &mut content)?;
//! println!("content={content:?}");
//! Ok(())
//! }
//! ```
//! # Features
//! * `lending_iter` - Enables `LendingIterator` implementation, which avoids heap allocations for `read_file_by_block` function.
//!
extern crate core;
pub use crate*;
pub use *;
pub use LendingIterator;
use LendingIterator;
type Decoder = fn ;