pub enum JoinPolicy {
AllPredecessors,
ActiveBranches {
allow_empty: bool,
},
}Expand description
How a merge point treats incoming constraints whose predecessor is not selected.
The default keeps ordinary dependency semantics: a constraint from work that a choice excluded never releases, so unrelated downstream work is not released by a skipped predecessor. Only an explicit branch join treats a skipped predecessor as an absent branch.
Variants§
AllPredecessors
Every unwaived incoming constraint must be released.
ActiveBranches
Constraints from not-selected predecessors are absent branches; every other constraint must
be released, and at least one must remain unless allow_empty is set.
Implementations§
Source§impl JoinPolicy
impl JoinPolicy
Sourcepub fn is_default(&self) -> bool
pub fn is_default(&self) -> bool
Whether this is the default policy, which serialization omits.
Sourcepub fn skips_unselected(self) -> bool
pub fn skips_unselected(self) -> bool
Whether constraints from not-selected predecessors are skipped branches.
Trait Implementations§
Source§impl Clone for JoinPolicy
impl Clone for JoinPolicy
impl Copy for JoinPolicy
Source§impl Debug for JoinPolicy
impl Debug for JoinPolicy
Source§impl Default for JoinPolicy
impl Default for JoinPolicy
Source§impl<'de> Deserialize<'de> for JoinPolicy
impl<'de> Deserialize<'de> for JoinPolicy
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>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for JoinPolicy
Source§impl PartialEq for JoinPolicy
impl PartialEq for JoinPolicy
Source§impl Serialize for JoinPolicy
impl Serialize for JoinPolicy
impl StructuralPartialEq for JoinPolicy
Auto Trait Implementations§
impl Freeze for JoinPolicy
impl RefUnwindSafe for JoinPolicy
impl Send for JoinPolicy
impl Sync for JoinPolicy
impl Unpin for JoinPolicy
impl UnsafeUnpin for JoinPolicy
impl UnwindSafe for JoinPolicy
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