Trait async_graphql::resolver_utils::ContainerType[][src]

pub trait ContainerType: OutputType {
    #[must_use]
    fn resolve_field<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context<'life2>
    ) -> Pin<Box<dyn Future<Output = ServerResult<Option<Value>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn collect_all_fields<'a>(
        &'a self,
        ctx: &ContextSelectionSet<'a>,
        fields: &mut Fields<'a>
    ) -> ServerResult<()>
    where
        Self: Send + Sync
, { ... }
#[must_use] fn find_entity<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        __arg1: &'life1 Context<'life2>,
        _params: &'life3 Value
    ) -> Pin<Box<dyn Future<Output = ServerResult<Option<Value>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: Sync + 'async_trait
, { ... } }
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

#[must_use]
fn resolve_field<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    ctx: &'life1 Context<'life2>
) -> Pin<Box<dyn Future<Output = ServerResult<Option<Value>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

Resolves a field value and outputs it as a json value async_graphql::Value.

If the field was not found returns None.

Provided methods

fn collect_all_fields<'a>(
    &'a self,
    ctx: &ContextSelectionSet<'a>,
    fields: &mut Fields<'a>
) -> ServerResult<()> where
    Self: Send + Sync
[src]

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.

#[must_use]
fn find_entity<'life0, 'life1, 'life2, 'life3, 'async_trait>(
    &'life0 self,
    __arg1: &'life1 Context<'life2>,
    _params: &'life3 Value
) -> Pin<Box<dyn Future<Output = ServerResult<Option<Value>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    'life3: 'async_trait,
    Self: Sync + 'async_trait, 
[src]

Find the GraphQL entity with the given name from the parameter.

Objects should override this in case they are the query root.

Implementations on Foreign Types

impl<'impl0, T: ContainerType> ContainerType for &'impl0 T[src]

fn resolve_field<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    ctx: &'life1 Context<'life2>
) -> Pin<Box<dyn Future<Output = ServerResult<Option<Value>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

fn find_entity<'life0, 'life1, 'life2, 'life3, 'async_trait>(
    &'life0 self,
    ctx: &'life1 Context<'life2>,
    params: &'life3 Value
) -> Pin<Box<dyn Future<Output = ServerResult<Option<Value>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    'life3: 'async_trait,
    Self: 'async_trait, 
[src]

Implementors

impl ContainerType for EmptyFields[src]

fn resolve_field<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    ctx: &'life1 Context<'life2>
) -> Pin<Box<dyn Future<Output = ServerResult<Option<Value>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

impl ContainerType for PageInfo[src]

fn resolve_field<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    ctx: &'life1 Context<'life2>
) -> Pin<Box<dyn Future<Output = ServerResult<Option<Value>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

impl ContainerType for EmptyMutation[src]

fn is_empty() -> bool[src]

fn resolve_field<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    _ctx: &'life1 Context<'life2>
) -> Pin<Box<dyn Future<Output = ServerResult<Option<Value>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

impl<C, T, E> ContainerType for Edge<C, T, E> where
    C: CursorType + Send + Sync,
    T: OutputType,
    E: ObjectType
[src]

fn resolve_field<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    ctx: &'life1 Context<'life2>
) -> Pin<Box<dyn Future<Output = ServerResult<Option<Value>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]

impl<C, T, EC, EE> ContainerType for Connection<C, T, EC, EE> where
    C: CursorType + Send + Sync,
    T: OutputType,
    EC: ObjectType,
    EE: ObjectType
[src]

fn resolve_field<'life0, 'life1, 'life2, 'async_trait>(
    &'life0 self,
    ctx: &'life1 Context<'life2>
) -> Pin<Box<dyn Future<Output = ServerResult<Option<Value>>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 
[src]