pub struct CreationReport {
pub files_added: usize,
pub directories_added: usize,
pub symlinks_added: usize,
pub bytes_written: u64,
pub bytes_compressed: u64,
pub duration: Duration,
pub files_skipped: usize,
pub warnings: Vec<String>,
}Expand description
Report of an archive creation operation.
Contains statistics and metadata about the creation process.
§Examples
use exarch_core::creation::CreationReport;
let mut report = CreationReport::default();
report.files_added = 10;
report.bytes_written = 1024;
report.bytes_compressed = 512;
assert_eq!(report.compression_ratio(), 2.0);
assert_eq!(report.compression_percentage(), 50.0);Fields§
§files_added: usizeNumber of files added to the archive.
directories_added: usizeNumber of directories added to the archive.
symlinks_added: usizeNumber of symlinks added to the archive.
bytes_written: u64Total bytes written to the archive (uncompressed).
bytes_compressed: u64Total bytes in the final archive (compressed).
duration: DurationDuration of the creation operation.
files_skipped: usizeNumber of files skipped (due to filters or errors).
warnings: Vec<String>Warnings generated during creation.
Implementations§
Source§impl CreationReport
impl CreationReport
Sourcepub fn add_warning(&mut self, msg: impl Into<String>)
pub fn add_warning(&mut self, msg: impl Into<String>)
Adds a warning message to the report.
§Examples
use exarch_core::creation::CreationReport;
let mut report = CreationReport::new();
report.add_warning("File too large, skipped");
assert!(report.has_warnings());Sourcepub fn has_warnings(&self) -> bool
pub fn has_warnings(&self) -> bool
Returns whether any warnings were generated.
§Examples
use exarch_core::creation::CreationReport;
let mut report = CreationReport::new();
assert!(!report.has_warnings());
report.add_warning("test warning");
assert!(report.has_warnings());Sourcepub fn compression_ratio(&self) -> f64
pub fn compression_ratio(&self) -> f64
Returns the compression ratio (uncompressed / compressed).
Returns 0.0 if bytes_compressed is 0 or bytes_written is 0.
§Examples
use exarch_core::creation::CreationReport;
let mut report = CreationReport::new();
report.bytes_written = 1000;
report.bytes_compressed = 500;
assert_eq!(report.compression_ratio(), 2.0);
// Edge case: zero compressed size
report.bytes_compressed = 0;
assert_eq!(report.compression_ratio(), 0.0);
// Edge case: equal sizes (no compression)
report.bytes_written = 1000;
report.bytes_compressed = 1000;
assert_eq!(report.compression_ratio(), 1.0);Sourcepub fn compression_percentage(&self) -> f64
pub fn compression_percentage(&self) -> f64
Returns the compression percentage (space saved).
Returns 0.0 if bytes_written is 0.
Returns 100.0 if bytes_compressed is 0 (perfect compression).
§Examples
use exarch_core::creation::CreationReport;
let mut report = CreationReport::new();
report.bytes_written = 1000;
report.bytes_compressed = 500;
assert_eq!(report.compression_percentage(), 50.0);
// Edge case: no compression
report.bytes_compressed = 1000;
assert_eq!(report.compression_percentage(), 0.0);
// Edge case: perfect compression
report.bytes_compressed = 0;
assert_eq!(report.compression_percentage(), 100.0);Sourcepub fn total_items(&self) -> usize
pub fn total_items(&self) -> usize
Returns total number of items added.
§Examples
use exarch_core::creation::CreationReport;
let mut report = CreationReport::new();
report.files_added = 10;
report.directories_added = 5;
report.symlinks_added = 2;
assert_eq!(report.total_items(), 17);Trait Implementations§
Source§impl Clone for CreationReport
impl Clone for CreationReport
Source§fn clone(&self) -> CreationReport
fn clone(&self) -> CreationReport
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more