1use indicatif::ProgressBar;
2use std::fs;
3use std::io::{BufRead, BufReader, Result as IOResult};
4use std::path::Path;
5
6pub mod background;
7pub mod compress;
8pub mod ext;
9pub mod lines;
10pub mod object;
11
12pub use compress::open_gzin_progress;
13pub use lines::LineProcessor;
14pub use object::ObjectWriter;
15
16pub fn open_progress(path: &Path, pb: ProgressBar) -> IOResult<impl BufRead> {
18 let name = path.file_name().unwrap().to_string_lossy();
19 let read = fs::File::open(path)?;
20 pb.set_length(read.metadata()?.len());
21 pb.set_prefix(name.to_string());
22
23 let read = pb.wrap_read(read);
24 let read = BufReader::new(read);
25 Ok(read)
26}