pub enum DraftDecision {
Approve {
then_enqueue: bool,
next_state: TicketState,
},
NeedsContext {
questions: Vec<String>,
},
WrongPlan {
reason: String,
},
}Expand description
What a draft turn resolved to, given the PlanRequest and whether
--yes (auto-approve+enqueue) was passed. Separating the decision from the
I/O keeps the state-machine unit-testable without a backend.
Variants§
Approve
Plan ready: approve_plan (commits plan.md) then set this state.
Queued when --yes also enqueues; otherwise Review (parked).
NeedsContext
Orchestrator wants answers first: append its questions to the ticket
and set NeedsContext. Short-circuits before any approval.
WrongPlan
Planner-initiated escalation: it CAN plan but believes the plan is
likely wrong. Append the reason to the ticket and set WrongPlan.
Short-circuits before any approval; --yes never overrides it.
Trait Implementations§
Source§impl Clone for DraftDecision
impl Clone for DraftDecision
Source§fn clone(&self) -> DraftDecision
fn clone(&self) -> DraftDecision
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 DraftDecision
impl Debug for DraftDecision
impl Eq for DraftDecision
Source§impl PartialEq for DraftDecision
impl PartialEq for DraftDecision
impl StructuralPartialEq for DraftDecision
Auto Trait Implementations§
impl Freeze for DraftDecision
impl RefUnwindSafe for DraftDecision
impl Send for DraftDecision
impl Sync for DraftDecision
impl Unpin for DraftDecision
impl UnsafeUnpin for DraftDecision
impl UnwindSafe for DraftDecision
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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§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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> ⓘ
Converts
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> ⓘ
Converts
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