#[non_exhaustive]pub enum EdgeDependencyPolicy {
AllOf,
AnyOf {
on_satisfied: OnSatisfied,
},
Quorum {
k: u32,
on_satisfied: OnSatisfied,
},
}Expand description
Policy controlling how an inbound edge group’s satisfaction is decided.
Stage A honours only EdgeDependencyPolicy::AllOf — the two
quorum variants exist so the wire/snapshot surface is stable for
Stage B/C/D’s resolver extensions, but
crate::engine_backend::EngineBackend::set_edge_group_policy
rejects them with crate::engine_error::EngineError::Validation
until Stage B lands.
#[non_exhaustive] — future stages may add variants (e.g.
Threshold — see RFC-016 §10.3) without a semver break. Construct
via the EdgeDependencyPolicy::all_of, EdgeDependencyPolicy::any_of,
and EdgeDependencyPolicy::quorum helpers.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
AllOf
Today’s behavior: every edge in the inbound group must be
satisfied (RFC-007 all_required + success_only).
AnyOf
k-of-n where k==1 — satisfied on the first upstream success.
Stage A: rejected on
crate::engine_backend::EngineBackend::set_edge_group_policy;
resolver emits nothing for this variant yet.
Fields
on_satisfied: OnSatisfiedQuorum
k-of-n quorum. Stage A: rejected on
crate::engine_backend::EngineBackend::set_edge_group_policy.
Implementations§
Source§impl EdgeDependencyPolicy
impl EdgeDependencyPolicy
Sourcepub fn any_of(on_satisfied: OnSatisfied) -> Self
pub fn any_of(on_satisfied: OnSatisfied) -> Self
Construct an any-of policy — reserved for Stage B.
Sourcepub fn quorum(k: u32, on_satisfied: OnSatisfied) -> Self
pub fn quorum(k: u32, on_satisfied: OnSatisfied) -> Self
Construct a quorum policy — reserved for Stage B.
Sourcepub fn variant_str(&self) -> &'static str
pub fn variant_str(&self) -> &'static str
Stable string label used for wire format + metric labels.
all_of | any_of | quorum.
Trait Implementations§
Source§impl Clone for EdgeDependencyPolicy
impl Clone for EdgeDependencyPolicy
Source§fn clone(&self) -> EdgeDependencyPolicy
fn clone(&self) -> EdgeDependencyPolicy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more