From 60b00f3fa0d688193328ccdd2e6fd5d26d7da67b Mon Sep 17 00:00:00 2001
From: Pierre Avital <pierre.avital@me.com>
Date: Wed, 4 Oct 2023 14:11:47 +0200
Subject: [PATCH] fix no_std and transport_compression feature breaking
 compilation

---
 .../zenoh-keyexpr/src/keyexpr_tree/impls/hashmap_impl.rs    | 6 +++++-
 .../zenoh-keyexpr/src/keyexpr_tree/impls/keyed_set_impl.rs  | 4 +++-
 io/zenoh-transport/src/unicast/manager.rs                   | 4 ++++
 io/zenoh-transport/src/unicast/universal/link.rs            | 2 +-
 4 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/commons/zenoh-keyexpr/src/keyexpr_tree/impls/hashmap_impl.rs b/commons/zenoh-keyexpr/src/keyexpr_tree/impls/hashmap_impl.rs
index f9bcdf799f..04a5d24201 100644
--- a/commons/zenoh-keyexpr/src/keyexpr_tree/impls/hashmap_impl.rs
+++ b/commons/zenoh-keyexpr/src/keyexpr_tree/impls/hashmap_impl.rs
@@ -14,8 +14,12 @@
 
 use core::hash::Hasher;
 #[cfg(not(feature = "std"))]
+// `SipHasher` is deprecated in favour of a symbol that only exists in `std`
+#[allow(deprecated)]
+use core::hash::SipHasher as DefaultHasher;
+#[cfg(not(feature = "std"))]
 use hashbrown::{
-    hash_map::{DefaultHasher, Entry, Iter, IterMut, Values, ValuesMut},
+    hash_map::{Entry, Iter, IterMut, Values, ValuesMut},
     HashMap,
 };
 #[cfg(feature = "std")]
diff --git a/commons/zenoh-keyexpr/src/keyexpr_tree/impls/keyed_set_impl.rs b/commons/zenoh-keyexpr/src/keyexpr_tree/impls/keyed_set_impl.rs
index 90fddd45ae..0a4ce4f4b4 100644
--- a/commons/zenoh-keyexpr/src/keyexpr_tree/impls/keyed_set_impl.rs
+++ b/commons/zenoh-keyexpr/src/keyexpr_tree/impls/keyed_set_impl.rs
@@ -14,7 +14,9 @@
 
 use core::hash::Hasher;
 #[cfg(not(feature = "std"))]
-use hashbrown::hash_map::DefaultHasher;
+// `SipHasher` is deprecated in favour of a symbol that only exists in `std`
+#[allow(deprecated)]
+use core::hash::SipHasher as DefaultHasher;
 #[cfg(feature = "std")]
 use std::collections::hash_map::DefaultHasher;
 
diff --git a/io/zenoh-transport/src/unicast/manager.rs b/io/zenoh-transport/src/unicast/manager.rs
index 384b992401..d7d79d5387 100644
--- a/io/zenoh-transport/src/unicast/manager.rs
+++ b/io/zenoh-transport/src/unicast/manager.rs
@@ -96,6 +96,8 @@ pub struct TransportManagerBuilderUnicast {
     pub(super) max_links: usize,
     #[cfg(feature = "shared-memory")]
     pub(super) is_shm: bool,
+    #[cfg(feature = "transport_compression")]
+    pub(super) is_compressed: bool,
     #[cfg(feature = "transport_auth")]
     pub(super) authenticator: Auth,
     pub(super) is_lowlatency: bool,
@@ -251,6 +253,8 @@ impl Default for TransportManagerBuilderUnicast {
             max_links: *transport.max_links(),
             #[cfg(feature = "shared-memory")]
             is_shm: *shm.enabled(),
+            #[cfg(feature = "transport_compression")]
+            is_compressed: false,
             #[cfg(feature = "transport_auth")]
             authenticator: Auth::default(),
             is_lowlatency: *transport.lowlatency(),
diff --git a/io/zenoh-transport/src/unicast/universal/link.rs b/io/zenoh-transport/src/unicast/universal/link.rs
index 1128e8c2f9..8facc9b7b2 100644
--- a/io/zenoh-transport/src/unicast/universal/link.rs
+++ b/io/zenoh-transport/src/unicast/universal/link.rs
@@ -106,7 +106,7 @@ impl TransportLinkUnicast {
             };
 
             #[cfg(all(feature = "unstable", feature = "transport_compression"))]
-            let is_compressed = self.transport.config.manager.config.unicast.is_compressed;
+            let is_compressed = self.transport.manager.config.unicast.is_compressed;
 
             // The pipeline
             let (producer, consumer) = TransmissionPipeline::make(config, priority_tx);