pub struct PackReceipt {
pub indexed: IndexedPack,
pub new_objects: Result<Vec<ObjectId>, String>,
}Expand description
What taking the pack into storage produced.
PackIngest returns this rather than a bare IndexedPack because the
only place that can answer “which objects did this push introduce”
honestly is the code that resolved the pack: it is the one that knows which
entries came off the wire and which bases it pulled out of the store to
complete a thin pack. Recovering it afterwards from the written index cannot
tell those apart.
Debug and Clone because both of its fields already are, and because
crate::fetch_pack::FetchReport carries one: a report a caller cannot
print is a report a caller logs by hand, field by field, and gets wrong.
Fields§
§indexed: IndexedPackThe pack as indexed.
new_objects: Result<Vec<ObjectId>, String>The genuinely-new objects, or why they are unknown. See
PushFacts::new_objects for why this is not an Option.
Implementations§
Source§impl PackReceipt
impl PackReceipt
Sourcepub fn without_object_set(indexed: IndexedPack) -> Self
pub fn without_object_set(indexed: IndexedPack) -> Self
A receipt from an ingest that does not enumerate the pushed objects.
The reason, rather than an empty set, so gates refuse instead of deciding on nothing.