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 differing 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 files_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 {
files_diff::Error::IoError(msg) => eprintln!("IO error: {}", msg),
files_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§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out
indicating that a T
is niched.