Enum SopAdmissionPolicy
pub enum SopAdmissionPolicy {
Parallel,
Hold,
Coalesce,
Drop,
}Expand description
How concurrent triggers are handled when a SOP’s execution slots are full. A
run parked at a HITL approval releases its slot (A1), so this governs the
remaining case: too many runs actively executing at once. No variant ever
silently drops a trigger except Drop, which is explicit opt-in.
Variants§
Parallel
Admit up to max_concurrent concurrent runs; a trigger that cannot admit
now is DEFERRED (surfaced for backpressure/redelivery), never silently
dropped. Best fit for independent work like PR-request approvals.
Hold
Serialize: admit only when no run of this SOP is active or parked; other triggers are deferred. For pipelines whose pre-approval steps must not overlap.
Coalesce
Collapse concurrent triggers: when a run is already in flight for this SOP a new trigger is coalesced (dropped as redundant - the in-flight run already covers the latest state). For “only current state matters” SOPs.
Drop
Legacy fire-and-forget: a trigger that cannot admit now is dropped. Explicit opt-in only; never the default.
Trait Implementations§
Source§impl Clone for SopAdmissionPolicy
impl Clone for SopAdmissionPolicy
Source§fn clone(&self) -> SopAdmissionPolicy
fn clone(&self) -> SopAdmissionPolicy
1.0.0 (const: unstable) · §fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SopAdmissionPolicy
impl Debug for SopAdmissionPolicy
Source§impl Default for SopAdmissionPolicy
impl Default for SopAdmissionPolicy
Source§fn default() -> SopAdmissionPolicy
fn default() -> SopAdmissionPolicy
Source§impl<'de> Deserialize<'de> for SopAdmissionPolicy
impl<'de> Deserialize<'de> for SopAdmissionPolicy
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 Display for SopAdmissionPolicy
impl Display for SopAdmissionPolicy
Source§impl JsonSchema for SopAdmissionPolicy
impl JsonSchema for SopAdmissionPolicy
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for SopAdmissionPolicy
impl PartialEq for SopAdmissionPolicy
Source§fn eq(&self, other: &SopAdmissionPolicy) -> bool
fn eq(&self, other: &SopAdmissionPolicy) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SopAdmissionPolicy
impl Serialize for SopAdmissionPolicy
impl Copy for SopAdmissionPolicy
impl Eq for SopAdmissionPolicy
impl StructuralPartialEq for SopAdmissionPolicy
Auto Trait Implementations§
impl Freeze for SopAdmissionPolicy
impl RefUnwindSafe for SopAdmissionPolicy
impl Send for SopAdmissionPolicy
impl Sync for SopAdmissionPolicy
impl Unpin for SopAdmissionPolicy
impl UnsafeUnpin for SopAdmissionPolicy
impl UnwindSafe for SopAdmissionPolicy
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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,
§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
§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