#[non_exhaustive]pub struct SyncReport {
pub graph: PackGraph,
pub steps: Vec<SyncStep>,
pub halted: Option<SyncError>,
pub event_log_warnings: Vec<String>,
pub pre_run_recovery: Option<RecoveryReport>,
pub workspace_migrations: Vec<WorkspaceMigration>,
}Expand description
Outcome of a run invocation.
On fail-fast termination, halted carries the error that stopped the
sync; every completed step up to that point is still in steps so
callers can render a partial transcript.
Marked #[non_exhaustive] so new report-level fields (run id, metrics)
can land without breaking library consumers who destructure the struct.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.graph: PackGraphFully-walked pack graph (present even on halted runs).
steps: Vec<SyncStep>Steps produced by the executor, in execution order.
halted: Option<SyncError>Some(e) if execution stopped before all actions ran.
event_log_warnings: Vec<String>Non-fatal manifest-append warnings (one per failed event append). Kept as a separate field because spec marks event-log write failures as non-aborting.
pre_run_recovery: Option<RecoveryReport>Some(r) when the pre-run teardown scan found orphaned backup
files or dangling Event::ActionStarted records from a prior
crashed run. Informational only — the report is still returned and
the sync proceeds. CLI renderers should surface a warning so the
operator can decide whether to run a future grex doctor verb.
workspace_migrations: Vec<WorkspaceMigration>One entry per child whose legacy .grex/workspace/<name>/ layout
was relocated (or considered for relocation) on this sync. Empty
when no legacy directory was found — the common case for any
workspace built fresh on v1.1.0+. CLI renderers should surface
the list so operators see what changed.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SyncReport
impl !RefUnwindSafe for SyncReport
impl Send for SyncReport
impl Sync for SyncReport
impl Unpin for SyncReport
impl UnsafeUnpin for SyncReport
impl !UnwindSafe for SyncReport
Blanket Implementations§
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
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more