pub enum WorkflowRejection {
MaxDepthExceeded {
depth: u32,
max: u32,
},
CycleDetected {
target: String,
chain: Vec<String>,
},
MaxFanOutExceeded {
invocations: u32,
max: u32,
},
TokenBudgetExhausted {
used: u64,
max: u64,
},
WorkflowTimeout {
elapsed_secs: u64,
max: u64,
},
GuardUnavailable,
}Expand description
Reason a workflow invocation was rejected by the guard.
Each variant carries the observed value and the configured limit for diagnostics.
§Examples
use ironflow_engine::guard::WorkflowRejection;
let r = WorkflowRejection::MaxDepthExceeded { depth: 6, max: 5 };
assert!(r.to_string().contains("6"));
assert!(r.to_string().contains("5"));Variants§
MaxDepthExceeded
The sub-workflow nesting depth exceeds the configured maximum.
CycleDetected
The target workflow is already in the call chain (direct or indirect cycle).
Fields
MaxFanOutExceeded
The total number of workflow invocations exceeds the configured maximum.
TokenBudgetExhausted
The cumulative token usage exceeds the configured budget.
WorkflowTimeout
The workflow has exceeded its global timeout.
The guard state is unavailable (fail closed).
Trait Implementations§
Source§impl Clone for WorkflowRejection
impl Clone for WorkflowRejection
Source§fn clone(&self) -> WorkflowRejection
fn clone(&self) -> WorkflowRejection
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 WorkflowRejection
impl Debug for WorkflowRejection
Source§impl Display for WorkflowRejection
impl Display for WorkflowRejection
impl Eq for WorkflowRejection
Source§impl Error for WorkflowRejection
impl Error for WorkflowRejection
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl From<WorkflowRejection> for EngineError
impl From<WorkflowRejection> for EngineError
Source§fn from(source: WorkflowRejection) -> Self
fn from(source: WorkflowRejection) -> Self
Converts to this type from the input type.
Source§impl PartialEq for WorkflowRejection
impl PartialEq for WorkflowRejection
impl StructuralPartialEq for WorkflowRejection
Auto Trait Implementations§
impl Freeze for WorkflowRejection
impl RefUnwindSafe for WorkflowRejection
impl Send for WorkflowRejection
impl Sync for WorkflowRejection
impl Unpin for WorkflowRejection
impl UnsafeUnpin for WorkflowRejection
impl UnwindSafe for WorkflowRejection
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
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
Compare self to
key and return true if they are equal.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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.