pub struct EmitReport {
pub written: u32,
pub copied: u32,
pub recompressed: u32,
pub deltified: u32,
pub rebased: u32,
pub bytes: u64,
}Expand description
What emitting produced, in facts a caller can assert on.
Fields§
§written: u32Entries written.
copied: u32Entries whose stored payload was copied unchanged. It is counted rather
than assumed because “correct but slow” is the failure index-pack --strict and fsck both pass.
recompressed: u32Entries whose payload was inflated and re-deflated because the caller
could not ship the stored bytes — a delta whose base is outside the
request. copied + recompressed == written, always.
Zero for a whole-repository clone, which is why the copy claim survives: a full clone’s selection contains every base, so no entry ever needs rebuilding. It is non-zero exactly at the boundary a narrowed request cuts through, and that is the number worth watching.
deltified: u32Of the Self::recompressed, how many went out as a computed delta
against a base the pack carries rather than as a whole object.
deltified <= recompressed, always.
The two rebuilds cost the same receipt and very different bytes, so
without this column a boundary-heavy request looks identical whether the
re-delta ran or not. Measured on h2h-linear-sha1-2048c-1024f-16k’s
narrowed clone: 961 recompressed, of which 859 deltified, and the
pack fell from 11 613 666 bytes to 6 424 726 for the identical 31 805
objects.
rebased: u32Entries whose OFS_DELTA distance had to be re-encoded because the gap
to their base changed. Zero only if the subset happened to preserve every
gap, which for anything but a whole pack it will not.
bytes: u64Bytes on the wire, trailer included.
Trait Implementations§
Source§impl Clone for EmitReport
impl Clone for EmitReport
Source§fn clone(&self) -> EmitReport
fn clone(&self) -> EmitReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EmitReport
impl Debug for EmitReport
Source§impl Default for EmitReport
impl Default for EmitReport
Source§fn default() -> EmitReport
fn default() -> EmitReport
impl Eq for EmitReport
Source§impl PartialEq for EmitReport
impl PartialEq for EmitReport
impl StructuralPartialEq for EmitReport
Auto Trait Implementations§
impl Freeze for EmitReport
impl RefUnwindSafe for EmitReport
impl Send for EmitReport
impl Sync for EmitReport
impl Unpin for EmitReport
impl UnsafeUnpin for EmitReport
impl UnwindSafe for EmitReport
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.