/// An item of the iteration produced by [`BytesToEntriesIter`] #[derive(PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct Entry { /// The header of a pack entry pub header: crate::data::entry::Header, /// The amount of bytes used to encode the `header`. `pack_offset + header_size` is the beginning of /// the compressed data in the pack. pub header_size: u16, /// The first byte of the entry at which the `header` can be read. pub pack_offset: u64, /// The bytes consumed while producing `decompressed` /// These do not contain the header, which makes it possible to easily replace a RefDelta with offset deltas /// when resolving thin packs. /// Depends on `CompressionMode` when the iterator is initialized. pub compressed: Option>, /// The amount of bytes the compressed portion of the entry takes, i.e. the portion behind behind the header. pub compressed_size: u64, /// The CRC32 over the complete entry, that is encoded header and compressed object data. /// Depends on `CompressionMode` when the iterator is initialized pub crc32: Option, /// The amount of decompressed bytes of the entry. pub decompressed_size: u64, /// Set for the last object in the iteration, providing the hash over all bytes of the iteration /// for use as trailer in a pack or to verify it matches the trailer. pub trailer: Option, } mod entry; mod types; pub use types::{EntryDataMode, Error, Mode}; mod bytes_to_entries; pub use bytes_to_entries::BytesToEntriesIter; mod lookup_ref_delta_objects; pub use lookup_ref_delta_objects::LookupRefDeltaObjectsIter; mod entries_to_bytes; pub use entries_to_bytes::EntriesToBytesIter;