docs: Update documentation for CompressionEngine trait methods
Co-authored-by: aider (openai/andrew/openrouter/sonoma-sky-alpha) <aider@aider.chat>
This commit is contained in:
@@ -96,4 +96,53 @@ pub trait CompressionEngine {
|
|||||||
///
|
///
|
||||||
/// # Errors
|
/// # Errors
|
||||||
///
|
///
|
||||||
/// Returns an error if the path
|
/// Returns an error if the path is invalid or if there are permission issues.
|
||||||
|
fn create(&self, file_path: PathBuf) -> Result<Box<dyn Write>>;
|
||||||
|
|
||||||
|
/// Checks if this compression engine is supported on the current system.
|
||||||
|
///
|
||||||
|
/// Some compression types may require external programs or features to be enabled.
|
||||||
|
///
|
||||||
|
/// # Returns
|
||||||
|
///
|
||||||
|
/// * `bool` - True if supported, false otherwise.
|
||||||
|
fn is_supported(&self) -> bool {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Checks if this compression engine is internal (built-in) or external (program-based).
|
||||||
|
///
|
||||||
|
/// Internal engines use Rust implementations without external dependencies.
|
||||||
|
/// External engines rely on system programs.
|
||||||
|
///
|
||||||
|
/// # Returns
|
||||||
|
///
|
||||||
|
/// * `bool` - True if internal, false if external.
|
||||||
|
fn is_internal(&self) -> bool {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Copies decompressed content from a file to a writer.
|
||||||
|
///
|
||||||
|
/// Reads the compressed file and writes the decompressed content to the provided writer.
|
||||||
|
///
|
||||||
|
/// # Arguments
|
||||||
|
///
|
||||||
|
/// * `file_path` - Path to the compressed file.
|
||||||
|
/// * `writer` - Writer to receive decompressed content.
|
||||||
|
///
|
||||||
|
/// # Returns
|
||||||
|
///
|
||||||
|
/// * `Result<()>` - Success if the copy completes, or an error.
|
||||||
|
///
|
||||||
|
/// # Errors
|
||||||
|
///
|
||||||
|
/// Propagates errors from opening the file or copying data.
|
||||||
|
fn copy(&self, file_path: PathBuf, writer: &mut dyn Write) -> Result<()> {
|
||||||
|
let mut reader = self.open(file_path)?;
|
||||||
|
io::copy(&mut reader, writer)?;
|
||||||
|
writer.flush()?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Decompresses and outputs file
|
||||||
Reference in New Issue
Block a user