pub struct CopyReport {
pub items: Vec<CopyOutcome>,
pub references_rewritten: u64,
pub references_unresolved: u64,
pub references_ambiguous: u64,
}Expand description
What a copy did, one entry per item.
The same per-item outcomes reach every consumer: the machine-readable output renders this, the rendered output renders this, and a Rust caller is handed it.
Fields§
§items: Vec<CopyOutcome>One entry per item the copy considered, in the order it considered them.
references_rewritten: u64Reference occurrences the copy rewrote to the destination’s own location for the record they name.
A silent bound is indistinguishable from a bug, so the copy says what it did to the references the documents it carried hold. This and the two below are totals over the whole invocation rather than figures per document, and all three default to zero, so a consumer written against the output before they existed is unaffected.
What these figures do not claim. The referent set is a document’s own project,
so a reference to a record in a different project is never recognised at all and
cannot appear in Self::references_unresolved either. These are the references
the copy recognised; they are not a census of every reference a document holds.
Noticing an out-of-scope reference would need exactly the unbounded destination walk
this design refuses.
references_unresolved: u64Reference occurrences the copy recognised and left byte-for-byte as they were, because the correspondence could not be established.
references_ambiguous: u64How many of Self::references_unresolved were left alone because the
correspondence was ambiguous rather than merely absent. A sub-count, never
larger than it.
Split out because the two mean different things to a reader. A reference with no counterpart is ordinary and expected under the bound above — the design working. An ambiguous one says the destination holds duplicate records for one work item, or the source reports one location for two records, and re-running the copy will never clear it.
Trait Implementations§
Source§impl Clone for CopyReport
impl Clone for CopyReport
Source§fn clone(&self) -> CopyReport
fn clone(&self) -> CopyReport
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 CopyReport
impl Debug for CopyReport
Source§impl<'de> Deserialize<'de> for CopyReport
impl<'de> Deserialize<'de> for CopyReport
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for CopyReport
impl JsonSchema for CopyReport
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more