pub enum TypeKind {
Scalar,
Object,
Interface,
Union,
Enum,
InputObject,
List,
NonNull,
}
Expand description
GraphQL type kind
The GraphQL specification defines a number of type kinds - the meta type
of a type.
Variants§
Scalar
Scalar types
Scalar types appear as the leaf nodes of GraphQL queries. Strings,
numbers, and booleans are the built in types, and while it’s possible
to define your own, it’s relatively uncommon.
Object
Object types
The most common type to be implemented by users. Objects have fields
and can implement interfaces.
Interface
Interface types
Interface types are used to represent overlapping fields between
multiple types, and can be queried for their concrete type.
Union
Union types
Unions are similar to interfaces but can not contain any fields on
their own.
Enum
Enum types
Like scalars, enum types appear as the leaf nodes of GraphQL queries.
InputObject
Input objects
Represents complex values provided in queries into the system.
List
List types
Represent lists of other types. This library provides implementations
for vectors and slices, but other Rust types can be extended to serve
as GraphQL lists.
NonNull
Non-null types
In GraphQL, nullable types are the default. By putting a !
after a
type, it becomes non-nullable.
Trait Implementations§
source§impl<__S> FromInputValue<__S> for TypeKindwhere
__S: ScalarValue,
impl<__S> FromInputValue<__S> for TypeKindwhere
__S: ScalarValue,
source§fn from_input_value(v: &InputValue<__S>) -> Option<TypeKind>
fn from_input_value(v: &InputValue<__S>) -> Option<TypeKind>
source§fn from_implicit_null() -> Self
fn from_implicit_null() -> Self
from_input_value
as if an explicit
null were provided. This conversion must not fail.source§impl<__S> GraphQLType<__S> for TypeKindwhere
__S: ScalarValue,
impl<__S> GraphQLType<__S> for TypeKindwhere
__S: ScalarValue,
source§impl<__S> GraphQLValue<__S> for TypeKindwhere
__S: ScalarValue,
impl<__S> GraphQLValue<__S> for TypeKindwhere
__S: ScalarValue,
§type Context = ()
type Context = ()
GraphQLValue
. Read more§type TypeInfo = ()
type TypeInfo = ()
GraphQLValue
. Read moresource§fn resolve(
&self,
_: &(),
_: Option<&[Selection<'_, __S>]>,
_: &Executor<'_, '_, Self::Context, __S>
) -> ExecutionResult<__S>
fn resolve(
&self,
_: &(),
_: Option<&[Selection<'_, __S>]>,
_: &Executor<'_, '_, Self::Context, __S>
) -> ExecutionResult<__S>
source§fn resolve_field(
&self,
_info: &Self::TypeInfo,
_field_name: &str,
_arguments: &Arguments<'_, S>,
_executor: &Executor<'_, '_, Self::Context, S>
) -> ExecutionResult<S>
fn resolve_field(
&self,
_info: &Self::TypeInfo,
_field_name: &str,
_arguments: &Arguments<'_, S>,
_executor: &Executor<'_, '_, Self::Context, S>
) -> ExecutionResult<S>
GraphQLValue
. Read moresource§fn resolve_into_type(
&self,
info: &Self::TypeInfo,
type_name: &str,
selection_set: Option<&[Selection<'_, S>]>,
executor: &Executor<'_, '_, Self::Context, S>
) -> ExecutionResult<S>
fn resolve_into_type(
&self,
info: &Self::TypeInfo,
type_name: &str,
selection_set: Option<&[Selection<'_, S>]>,
executor: &Executor<'_, '_, Self::Context, S>
) -> ExecutionResult<S>
GraphQLValue
(being an interface or an union) into a concrete
downstream object type. Read moresource§fn concrete_type_name(
&self,
context: &Self::Context,
info: &Self::TypeInfo
) -> String
fn concrete_type_name(
&self,
context: &Self::Context,
info: &Self::TypeInfo
) -> String
GraphQLType
name for this GraphQLValue
being an interface,
an union or an object. Read moresource§impl<__S> GraphQLValueAsync<__S> for TypeKindwhere
__S: ScalarValue + Send + Sync,
Self: Sync,
impl<__S> GraphQLValueAsync<__S> for TypeKindwhere
__S: ScalarValue + Send + Sync,
Self: Sync,
source§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>>
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>>
source§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_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>>
GraphQLValueAsync
. Read moresource§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_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>>
GraphQLValueAsync
(being an interface or an union) into a
concrete downstream object type. Read moresource§impl<__S> IsInputType<__S> for TypeKindwhere
__S: ScalarValue,
impl<__S> IsInputType<__S> for TypeKindwhere
__S: ScalarValue,
source§impl<__S> IsOutputType<__S> for TypeKindwhere
__S: ScalarValue,
impl<__S> IsOutputType<__S> for TypeKindwhere
__S: ScalarValue,
source§impl PartialEq<TypeKind> for TypeKind
impl PartialEq<TypeKind> for TypeKind
source§impl<__S> ToInputValue<__S> for TypeKindwhere
__S: ScalarValue,
impl<__S> ToInputValue<__S> for TypeKindwhere
__S: ScalarValue,
source§fn to_input_value(&self) -> InputValue<__S>
fn to_input_value(&self) -> InputValue<__S>
impl Eq for TypeKind
impl StructuralEq for TypeKind
impl StructuralPartialEq for TypeKind
Auto Trait Implementations§
impl RefUnwindSafe for TypeKind
impl Send for TypeKind
impl Sync for TypeKind
impl Unpin for TypeKind
impl UnwindSafe for TypeKind
Blanket Implementations§
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.