diff --git a/src/lib.rs b/src/lib.rs index 9559fba6..17ef9dd2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -151,8 +151,7 @@ pub use registry::CacheControl; pub use scalars::{Any, Json, ID}; pub use schema::{Schema, SchemaBuilder, SchemaEnv}; pub use subscription::{ - SimpleBroker, SubscriptionStream, SubscriptionStreams, SubscriptionTransport, - WebSocketTransport, + SimpleBroker, SubscriptionStreams, SubscriptionTransport, WebSocketTransport, }; pub use types::{ Connection, Cursor, DataSource, Deferred, EmptyEdgeFields, EmptyMutation, EmptySubscription, diff --git a/src/schema.rs b/src/schema.rs index cbde8a29..3e4181cf 100644 --- a/src/schema.rs +++ b/src/schema.rs @@ -9,7 +9,7 @@ use crate::types::QueryRoot; use crate::validation::{check_rules, CheckResult, ValidationMode}; use crate::{ CacheControl, Error, ObjectType, Pos, QueryEnv, QueryError, QueryResponse, Result, - SubscriptionStream, SubscriptionType, Type, Variables, ID, + SubscriptionType, Type, Variables, ID, }; use async_graphql_parser::query::{Document, OperationType}; use bytes::Bytes; @@ -400,7 +400,7 @@ where transport: T, ) -> ( mpsc::UnboundedSender, - SubscriptionStream, + impl Stream + Unpin, ) { create_connection(self.clone(), transport) } diff --git a/src/subscription/connection.rs b/src/subscription/connection.rs index 8f5b1b33..300463c0 100644 --- a/src/subscription/connection.rs +++ b/src/subscription/connection.rs @@ -57,7 +57,7 @@ pub fn create_connection ( mpsc::UnboundedSender, - SubscriptionStream, + impl Stream + Unpin, ) where Query: ObjectType + Sync + Send + 'static, @@ -67,7 +67,7 @@ where let (tx_bytes, rx_bytes) = mpsc::unbounded(); ( tx_bytes, - SubscriptionStream { + Box::pin(SubscriptionStream { schema, transport, streams: SubscriptionStreams { @@ -76,7 +76,7 @@ where rx_bytes, handle_request_fut: None, waker: AtomicWaker::new(), - }, + }), ) } @@ -90,7 +90,7 @@ type HandleRequestBoxFut = Pin< #[allow(missing_docs)] #[allow(clippy::type_complexity)] -pub struct SubscriptionStream { +struct SubscriptionStream { schema: Schema, transport: T, streams: SubscriptionStreams, diff --git a/src/subscription/mod.rs b/src/subscription/mod.rs index 39783076..c616a08b 100644 --- a/src/subscription/mod.rs +++ b/src/subscription/mod.rs @@ -3,9 +3,7 @@ mod simple_broker; mod subscription_type; mod ws_transport; -pub use connection::{ - create_connection, SubscriptionStream, SubscriptionStreams, SubscriptionTransport, -}; +pub use connection::{create_connection, SubscriptionStreams, SubscriptionTransport}; pub use simple_broker::SimpleBroker; pub use subscription_type::{create_subscription_stream, SubscriptionType}; pub use ws_transport::WebSocketTransport;