pub struct QueryPipeline { /* private fields */ }Expand description
Transport-agnostic query pipeline.
Encapsulates the full query lifecycle: validate → intercept → compile → execute → intercept.
Use PipelineBuilder to construct an instance.
§Example
This example is ignored because it relies on application-defined executor and schema-source implementations.
use type_bridge_server::{PipelineBuilder, QueryInput};
let pipeline = PipelineBuilder::new(my_executor)
.with_schema_source(my_schema_source)
.with_default_database("my_db")
.build()?;
let output = pipeline.execute_query(QueryInput { ... }).await?;Implementations§
Source§impl QueryPipeline
impl QueryPipeline
Sourcepub fn validate_v2_coverage(&self) -> Result<(), PipelineError>
pub fn validate_v2_coverage(&self) -> Result<(), PipelineError>
Prove every configured policy explicitly covers typed V2 requests.
Server startup calls this before constructing the V2 router/listener;
request admission rechecks it defensively through
Self::v2_request_context.
Sourcepub fn v2_request_context(
&self,
metadata: HashMap<String, Value>,
) -> Result<RequestContext, PipelineError>
pub fn v2_request_context( &self, metadata: HashMap<String, Value>, ) -> Result<RequestContext, PipelineError>
Construct one V2 policy context after proving every configured interceptor explicitly supports typed plans.
Sourcepub async fn begin_v2_request(
&self,
context: &mut RequestContext,
) -> Result<(), PipelineError>
pub async fn begin_v2_request( &self, context: &mut RequestContext, ) -> Result<(), PipelineError>
Authenticate and rate-limit V2 transport metadata before envelope decoding or other attacker-controlled contract work.
Authorize one exact validated V2 plan before replay/provider admission.
Sourcepub async fn finish_v2_request(
&self,
outcome: &V2PolicyOutcome<'_>,
context: &RequestContext,
) -> Result<(), PipelineError>
pub async fn finish_v2_request( &self, outcome: &V2PolicyOutcome<'_>, context: &RequestContext, ) -> Result<(), PipelineError>
Run configured response and audit policies for every V2 outcome.
Sourcepub async fn execute_query(
&self,
input: QueryInput,
) -> Result<QueryOutput, PipelineError>
pub async fn execute_query( &self, input: QueryInput, ) -> Result<QueryOutput, PipelineError>
Execute a structured (AST-based) query through the full pipeline.
Sourcepub fn validate(
&self,
input: &ValidateInput,
) -> Result<ValidateOutput, PipelineError>
pub fn validate( &self, input: &ValidateInput, ) -> Result<ValidateOutput, PipelineError>
Validate clauses against the loaded schema without executing.
Sourcepub fn is_connected(&self) -> bool
pub fn is_connected(&self) -> bool
Check if the backend executor is connected.
Sourcepub fn default_database(&self) -> &str
pub fn default_database(&self) -> &str
Get the default database name.
Auto Trait Implementations§
impl !RefUnwindSafe for QueryPipeline
impl !UnwindSafe for QueryPipeline
impl Freeze for QueryPipeline
impl Send for QueryPipeline
impl Sync for QueryPipeline
impl Unpin for QueryPipeline
impl UnsafeUnpin for QueryPipeline
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> 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