pub enum PlanRouting {
Execute {
candidate: ValidatedCandidate,
},
RefuseMutating {
statement_type: &'static str,
rql: String,
},
Suggest {
answer: String,
suggestion: Vec<SuggestedStatement>,
},
Unsupported {
intent: AskIntent,
},
}Expand description
How the planner routed a plan after candidate validation.
Variants§
Execute
Factual intent with a validated read-only candidate ready to auto-execute under the caller’s EffectiveScope.
Fields
candidate: ValidatedCandidateRefuseMutating
Factual intent whose candidate is mutating — a structured refusal. Mutating candidates are never executed under any flag; the suggestion envelope arrives in a later slice.
Suggest
How-to intent: an advisory suggestion envelope. answer explains the
approach in natural language; suggestion carries the parser-validated
statements, each flagged mutating, plus their rationale. Suggested
statements — including mutating/DDL ones — are NEVER executed; a future
apply-command consumes this envelope.
Unsupported
A remaining non-factual intent (synthesis). The orchestrator decides the fallback (retrieval-RAG cited answer).
Trait Implementations§
Source§impl Clone for PlanRouting
impl Clone for PlanRouting
Source§fn clone(&self) -> PlanRouting
fn clone(&self) -> PlanRouting
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PlanRouting
impl Debug for PlanRouting
impl Eq for PlanRouting
Source§impl PartialEq for PlanRouting
impl PartialEq for PlanRouting
Source§fn eq(&self, other: &PlanRouting) -> bool
fn eq(&self, other: &PlanRouting) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for PlanRouting
Auto Trait Implementations§
impl Freeze for PlanRouting
impl RefUnwindSafe for PlanRouting
impl Send for PlanRouting
impl Sync for PlanRouting
impl Unpin for PlanRouting
impl UnsafeUnpin for PlanRouting
impl UnwindSafe for PlanRouting
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<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
key and return true if they are equal.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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request