pub trait ContainerType: OutputType {
// Required method
fn resolve_field(
&self,
ctx: &Context<'_>,
) -> impl Future<Output = ServerResult<Option<Value>>> + Send;
// Provided methods
fn collect_all_fields<'a>(
&'a self,
ctx: &ContextSelectionSet<'a>,
fields: &mut Fields<'a>,
) -> ServerResult<()>
where Self: Send + Sync { ... }
fn find_entity(
&self,
_: &Context<'_>,
_params: &Value,
) -> impl Future<Output = ServerResult<Option<Value>>> + Send { ... }
}
Expand description
Represents a GraphQL container object.
This helper trait allows the type to call resolve_container
on itself in
its OutputType::resolve
implementation.
Required Methods§
sourcefn resolve_field(
&self,
ctx: &Context<'_>,
) -> impl Future<Output = ServerResult<Option<Value>>> + Send
fn resolve_field( &self, ctx: &Context<'_>, ) -> impl Future<Output = ServerResult<Option<Value>>> + Send
Resolves a field value and outputs it as a json value
async_graphql::Value
.
If the field was not found returns None.
Provided Methods§
sourcefn collect_all_fields<'a>(
&'a self,
ctx: &ContextSelectionSet<'a>,
fields: &mut Fields<'a>,
) -> ServerResult<()>
fn collect_all_fields<'a>( &'a self, ctx: &ContextSelectionSet<'a>, fields: &mut Fields<'a>, ) -> ServerResult<()>
Collect all the fields of the container that are queried in the selection set.
Objects do not have to override this, but interfaces and unions must call it on their internal type.
sourcefn find_entity(
&self,
_: &Context<'_>,
_params: &Value,
) -> impl Future<Output = ServerResult<Option<Value>>> + Send
fn find_entity( &self, _: &Context<'_>, _params: &Value, ) -> impl Future<Output = ServerResult<Option<Value>>> + Send
Find the GraphQL entity with the given name from the parameter.
Objects should override this in case they are the query root.
Object Safety§
This trait is not object safe.