pub enum Error {
RsyncDiffError(DiffError),
RsyncApplyError(ApplyError),
BidiffError(String),
BeforeHashMismatch,
AfterHashMismatch,
OperationsHashMismatch,
IoError(String),
ZipError(String),
SerializeError(Error),
DeserializeError(Error),
}Expand description
Errors that can occur during diffing and patching operations.
This enum represents all possible errors that can occur when generating or applying patches, including algorithm-specific errors, hash validation failures, and I/O operations.
§Example
use darkwing_diff::{diff, DiffAlgorithm, CompressAlgorithm};
let before = b"original";
let after = b"modified";
match diff(before, after, DiffAlgorithm::Rsync020, CompressAlgorithm::Zstd) {
Ok(patch) => println!("Patch generated successfully"),
Err(e) => match e {
darkwing_diff::Error::IoError(msg) => eprintln!("IO error: {}", msg),
darkwing_diff::Error::BeforeHashMismatch => eprintln!("Source file corrupted"),
_ => eprintln!("Other error: {:?}", e),
}
}Variants§
RsyncDiffError(DiffError)
An error occurred in the rsync diff algorithm
RsyncApplyError(ApplyError)
An error occurred while applying an rsync patch
BidiffError(String)
An error occurred in the bidiff algorithm
BeforeHashMismatch
The hash of the source file doesn’t match the expected hash
AfterHashMismatch
The hash of the generated file doesn’t match the expected hash
OperationsHashMismatch
The hash of the operations doesn’t match the expected hash
IoError(String)
An I/O error occurred during file operations
ZipError(String)
An error occurred while processing a zip archive
SerializeError(Error)
An error occurred while serializing a patch or patch set
DeserializeError(Error)
An error occurred while deserializing a patch or patch set
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Error
impl !RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl !UnwindSafe for Error
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more