pub enum ExecutionConstraint {
PushOrder {
parent: PushRef,
child: PushRef,
},
PushBeforeRetarget {
base: PushRef,
pr: UpdateRef,
},
RetargetBeforePush {
pr: UpdateRef,
old_base: PushRef,
},
PushBeforeCreate {
push: PushRef,
create: CreateRef,
},
CreateOrder {
parent: CreateRef,
child: CreateRef,
},
}Expand description
Dependency constraint between execution operations.
Each variant encodes a semantic relationship between operations.
Invalid pairings (e.g., CreatePr → Push) are unrepresentable at the type level.
Constraints may reference operations that don’t exist in the current plan
(e.g., a bookmark that’s already synced has no Push node). Resolution
returns None for such constraints, which is expected behavior.
Variants§
PushOrder
Push parent branch before child branch. Ensures commits are pushed in stack order (ancestors before descendants).
PushBeforeRetarget
Push new base branch before retargeting PR to it. Can’t retarget a PR to a branch that doesn’t exist on remote yet.
RetargetBeforePush
Retarget PR before pushing its old base (swap scenario). When stack order changes and a PR’s current base moves “below” it, must retarget first to avoid platform rejection.
PushBeforeCreate
Push branch before creating PR for it. Branch must exist on remote before PR creation.
CreateOrder
Create parent PR before child PR. Parent PR must exist so stack comments can reference its number/URL.
Trait Implementations§
Source§impl Clone for ExecutionConstraint
impl Clone for ExecutionConstraint
Source§fn clone(&self) -> ExecutionConstraint
fn clone(&self) -> ExecutionConstraint
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExecutionConstraint
impl Debug for ExecutionConstraint
Auto Trait Implementations§
impl Freeze for ExecutionConstraint
impl RefUnwindSafe for ExecutionConstraint
impl Send for ExecutionConstraint
impl Sync for ExecutionConstraint
impl Unpin for ExecutionConstraint
impl UnwindSafe for ExecutionConstraint
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<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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
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.