use std::io::Write;
use std::path::{Path, PathBuf};
-use proxmox_backup::pxar::encoder::*;
-use proxmox_backup::pxar::decoder::*;
+use proxmox_backup::pxar;
fn print_filenames(
param: Value,
let mut reader = std::io::BufReader::new(file);
- let mut decoder = PxarDecoder::new(&mut reader);
+ let mut decoder = pxar::SequentialDecoder::new(&mut reader);
let stdout = std::io::stdout();
let mut out = stdout.lock();
let mut reader = std::io::BufReader::new(file);
- let mut decoder = PxarDecoder::new(&mut reader);
+ let mut decoder = pxar::SequentialDecoder::new(&mut reader);
let stdout = std::io::stdout();
let mut out = stdout.lock();
let mut reader = std::io::BufReader::new(file);
- let mut decoder = PxarDecoder::new(&mut reader);
+ let mut decoder = pxar::SequentialDecoder::new(&mut reader);
decoder.restore(Path::new(target), & |path| {
if verbose {
let mut writer = std::io::BufWriter::with_capacity(1024*1024, file);
- PxarEncoder::encode(source, &mut dir, &mut writer, all_file_systems, verbose)?;
+ pxar::Encoder::encode(source, &mut dir, &mut writer, all_file_systems, verbose)?;
writer.flush()?;
use nix::sys::stat::Mode;
use nix::dir::Dir;
-use crate::pxar::encoder::*;
+use crate::pxar;
/// Stream implementation to encode and upload .pxar archives.
///
let child = thread::spawn(move|| {
let mut writer = unsafe { std::fs::File::from_raw_fd(tx) };
- if let Err(err) = PxarEncoder::encode(path, &mut dir, &mut writer, all_file_systems, verbose) {
+ if let Err(err) = pxar::Encoder::encode(path, &mut dir, &mut writer, all_file_systems, verbose) {
eprintln!("pxar encode failed - {}", err);
}
});
use std::path::{Path, PathBuf};
use std::io::Write;
-use crate::pxar::decoder::*;
+use crate::pxar;
/// Writer implementation to deccode a .pxar archive (download).
let child = thread::spawn(move|| {
let mut reader = unsafe { std::fs::File::from_raw_fd(rx) };
- let mut decoder = PxarDecoder::new(&mut reader);
+ let mut decoder = pxar::SequentialDecoder::new(&mut reader);
if let Err(err) = decoder.restore(&base, & |path| {
if verbose {
//! * ...
//! * GOODBYE -- lookup table at the end of a list of directory entries
-pub mod binary_search_tree;
-pub mod format_definition;
-pub mod encoder;
-pub mod decoder;
+mod binary_search_tree;
+mod format_definition;
+pub use format_definition::*;
+
+mod encoder;
+pub use encoder::*;
+
+mod decoder;
+pub use decoder::*;
use nix::NixPath;
// This one need Read, but works without Seek
-pub struct PxarDecoder<'a, R: Read> {
+pub struct SequentialDecoder<'a, R: Read> {
reader: &'a mut R,
skip_buffer: Vec<u8>,
}
const HEADER_SIZE: u64 = std::mem::size_of::<CaFormatHeader>() as u64;
-impl <'a, R: Read> PxarDecoder<'a, R> {
+impl <'a, R: Read> SequentialDecoder<'a, R> {
pub fn new(reader: &'a mut R) -> Self {
let skip_buffer = vec![0u8; 64*1024];
/// maximum memory usage.
pub const MAX_DIRECTORY_ENTRIES: usize = 256*1024;
-pub struct PxarEncoder<'a, W: Write> {
+pub struct Encoder<'a, W: Write> {
current_path: PathBuf, // used for error reporting
writer: &'a mut W,
writer_pos: usize,
verbose: bool,
}
-impl <'a, W: Write> PxarEncoder<'a, W> {
+impl <'a, W: Write> Encoder<'a, W> {
pub fn encode(
path: PathBuf,