diff --git a/rumqttc/CHANGELOG.md b/rumqttc/CHANGELOG.md index c8c8716a3..f1707c9bb 100644 --- a/rumqttc/CHANGELOG.md +++ b/rumqttc/CHANGELOG.md @@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * Made `DisconnectProperties` struct public. * Replace `Vec<Option<u16>>` with `FixedBitSet` for managing packet ids of released QoS 2 publishes and incoming QoS 2 publishes in `MqttState`. * Accept `native_tls::TlsConnector` as input for `Transport::tls_with_config`. +* Enforce `Sync` for `AsyncReadWrite` ### Deprecated diff --git a/rumqttc/src/framed.rs b/rumqttc/src/framed.rs index beb1d32de..2b5b34d02 100644 --- a/rumqttc/src/framed.rs +++ b/rumqttc/src/framed.rs @@ -92,5 +92,13 @@ impl Network { } } +// NOTE: WsStream currently doesn't support Sync, so we disable Sync enforcement for websocket builds + +#[cfg(not(feature = "websocket"))] +pub trait AsyncReadWrite: AsyncRead + AsyncWrite + Send + Sync + Unpin {} +#[cfg(not(feature = "websocket"))] +impl<T> AsyncReadWrite for T where T: AsyncRead + AsyncWrite + Send + Sync + Unpin {} +#[cfg(feature = "websocket")] pub trait AsyncReadWrite: AsyncRead + AsyncWrite + Send + Unpin {} +#[cfg(feature = "websocket")] impl<T> AsyncReadWrite for T where T: AsyncRead + AsyncWrite + Send + Unpin {}