Enum rc_zip::error::FormatError
source · pub enum FormatError {
DirectoryEndSignatureNotFound,
Directory64EndRecordInvalid,
DirectoryOffsetPointsOutsideFile,
InvalidCentralRecord {
expected: u16,
actual: u16,
},
InvalidExtraField,
InvalidHeaderOffset,
ImpossibleNumberOfFiles {
claimed_records_count: u64,
zip_size: u64,
},
InvalidLocalHeader,
InvalidDataDescriptor,
WrongSize {
expected: u64,
actual: u64,
},
WrongChecksum {
expected: u32,
actual: u32,
},
}
Expand description
Specific zip format errors, mostly due to invalid zip archives but that could also stem from implementation shortcomings.
Variants§
DirectoryEndSignatureNotFound
The end of central directory record was not found.
This usually indicates that the file being read is not a zip archive.
Directory64EndRecordInvalid
The zip64 end of central directory record could not be parsed.
This is only returned when a zip64 end of central directory locator was found, so the archive should be zip64, but isn’t.
DirectoryOffsetPointsOutsideFile
Corrupted/partial zip file: the offset we found for the central directory points outside of the current file.
InvalidCentralRecord
The central record is corrupted somewhat.
This can happen when the end of central directory record advertises a certain number of files, but we weren’t able to read the same number of central directory headers.
InvalidExtraField
An extra field (that we support) was not decoded correctly.
This can indicate an invalid zip archive, or an implementation error in this crate.
InvalidHeaderOffset
The header offset of an entry is invalid.
This can indicate an invalid zip archive, or an invalid user-provided global offset
ImpossibleNumberOfFiles
End of central directory record claims an impossible number of files.
Each entry takes a minimum amount of size, so if the overall archive size is smaller than claimed_records_count * minimum_entry_size, we know it’s not a valid zip file.
Fields
InvalidLocalHeader
The local file header (before the file data) could not be parsed correctly.
InvalidDataDescriptor
The data descriptor (after the file data) could not be parsed correctly.
WrongSize
The uncompressed size didn’t match
Fields
WrongChecksum
The CRC-32 checksum didn’t match.