#[non_exhaustive]pub enum ConflictKind {
DependencyAlreadyExists {
existing: EdgeSnapshot,
},
CycleDetected,
SelfReferencingEdge,
ExecutionAlreadyInFlow,
WaitpointAlreadyExists,
BudgetAttachConflict,
QuotaAttachConflict,
RotationConflict(String),
ActiveAttemptExists,
}Expand description
Permanent conflict sub-kinds. Caller must reconcile rather than retry.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
DependencyAlreadyExists
Dependency edge already exists. Carries the pre-existing
EdgeSnapshot so callers implementing “409 on re-declare
with different kind/ref” don’t need a follow-up read.
Note: the plain From<ScriptError> for EngineError impl
cannot populate existing (that requires an async
describe_edge round trip), so it falls through to
EngineError::Transport. Callers on the stage_dependency
path use ff_sdk::engine_error::enrich_dependency_conflict
to perform the follow-up read and promote the error.
Fields
existing: EdgeSnapshotCycleDetected
Edge would create a cycle.
SelfReferencingEdge
Self-referencing edge (upstream == downstream).
ExecutionAlreadyInFlow
Execution is already a member of another flow.
WaitpointAlreadyExists
Waitpoint already exists (pending or active).
BudgetAttachConflict
Budget already attached or conflicts.
QuotaAttachConflict
Quota policy already attached.
RotationConflict(String)
Rotation: same kid already installed with a different secret. String is the conflicting kid.
ActiveAttemptExists
Invariant violation: active attempt already exists where one was expected absent.
Trait Implementations§
Source§impl Clone for ConflictKind
impl Clone for ConflictKind
Source§fn clone(&self) -> ConflictKind
fn clone(&self) -> ConflictKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConflictKind
impl Debug for ConflictKind
Source§impl PartialEq for ConflictKind
impl PartialEq for ConflictKind
impl Eq for ConflictKind
impl StructuralPartialEq for ConflictKind
Auto Trait Implementations§
impl Freeze for ConflictKind
impl RefUnwindSafe for ConflictKind
impl Send for ConflictKind
impl Sync for ConflictKind
impl Unpin for ConflictKind
impl UnsafeUnpin for ConflictKind
impl UnwindSafe for ConflictKind
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<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