pub enum StatusKind {
Clean,
LocalEdit,
GatewayDrift,
Conflict,
Added {
local: bool,
},
Deleted {
local: bool,
},
Untracked,
}Expand description
The three-way-compare verdict for one path.
§Direction semantics — PUSH-RELATIVE (planner lock, load-bearing)
Every row describes what workspace push would do to the
GATEWAY. This is the projects.rs:535-555 lesson applied
explicitly: diff speaks B-relative while sync speaks
source→target, and agents misread mixed-direction labels. Here
there is exactly one direction, pinned in code and tests:
StatusKind::LocalEdit— the local side changed since checkout and the gateway still matches the recorded baseline: push would WRITE this member to the gateway.StatusKind::GatewayDrift— the gateway moved on since checkout and the local side still matches the baseline: push would NOT touch this member (a pull/refresh would).StatusKind::Conflict— BOTH sides diverged from the recorded baseline: push REFUSES outright (never--yes-able — clobbering a concurrent Designer edit is beyond any flag, Pitfall W2).StatusKind::Clean— both sides still match the baseline.
Set-difference verdicts (not from classify’s matrix):
StatusKind::Deleted— a manifest member gone from one side.local: true= deleted locally (push--deletewould remove it gateway-side; without--deletepush reports it as skipped).local: false= deleted gateway-side since checkout (pull territory — push would not touch it).StatusKind::Added— a member present in the fresh gateway export but not in the manifest (exported since checkout;local: false— bringing it into the tree is checkout--refreshterritory, which is manual in v1).StatusKind::Untracked— a local file that is not a checkout member and not workspace machinery. Push IGNORES untracked files (never imports them): bringing a file into the gateway is checkout/replace territory, not push’s job.
Variants§
Clean
Both sides match the recorded checkout baseline.
LocalEdit
Local changed, gateway at baseline — push would write.
GatewayDrift
Gateway moved on, local at baseline — push would not touch.
Conflict
Both sides diverged — push refuses, never --yes-able.
Added
Member in the fresh export but not in the manifest.
Fields
Deleted
Manifest member gone from one side.
Fields
Untracked
Local file that is not a checkout member; push ignores it.
Trait Implementations§
Source§impl Clone for StatusKind
impl Clone for StatusKind
Source§fn clone(&self) -> StatusKind
fn clone(&self) -> StatusKind
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StatusKind
impl Debug for StatusKind
Source§impl PartialEq for StatusKind
impl PartialEq for StatusKind
Source§impl Serialize for StatusKind
impl Serialize for StatusKind
impl StructuralPartialEq for StatusKind
Auto Trait Implementations§
impl Freeze for StatusKind
impl RefUnwindSafe for StatusKind
impl Send for StatusKind
impl Sync for StatusKind
impl Unpin for StatusKind
impl UnsafeUnpin for StatusKind
impl UnwindSafe for StatusKind
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
Mutably borrows from an owned value. Read more