pub enum ReconciliationOutcome {
Published {
attempts: u32,
elapsed_ms: u64,
},
NotPublished {
attempts: u32,
elapsed_ms: u64,
},
StillUnknown {
attempts: u32,
elapsed_ms: u64,
reason: String,
},
}Expand description
Outcome of reconciling an ambiguous publish attempt against registry truth.
When cargo publish exits with an ambiguous class (e.g., upload succeeded
but index poll timed out, or stdout did not parse into a known failure
pattern), Shipper refuses to blind-retry. Instead it polls the registry
within a bounded window and resolves one of three outcomes.
See also: ErrorClass::Ambiguous and PackageState::Ambiguous.
Variants§
Published
Registry confirms the crate+version is published. Safe to mark as Published and advance; no further retry should occur for this crate.
NotPublished
Registry confirms the crate+version is NOT visible after the bounded
polling window. Caller may safely enter the normal Retryable path
(retry cargo publish) knowing there is no side-effect to duplicate.
StillUnknown
Polling itself failed (repeated registry-query errors, or exceeded
the operator’s patience budget without a clear signal). Caller MUST
NOT retry cargo publish; mark the package PackageState::Ambiguous
and halt for operator decision.
Trait Implementations§
Source§impl Clone for ReconciliationOutcome
impl Clone for ReconciliationOutcome
Source§fn clone(&self) -> ReconciliationOutcome
fn clone(&self) -> ReconciliationOutcome
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ReconciliationOutcome
impl Debug for ReconciliationOutcome
Source§impl<'de> Deserialize<'de> for ReconciliationOutcome
impl<'de> Deserialize<'de> for ReconciliationOutcome
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 PartialEq for ReconciliationOutcome
impl PartialEq for ReconciliationOutcome
Source§impl Serialize for ReconciliationOutcome
impl Serialize for ReconciliationOutcome
impl Eq for ReconciliationOutcome
impl StructuralPartialEq for ReconciliationOutcome
Auto Trait Implementations§
impl Freeze for ReconciliationOutcome
impl RefUnwindSafe for ReconciliationOutcome
impl Send for ReconciliationOutcome
impl Sync for ReconciliationOutcome
impl Unpin for ReconciliationOutcome
impl UnsafeUnpin for ReconciliationOutcome
impl UnwindSafe for ReconciliationOutcome
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.