GraphQlClient

Trait GraphQlClient 

Source
pub trait GraphQlClient: Sync + Send {
    type Error: Error + Send + 'static;

    // Required method
    fn run_graphql<Query, Vars>(
        &self,
        operation: Operation<Query, Vars>,
    ) -> impl Future<Output = Result<GraphQlResponse<Query>, Self::Error>> + Send
       where Vars: Serialize + Send,
             Query: DeserializeOwned + 'static;

    // Provided methods
    fn query_paged<Init>(
        &self,
        vars: Init::Input,
    ) -> impl Future<Output = Result<PagedResponse<Init>, Self::Error>> + Send
       where Init: Paged + Send + 'static,
             Init::SchemaType: QueryRoot,
             Init::Input: Clone,
             Init::NextPage: Paged<Input = Init::NextInput, NextInput = Init::NextInput, NextPage = Init::NextPage>,
             <Init::NextPage as QueryFragment>::SchemaType: QueryRoot,
             <Init::NextPage as Paged>::Input: Clone { ... }
    fn query<Query, Variables>(
        &self,
        vars: Variables,
    ) -> impl Future<Output = Result<GraphQlResponse<Query>, Self::Error>> + Send
       where Variables: QueryVariables + Send + Serialize,
             Query: DeserializeOwned + QueryFragment<VariablesFields = Variables::Fields> + 'static,
             Query::SchemaType: QueryRoot { ... }
    fn mutation<Mutation, Vars>(
        &self,
        vars: Vars,
    ) -> impl Future<Output = Result<GraphQlResponse<Mutation>, Self::Error>> + Send
       where Vars: QueryVariables + Send + Serialize,
             Mutation: DeserializeOwned + QueryFragment<VariablesFields = Vars::Fields> + 'static,
             Mutation::SchemaType: MutationRoot { ... }
}
Expand description

A generic GraphQL client. Agnostic to the backend used.

Required Associated Types§

Source

type Error: Error + Send + 'static

Required Methods§

Source

fn run_graphql<Query, Vars>( &self, operation: Operation<Query, Vars>, ) -> impl Future<Output = Result<GraphQlResponse<Query>, Self::Error>> + Send
where Vars: Serialize + Send, Query: DeserializeOwned + 'static,

Provided Methods§

Source

fn query_paged<Init>( &self, vars: Init::Input, ) -> impl Future<Output = Result<PagedResponse<Init>, Self::Error>> + Send
where Init: Paged + Send + 'static, Init::SchemaType: QueryRoot, Init::Input: Clone, Init::NextPage: Paged<Input = Init::NextInput, NextInput = Init::NextInput, NextPage = Init::NextPage>, <Init::NextPage as QueryFragment>::SchemaType: QueryRoot, <Init::NextPage as Paged>::Input: Clone,

Source

fn query<Query, Variables>( &self, vars: Variables, ) -> impl Future<Output = Result<GraphQlResponse<Query>, Self::Error>> + Send
where Variables: QueryVariables + Send + Serialize, Query: DeserializeOwned + QueryFragment<VariablesFields = Variables::Fields> + 'static, Query::SchemaType: QueryRoot,

Source

fn mutation<Mutation, Vars>( &self, vars: Vars, ) -> impl Future<Output = Result<GraphQlResponse<Mutation>, Self::Error>> + Send
where Vars: QueryVariables + Send + Serialize, Mutation: DeserializeOwned + QueryFragment<VariablesFields = Vars::Fields> + 'static, Mutation::SchemaType: MutationRoot,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T> GraphQlClient for T
where T: RawClient + Sync, T::Error: Error + Send + 'static,

Available on crate feature raw only.