pub enum SnapshotReplicationPhase {
Pending,
Replicating,
Succeeded,
Failed,
Suspended,
Unknown(String),
}Expand description
Lifecycle phase of a snapshot replication.
use kopiur_api::snapshot_replication::SnapshotReplicationPhase as P;
assert_eq!(serde_json::to_value(P::Suspended).unwrap(), "Suspended");
// An unrecognized phase from a newer operator decodes instead of erroring.
let p: P = serde_json::from_value(serde_json::json!("Verifying")).unwrap();
assert_eq!(p, P::Unknown("Verifying".into()));
assert_eq!(serde_json::to_value(&p).unwrap(), "Verifying");Variants§
Pending
Admitted, not yet run (also the default).
Replicating
A replication mover Job is in flight.
Succeeded
The most recent replication completed successfully (idle until the next slot).
Failed
The most recent replication run failed; see conditions.
Suspended
Suspended via spec.suspend.
Unknown(String)
A phase string this build does not recognize (newer operator, or legacy stored data). Decode-compat only — hidden from the CRD schema, never produced by this build, never a success.
Implementations§
Source§impl SnapshotReplicationPhase
impl SnapshotReplicationPhase
Sourcepub fn is_unknown(&self) -> bool
pub fn is_unknown(&self) -> bool
Whether this phase is the decode sentinel — a value the running build
cannot interpret, kept verbatim by Unknown instead of
failing the whole typed list()/watch (#359, defect 3).
Same narrow contract as
RepositoryReplicationPhase::is_unknown:
true means only “this string is not a phase this binary knows”, never
“unusual” or “not one I handle”. A canonical variant added to this enum
later is by definition not the sentinel, which is why the match is
written out exhaustively rather than left as a matches! — the compiler,
not a reviewer, is what forces the new variant to answer.
use kopiur_api::SnapshotReplicationPhase;
assert!(SnapshotReplicationPhase::Unknown("Verifying".into()).is_unknown());
assert!(!SnapshotReplicationPhase::Pending.is_unknown());
assert!(!SnapshotReplicationPhase::Replicating.is_unknown());
assert!(!SnapshotReplicationPhase::Suspended.is_unknown());Trait Implementations§
Source§impl Clone for SnapshotReplicationPhase
impl Clone for SnapshotReplicationPhase
Source§fn clone(&self) -> SnapshotReplicationPhase
fn clone(&self) -> SnapshotReplicationPhase
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SnapshotReplicationPhase
impl Debug for SnapshotReplicationPhase
Source§impl Default for SnapshotReplicationPhase
impl Default for SnapshotReplicationPhase
Source§fn default() -> SnapshotReplicationPhase
fn default() -> SnapshotReplicationPhase
Source§impl<'de> Deserialize<'de> for SnapshotReplicationPhase
impl<'de> Deserialize<'de> for SnapshotReplicationPhase
Source§fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
impl Eq for SnapshotReplicationPhase
Source§impl JsonSchema for SnapshotReplicationPhase
impl JsonSchema for SnapshotReplicationPhase
Source§fn json_schema(_: &mut SchemaGenerator) -> Schema
fn json_schema(_: &mut SchemaGenerator) -> Schema
§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for SnapshotReplicationPhase
impl PartialEq for SnapshotReplicationPhase
Source§fn eq(&self, other: &SnapshotReplicationPhase) -> bool
fn eq(&self, other: &SnapshotReplicationPhase) -> bool
self and other values to be equal, and is used by ==.Source§impl PhaseLabel for SnapshotReplicationPhase
impl PhaseLabel for SnapshotReplicationPhase
Source§const ALL: &'static [Self]
const ALL: &'static [Self]
Unknown.Source§fn label(&self) -> &str
fn label(&self) -> &str
match); the Unknown arm echoes the stored value verbatim so a
read-modify-write never mutates a phase this build does not understand.Source§fn unknown(raw: String) -> Self
fn unknown(raw: String) -> Self
phase_serde! macro’s host enum.Source§impl Serialize for SnapshotReplicationPhase
impl Serialize for SnapshotReplicationPhase
impl StructuralPartialEq for SnapshotReplicationPhase
Auto Trait Implementations§
impl Freeze for SnapshotReplicationPhase
impl RefUnwindSafe for SnapshotReplicationPhase
impl Send for SnapshotReplicationPhase
impl Sync for SnapshotReplicationPhase
impl Unpin for SnapshotReplicationPhase
impl UnsafeUnpin for SnapshotReplicationPhase
impl UnwindSafe for SnapshotReplicationPhase
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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