pub struct MirrorReport {
pub objects: u64,
pub bytes: u64,
pub updates: Vec<(String, String, String)>,
pub refused: Refusal,
}Expand description
What one sync produced.
The kind’s own fields; the runner never reads them. Nothing here is restated from the order — every number is measured by the fetch.
Fields§
§objects: u64Objects the packfile carried, as both the header declared and the ingest
indexed — fetch_pack refuses the transfer if those two disagree, so
there is one number here and not two.
0 on a mirror that was already up to date: no want, no pack, no walk charged to the remote. That is the ordinary answer for a poll.
bytes: u64Packfile bytes taken off the wire, header and trailer included. This is the figure that moves while the job runs.
updates: Vec<(String, String, String)>Every reference this sync moved, as (name, old, new) in hex, with an
all-zeroes new for a deletion and an all-zeroes old for a creation —
the gunnar.v1.RefUpdate convention, so the seam does no second
encoding.
refused: RefusalWhy the sync was refused by the namespace’s own plan, when it was
(2026-10-04) — MirrorJob.refused_reason on the wire, so a console
reads a field instead of parsing the sentence in error.
Trait Implementations§
Source§impl Clone for MirrorReport
impl Clone for MirrorReport
Source§impl Debug for MirrorReport
impl Debug for MirrorReport
Auto Trait Implementations§
impl Freeze for MirrorReport
impl RefUnwindSafe for MirrorReport
impl Send for MirrorReport
impl Sync for MirrorReport
impl Unpin for MirrorReport
impl UnsafeUnpin for MirrorReport
impl UnwindSafe for MirrorReport
Blanket Implementations§
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request