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§
Required Methods§
fn run_graphql<Query, Vars>( &self, operation: Operation<Query, Vars>, ) -> impl Future<Output = Result<GraphQlResponse<Query>, Self::Error>> + Send
Provided Methods§
fn query_paged<Init>( &self, vars: Init::Input, ) -> impl Future<Output = Result<PagedResponse<Init>, Self::Error>> + Send
fn query<Query, Variables>(
&self,
vars: Variables,
) -> impl Future<Output = Result<GraphQlResponse<Query>, Self::Error>> + Sendwhere
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>> + Sendwhere
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.