Remove useless `ParseQueryFut` type
This commit is contained in:
parent
22d61df4d7
commit
2f0bcaa8ee
|
@ -111,6 +111,6 @@ pub async fn receive_batch_cbor(body: impl AsyncRead) -> Result<BatchRequest, Pa
|
|||
body.read_to_end(&mut data)
|
||||
.await
|
||||
.map_err(ParseRequestError::Io)?;
|
||||
Ok(serde_cbor::from_slice::<BatchRequest>(&data)
|
||||
.map_err(|e| ParseRequestError::InvalidRequest(Box::new(e)))?)
|
||||
serde_cbor::from_slice::<BatchRequest>(&data)
|
||||
.map_err(|e| ParseRequestError::InvalidRequest(Box::new(e)))
|
||||
}
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
use core::future::Future;
|
||||
use core::pin::Pin;
|
||||
use core::task;
|
||||
use std::any::Any;
|
||||
use std::collections::HashMap;
|
||||
use std::ops::Deref;
|
||||
|
@ -13,9 +10,7 @@ use crate::context::{Data, QueryEnvInner};
|
|||
use crate::custom_directive::CustomDirectiveFactory;
|
||||
use crate::extensions::{ExtensionFactory, Extensions};
|
||||
use crate::model::__DirectiveLocation;
|
||||
use crate::parser::types::{
|
||||
Directive, DocumentOperations, ExecutableDocument, OperationType, Selection, SelectionSet,
|
||||
};
|
||||
use crate::parser::types::{Directive, DocumentOperations, OperationType, Selection, SelectionSet};
|
||||
use crate::parser::{parse_query, Positioned};
|
||||
use crate::registry::{MetaDirective, MetaInputValue, Registry};
|
||||
use crate::resolver_utils::{resolve_container, resolve_container_serial};
|
||||
|
@ -27,26 +22,6 @@ use crate::{
|
|||
QueryEnv, Request, Response, ServerError, SubscriptionType, Variables, ID,
|
||||
};
|
||||
|
||||
pub struct ParseQueryFut<'a> {
|
||||
query: &'a str,
|
||||
parsed: Option<ExecutableDocument>,
|
||||
}
|
||||
|
||||
impl<'a> Future for ParseQueryFut<'a> {
|
||||
type Output = Result<ExecutableDocument, ServerError>;
|
||||
|
||||
#[inline(always)]
|
||||
fn poll(self: Pin<&mut Self>, _: &mut task::Context<'_>) -> task::Poll<Self::Output> {
|
||||
let this = Pin::into_inner(self);
|
||||
let result = match this.parsed.take() {
|
||||
Some(document) => Ok(document),
|
||||
None => parse_query(this.query).map_err(Into::into),
|
||||
};
|
||||
|
||||
task::Poll::Ready(result)
|
||||
}
|
||||
}
|
||||
|
||||
/// Schema builder
|
||||
pub struct SchemaBuilder<Query, Mutation, Subscription> {
|
||||
validation_mode: ValidationMode,
|
||||
|
@ -455,13 +430,16 @@ where
|
|||
let mut request = extensions.prepare_request(request).await?;
|
||||
let mut document = {
|
||||
let query = &request.query;
|
||||
let fut_parse = ParseQueryFut {
|
||||
query,
|
||||
parsed: request.parsed_query.take(),
|
||||
let parsed_doc = request.parsed_query.take();
|
||||
let fut_parse = async move {
|
||||
match parsed_doc {
|
||||
Some(parsed_doc) => Ok(parsed_doc),
|
||||
None => parse_query(query).map_err(Into::into),
|
||||
}
|
||||
};
|
||||
futures_util::pin_mut!(fut_parse);
|
||||
extensions
|
||||
.parse_query(&query, &request.variables, &mut fut_parse)
|
||||
.parse_query(query, &request.variables, &mut fut_parse)
|
||||
.await?
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue