Skip to main content

CopyReport

Struct CopyReport 

Source
pub struct CopyReport {
    pub items: Vec<CopyOutcome>,
    pub references_rewritten: u64,
    pub references_unresolved: u64,
    pub references_ambiguous: u64,
    pub delivers_rewritten: u64,
    pub delivered: Vec<Delivered>,
    pub spent: Option<Spent>,
}
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: u64

Reference 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: u64

Reference occurrences the copy recognised and left byte-for-byte as they were, because the correspondence could not be established.

§references_ambiguous: u64

How 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.

§delivers_rewritten: u64

delivers entries the copy rewrote to the destination’s own id for a member of the copied set, over the whole invocation. Every other entry arrives qualified and is not counted. Left out when zero, as the three figures above are.

§delivered: Vec<Delivered>

One entry per delivered task the copy kept in step with a task it landed, after the whole copy was complete — see task status set, which reports the same entries. Left out when there were none.

A failed entry does not undo the copy: the tasks it landed stay landed, and the command exits 4.

§spent: Option<Spent>

What this copy spent, summed over the sources in the command that meter their own requests — and absent, never zero, when none of them does.

Omitted from the wire when absent, like the three figures above, so a consumer written against the output before it existed reads the same document.

Trait Implementations§

Source§

impl Clone for CopyReport

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CopyReport

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for CopyReport

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl JsonSchema for CopyReport

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl PartialEq for CopyReport

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for CopyReport

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for CopyReport

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.