Trait juniper::GraphQLValueAsync [−][src]
pub trait GraphQLValueAsync<S = DefaultScalarValue>: GraphQLValue<S> + Sync where
Self::TypeInfo: Sync,
Self::Context: Sync,
S: ScalarValue + Send + Sync, { fn resolve_field_async<'a>(
&'a self,
_info: &'a Self::TypeInfo,
_field_name: &'a str,
_arguments: &'a Arguments<'_, S>,
_executor: &'a Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'a, ExecutionResult<S>> { ... } fn resolve_into_type_async<'a>(
&'a self,
info: &'a Self::TypeInfo,
type_name: &str,
selection_set: Option<&'a [Selection<'a, S>]>,
executor: &'a Executor<'a, 'a, Self::Context, S>
) -> BoxFuture<'a, ExecutionResult<S>> { ... } fn resolve_async<'a>(
&'a self,
info: &'a Self::TypeInfo,
selection_set: Option<&'a [Selection<'_, S>]>,
executor: &'a Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'a, ExecutionResult<S>> { ... } }
Expand description
Extension of GraphQLValue
trait with asynchronous queries/mutations resolvers.
Convenience macros related to asynchronous queries/mutations expand into an implementation of
this trait and GraphQLValue
for the given type.
Provided methods
fn resolve_field_async<'a>(
&'a self,
_info: &'a Self::TypeInfo,
_field_name: &'a str,
_arguments: &'a Arguments<'_, S>,
_executor: &'a Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'a, ExecutionResult<S>>
[src]
&'a self,
_info: &'a Self::TypeInfo,
_field_name: &'a str,
_arguments: &'a Arguments<'_, S>,
_executor: &'a Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'a, ExecutionResult<S>>
Expand description
Resolves the value of a single field on this GraphQLValueAsync
.
The arguments
object contains all the specified arguments, with default values being
substituted for the ones not provided by the query.
The executor
can be used to drive selections into sub-objects.
Panics
The default implementation panics.
fn resolve_into_type_async<'a>(
&'a self,
info: &'a Self::TypeInfo,
type_name: &str,
selection_set: Option<&'a [Selection<'a, S>]>,
executor: &'a Executor<'a, 'a, Self::Context, S>
) -> BoxFuture<'a, ExecutionResult<S>>
[src]
&'a self,
info: &'a Self::TypeInfo,
type_name: &str,
selection_set: Option<&'a [Selection<'a, S>]>,
executor: &'a Executor<'a, 'a, Self::Context, S>
) -> BoxFuture<'a, ExecutionResult<S>>
Expand description
Resolves this GraphQLValueAsync
(being an interface or an union) into a
concrete downstream object type.
Tries to resolve this GraphQLValueAsync
into the provided type_name
. If the type
matches, then passes the instance along to Executor::resolve
.
Panics
The default implementation panics.
fn resolve_async<'a>(
&'a self,
info: &'a Self::TypeInfo,
selection_set: Option<&'a [Selection<'_, S>]>,
executor: &'a Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'a, ExecutionResult<S>>
[src]
&'a self,
info: &'a Self::TypeInfo,
selection_set: Option<&'a [Selection<'_, S>]>,
executor: &'a Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'a, ExecutionResult<S>>
Expand description
Resolves the provided selection_set
against this GraphQLValueAsync
.
For non-object types, the selection_set
will be None
and the value should simply
be returned.
For objects, all fields in the selection_set
should be resolved. The default
implementation uses GraphQLValueAsync::resolve_field_async
to resolve all fields,
including those through a fragment expansion.
Since the GraphQL spec specifies that errors during field processing should result in
a null-value, this might return Ok(Null)
in case of a failure. Errors are recorded
internally.
Panics
The default implementation panics, if selection_set
is None
.
Implementations on Foreign Types
impl<S, T> GraphQLValueAsync<S> for Option<T> where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]
impl<S, T> GraphQLValueAsync<S> for Option<T> where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]impl<S, T> GraphQLValueAsync<S> for Vec<T> where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]
impl<S, T> GraphQLValueAsync<S> for Vec<T> where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]impl<S, T> GraphQLValueAsync<S> for [T] where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]
impl<S, T> GraphQLValueAsync<S> for [T] where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]impl<S, T: ?Sized> GraphQLValueAsync<S> for Box<T> where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]
impl<S, T: ?Sized> GraphQLValueAsync<S> for Box<T> where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]impl<'e, S, T: ?Sized> GraphQLValueAsync<S> for &'e T where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]
impl<'e, S, T: ?Sized> GraphQLValueAsync<S> for &'e T where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]fn resolve_field_async<'b>(
&'b self,
info: &'b Self::TypeInfo,
field_name: &'b str,
arguments: &'b Arguments<'_, S>,
executor: &'b Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'b, ExecutionResult<S>>
[src]
&'b self,
info: &'b Self::TypeInfo,
field_name: &'b str,
arguments: &'b Arguments<'_, S>,
executor: &'b Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'b, ExecutionResult<S>>
fn resolve_async<'a>(
&'a self,
info: &'a Self::TypeInfo,
selection_set: Option<&'a [Selection<'_, S>]>,
executor: &'a Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'a, ExecutionResult<S>>
[src]
&'a self,
info: &'a Self::TypeInfo,
selection_set: Option<&'a [Selection<'_, S>]>,
executor: &'a Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'a, ExecutionResult<S>>
impl<'e, S, T: ?Sized> GraphQLValueAsync<S> for Arc<T> where
T: GraphQLValueAsync<S> + Send,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]
impl<'e, S, T: ?Sized> GraphQLValueAsync<S> for Arc<T> where
T: GraphQLValueAsync<S> + Send,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for String where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for String where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]impl<S> GraphQLValueAsync<S> for str where
S: ScalarValue + Send + Sync,
[src]
impl<S> GraphQLValueAsync<S> for str where
S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for bool where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for bool where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for i32 where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for i32 where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for f64 where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for f64 where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for DateTime<FixedOffset> where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for DateTime<FixedOffset> where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for DateTime<Utc> where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for DateTime<Utc> where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for NaiveDate where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for NaiveDate where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for NaiveDateTime where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for NaiveDateTime where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for Url where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for Url where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for Uuid where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for Uuid where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for ObjectId where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for ObjectId where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]impl<__S> GraphQLValueAsync<__S> for UtcDateTime where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for UtcDateTime where
Self: Sync,
Self::TypeInfo: Sync,
Self::Context: Sync,
__S: ScalarValue + Send + Sync,
[src]Implementors
impl<'a, S> GraphQLValueAsync<S> for Argument<'a, S> where
S: ScalarValue + 'a,
S: Send + Sync,
Self: Sync,
[src]
impl<'a, S> GraphQLValueAsync<S> for Argument<'a, S> where
S: ScalarValue + 'a,
S: Send + Sync,
Self: Sync,
[src]impl<'a, S> GraphQLValueAsync<S> for EnumValue where
S: ScalarValue + 'a,
S: Send + Sync,
Self: Sync,
[src]
impl<'a, S> GraphQLValueAsync<S> for EnumValue where
S: ScalarValue + 'a,
S: Send + Sync,
Self: Sync,
[src]impl<'a, S> GraphQLValueAsync<S> for Field<'a, S> where
S: ScalarValue + 'a,
S: Send + Sync,
Self: Sync,
[src]
impl<'a, S> GraphQLValueAsync<S> for Field<'a, S> where
S: ScalarValue + 'a,
S: Send + Sync,
Self: Sync,
[src]impl<'a, S> GraphQLValueAsync<S> for SchemaType<'a, S> where
S: ScalarValue + 'a,
S: Send + Sync,
Self: Sync,
[src]
impl<'a, S> GraphQLValueAsync<S> for SchemaType<'a, S> where
S: ScalarValue + 'a,
S: Send + Sync,
Self: Sync,
[src]impl<'a, S, QueryT, MutationT, SubscriptionT> GraphQLValueAsync<S> for RootNode<'a, QueryT, MutationT, SubscriptionT, S> where
QueryT: GraphQLTypeAsync<S>,
QueryT::TypeInfo: Sync,
QueryT::Context: Sync + 'a,
MutationT: GraphQLTypeAsync<S, Context = QueryT::Context>,
MutationT::TypeInfo: Sync,
SubscriptionT: GraphQLType<S, Context = QueryT::Context> + Sync,
SubscriptionT::TypeInfo: Sync,
S: ScalarValue + Send + Sync,
[src]
impl<'a, S, QueryT, MutationT, SubscriptionT> GraphQLValueAsync<S> for RootNode<'a, QueryT, MutationT, SubscriptionT, S> where
QueryT: GraphQLTypeAsync<S>,
QueryT::TypeInfo: Sync,
QueryT::Context: Sync + 'a,
MutationT: GraphQLTypeAsync<S, Context = QueryT::Context>,
MutationT::TypeInfo: Sync,
SubscriptionT: GraphQLType<S, Context = QueryT::Context> + Sync,
SubscriptionT::TypeInfo: Sync,
S: ScalarValue + Send + Sync,
[src]fn resolve_field_async<'b>(
&'b self,
info: &'b Self::TypeInfo,
field_name: &'b str,
arguments: &'b Arguments<'_, S>,
executor: &'b Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'b, ExecutionResult<S>>
[src]
&'b self,
info: &'b Self::TypeInfo,
field_name: &'b str,
arguments: &'b Arguments<'_, S>,
executor: &'b Executor<'_, '_, Self::Context, S>
) -> BoxFuture<'b, ExecutionResult<S>>
impl<S, T> GraphQLValueAsync<S> for Nullable<T> where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]
impl<S, T> GraphQLValueAsync<S> for Nullable<T> where
T: GraphQLValueAsync<S>,
T::TypeInfo: Sync,
T::Context: Sync,
S: ScalarValue + Send + Sync,
[src]impl<S, T> GraphQLValueAsync<S> for EmptyMutation<T> where
Self::TypeInfo: Sync,
Self::Context: Sync,
S: ScalarValue + Send + Sync,
[src]
Self::TypeInfo: Sync,
Self::Context: Sync,
S: ScalarValue + Send + Sync,
impl<__S> GraphQLValueAsync<__S> for TypeKind where
__S: ScalarValue,
__S: Send + Sync,
Self: Sync,
[src]
impl<__S> GraphQLValueAsync<__S> for TypeKind where
__S: ScalarValue,
__S: Send + Sync,
Self: Sync,
[src]