[−][src]Struct async_graphql::Schema
GraphQL schema
Implementations
impl<Query, Mutation, Subscription> Schema<Query, Mutation, Subscription> where
Query: ObjectType + Send + Sync + 'static,
Mutation: ObjectType + Send + Sync + 'static,
Subscription: SubscriptionType + Send + Sync + 'static,
[src][−]
Query: ObjectType + Send + Sync + 'static,
Mutation: ObjectType + Send + Sync + 'static,
Subscription: SubscriptionType + Send + Sync + 'static,
pub fn build(
query: Query,
mutation: Mutation,
subscription: Subscription
) -> SchemaBuilder<Query, Mutation, Subscription>
[src][−]
query: Query,
mutation: Mutation,
subscription: Subscription
) -> SchemaBuilder<Query, Mutation, Subscription>
Create a schema builder
The root object for the query and Mutation needs to be specified.
If there is no mutation, you can use EmptyMutation
.
If there is no subscription, you can use EmptySubscription
.
pub fn new(
query: Query,
mutation: Mutation,
subscription: Subscription
) -> Schema<Query, Mutation, Subscription>
[src][−]
query: Query,
mutation: Mutation,
subscription: Subscription
) -> Schema<Query, Mutation, Subscription>
Create a schema
pub async fn execute<'_, '_>(
&'_ self,
query_source: &'_ str
) -> Result<QueryResponse>
[src][−]
&'_ self,
query_source: &'_ str
) -> Result<QueryResponse>
Execute query without create the QueryBuilder
.
pub async fn execute_stream<'_, '_>(
&'_ self,
query_source: &'_ str
) -> StreamResponse
[src][−]
&'_ self,
query_source: &'_ str
) -> StreamResponse
Execute the query without create the QueryBuilder
, returns a stream, the first result being the query result,
followed by the incremental result. Only when there are @defer
and @stream
directives
in the query will there be subsequent incremental results.
pub async fn create_subscription_stream<'_, '_, '_>(
&'_ self,
source: &'_ str,
operation_name: Option<&'_ str>,
variables: Variables,
ctx_data: Option<Arc<Data>>
) -> Result<impl Stream<Item = Result<Value>> + Send>
[src][−]
&'_ self,
source: &'_ str,
operation_name: Option<&'_ str>,
variables: Variables,
ctx_data: Option<Arc<Data>>
) -> Result<impl Stream<Item = Result<Value>> + Send>
Create subscription stream, typically called inside the SubscriptionTransport::handle_request
method
pub fn subscription_connection<T: SubscriptionTransport>(
&self,
transport: T
) -> (UnboundedSender<Bytes>, impl Stream<Item = Bytes> + Unpin)
[src][−]
&self,
transport: T
) -> (UnboundedSender<Bytes>, impl Stream<Item = Bytes> + Unpin)
Create subscription connection, returns Sink
and Stream
.
Trait Implementations
impl<Query, Mutation, Subscription> Clone for Schema<Query, Mutation, Subscription>
[src][+]
impl<Query, Mutation, Subscription> Deref for Schema<Query, Mutation, Subscription> where
Query: ObjectType + Send + Sync + 'static,
Mutation: ObjectType + Send + Sync + 'static,
Subscription: SubscriptionType + Send + Sync + 'static,
[src][+]
Query: ObjectType + Send + Sync + 'static,
Mutation: ObjectType + Send + Sync + 'static,
Subscription: SubscriptionType + Send + Sync + 'static,
Auto Trait Implementations
impl<Query, Mutation, Subscription> !RefUnwindSafe for Schema<Query, Mutation, Subscription>
impl<Query, Mutation, Subscription> Send for Schema<Query, Mutation, Subscription> where
Mutation: Send + Sync,
Query: Send + Sync,
Subscription: Send + Sync,
Mutation: Send + Sync,
Query: Send + Sync,
Subscription: Send + Sync,
impl<Query, Mutation, Subscription> Sync for Schema<Query, Mutation, Subscription> where
Mutation: Send + Sync,
Query: Send + Sync,
Subscription: Send + Sync,
Mutation: Send + Sync,
Query: Send + Sync,
Subscription: Send + Sync,
impl<Query, Mutation, Subscription> Unpin for Schema<Query, Mutation, Subscription>
impl<Query, Mutation, Subscription> !UnwindSafe for Schema<Query, Mutation, Subscription>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> From<T> for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src][+]
T: Clone,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[+]
V: MultiLane<T>,