diff --git a/commons/zenoh-core/src/lib.rs b/commons/zenoh-core/src/lib.rs index 1380680260..f3ba5fd499 100644 --- a/commons/zenoh-core/src/lib.rs +++ b/commons/zenoh-core/src/lib.rs @@ -19,7 +19,7 @@ //! [Click here for Zenoh's documentation](../zenoh/index.html) pub use lazy_static::lazy_static; pub mod macros; -pub use macros::*; + use std::future::{Future, Ready}; // Re-exports after moving ZError/ZResult to zenoh-result diff --git a/commons/zenoh-keyexpr/src/key_expr/borrowed.rs b/commons/zenoh-keyexpr/src/key_expr/borrowed.rs index ca3a4c7bbc..54e58dbf37 100644 --- a/commons/zenoh-keyexpr/src/key_expr/borrowed.rs +++ b/commons/zenoh-keyexpr/src/key_expr/borrowed.rs @@ -286,7 +286,7 @@ impl keyexpr { pub unsafe fn from_slice_unchecked(s: &[u8]) -> &Self { core::mem::transmute(s) } - pub fn chunks(&self) -> impl Iterator + DoubleEndedIterator { + pub fn chunks(&self) -> impl DoubleEndedIterator { self.split('/').map(|c| unsafe { // Any chunk of a valid KE is itself a valid KE => we can safely call the unchecked constructor. Self::from_str_unchecked(c) diff --git a/commons/zenoh-protocol/src/core/endpoint.rs b/commons/zenoh-protocol/src/core/endpoint.rs index e596b78bde..5e921345e4 100644 --- a/commons/zenoh-protocol/src/core/endpoint.rs +++ b/commons/zenoh-protocol/src/core/endpoint.rs @@ -85,7 +85,7 @@ impl Parameters { } } - pub fn iter(s: &str) -> impl Iterator + DoubleEndedIterator { + pub fn iter(s: &str) -> impl DoubleEndedIterator { s.split(LIST_SEPARATOR).filter_map(|prop| { if prop.is_empty() { None @@ -99,7 +99,7 @@ impl Parameters { Self::iter(s).find(|x| x.0 == k).map(|x| x.1) } - pub fn values<'s>(s: &'s str, k: &str) -> impl Iterator + DoubleEndedIterator { + pub fn values<'s>(s: &'s str, k: &str) -> impl DoubleEndedIterator { match Self::get(s, k) { Some(v) => v.split(VALUE_SEPARATOR), None => { @@ -277,7 +277,7 @@ impl<'a> Metadata<'a> { self.as_str().is_empty() } - pub fn iter(&'a self) -> impl Iterator + DoubleEndedIterator { + pub fn iter(&'a self) -> impl DoubleEndedIterator { Parameters::iter(self.0) } @@ -285,7 +285,7 @@ impl<'a> Metadata<'a> { Parameters::get(self.0, k) } - pub fn values(&'a self, k: &str) -> impl Iterator + DoubleEndedIterator { + pub fn values(&'a self, k: &str) -> impl DoubleEndedIterator { Parameters::values(self.0, k) } } @@ -394,7 +394,7 @@ impl<'a> Config<'a> { self.as_str().is_empty() } - pub fn iter(&'a self) -> impl Iterator + DoubleEndedIterator { + pub fn iter(&'a self) -> impl DoubleEndedIterator { Parameters::iter(self.0) } @@ -402,7 +402,7 @@ impl<'a> Config<'a> { Parameters::get(self.0, k) } - pub fn values(&'a self, k: &str) -> impl Iterator + DoubleEndedIterator { + pub fn values(&'a self, k: &str) -> impl DoubleEndedIterator { Parameters::values(self.0, k) } } diff --git a/commons/zenoh-protocol/src/core/resolution.rs b/commons/zenoh-protocol/src/core/resolution.rs index a174ecdc9d..093fd33bb4 100644 --- a/commons/zenoh-protocol/src/core/resolution.rs +++ b/commons/zenoh-protocol/src/core/resolution.rs @@ -27,10 +27,10 @@ pub enum Bits { } impl Bits { - const S8: &str = "8bit"; - const S16: &str = "16bit"; - const S32: &str = "32bit"; - const S64: &str = "64bit"; + const S8: &'static str = "8bit"; + const S16: &'static str = "16bit"; + const S32: &'static str = "32bit"; + const S64: &'static str = "64bit"; pub const fn bits(&self) -> u32 { match self { diff --git a/commons/zenoh-protocol/src/core/whatami.rs b/commons/zenoh-protocol/src/core/whatami.rs index faeb4712e0..6aacb0d356 100644 --- a/commons/zenoh-protocol/src/core/whatami.rs +++ b/commons/zenoh-protocol/src/core/whatami.rs @@ -25,9 +25,9 @@ pub enum WhatAmI { } impl WhatAmI { - const STR_R: &str = "router"; - const STR_P: &str = "peer"; - const STR_C: &str = "client"; + const STR_R: &'static str = "router"; + const STR_P: &'static str = "peer"; + const STR_C: &'static str = "client"; const U8_R: u8 = Self::Router as u8; const U8_P: u8 = Self::Peer as u8; diff --git a/io/zenoh-links/zenoh-link-udp/src/multicast.rs b/io/zenoh-links/zenoh-link-udp/src/multicast.rs index 838bb8acd5..1a5b4c076b 100644 --- a/io/zenoh-links/zenoh-link-udp/src/multicast.rs +++ b/io/zenoh-links/zenoh-link-udp/src/multicast.rs @@ -173,8 +173,7 @@ impl LinkManagerMulticastUdp { IpAddr::V6(_) => x.is_ipv6(), }) .take(1) - .collect::>() - .get(0) + .collect::>().first() .copied(), }; } @@ -193,8 +192,7 @@ impl LinkManagerMulticastUdp { } }) .take(1) - .collect::>() - .get(0) + .collect::>().first() .copied(); match iface { diff --git a/plugins/zenoh-backend-traits/src/config.rs b/plugins/zenoh-backend-traits/src/config.rs index dbcfa420b3..864caf52eb 100644 --- a/plugins/zenoh-backend-traits/src/config.rs +++ b/plugins/zenoh-backend-traits/src/config.rs @@ -200,11 +200,8 @@ impl + AsRef, V: AsObject> TryFrom<(S, &V)> for PluginConfi storages, rest: value .into_iter() - .filter_map(|(k, v)| { - (!["__required__", "backend_search_dirs", "volumes", "storages"] - .contains(&k.as_str())) - .then(|| (k.clone(), v.clone())) - }) + .filter(|&(k, _v)| (!["__required__", "backend_search_dirs", "volumes", "storages"] + .contains(&k.as_str()))).map(|(k, v)| (k.clone(), v.clone())) .collect(), }) } @@ -313,10 +310,7 @@ impl VolumeConfig { required, rest: config .iter() - .filter_map(|(k, v)| { - (!["__path__", "__required__"].contains(&k.as_str())) - .then(|| (k.clone(), v.clone())) - }) + .filter(|&(k, _v)| (!["__path__", "__required__"].contains(&k.as_str()))).map(|(k, v)| (k.clone(), v.clone())) .collect(), }) } diff --git a/plugins/zenoh-plugin-storage-manager/src/replica/mod.rs b/plugins/zenoh-plugin-storage-manager/src/replica/mod.rs index 1dc9df9262..e0eaf41dfd 100644 --- a/plugins/zenoh-plugin-storage-manager/src/replica/mod.rs +++ b/plugins/zenoh-plugin-storage-manager/src/replica/mod.rs @@ -40,7 +40,7 @@ pub mod storage; pub use align_queryable::AlignQueryable; pub use aligner::Aligner; pub use digest::{Digest, DigestConfig, EraType, LogEntry}; -pub use snapshotter::{ReplicationInfo, Snapshotter}; +pub use snapshotter::{Snapshotter}; pub use storage::{ReplicationService, StorageService}; const ERA: &str = "era"; diff --git a/zenoh/src/net/routing/hat/linkstate_peer/network.rs b/zenoh/src/net/routing/hat/linkstate_peer/network.rs index ac610a808b..74a2a34963 100644 --- a/zenoh/src/net/routing/hat/linkstate_peer/network.rs +++ b/zenoh/src/net/routing/hat/linkstate_peer/network.rs @@ -773,15 +773,12 @@ impl Network { let idxs = self .graph .node_indices() - .filter_map(|idx| { - (self.full_linkstate + .filter(|&idx| (self.full_linkstate || self.gossip_multihop || self.links.values().any(|link| link.zid == zid) || (self.router_peers_failover_brokering && idx == self.idx - && whatami == WhatAmI::Router)) - .then(|| { - ( + && whatami == WhatAmI::Router))).map(|idx| ( idx, Details { zid: true, @@ -791,9 +788,7 @@ impl Network { && idx == self.idx && whatami == WhatAmI::Router), }, - ) - }) - }) + )) .collect(); self.send_on_link(idxs, &transport); free_index diff --git a/zenoh/src/net/routing/hat/p2p_peer/gossip.rs b/zenoh/src/net/routing/hat/p2p_peer/gossip.rs index ae3fda51a7..0fbd40258c 100644 --- a/zenoh/src/net/routing/hat/p2p_peer/gossip.rs +++ b/zenoh/src/net/routing/hat/p2p_peer/gossip.rs @@ -509,14 +509,11 @@ impl Network { let idxs = self .graph .node_indices() - .filter_map(|idx| { - (self.gossip_multihop + .filter(|&idx| (self.gossip_multihop || self.links.values().any(|link| link.zid == zid) || (self.router_peers_failover_brokering && idx == self.idx - && whatami == WhatAmI::Router)) - .then(|| { - ( + && whatami == WhatAmI::Router))).map(|idx| ( idx, Details { zid: true, @@ -525,9 +522,7 @@ impl Network { && idx == self.idx && whatami == WhatAmI::Router), }, - ) - }) - }) + )) .collect(); self.send_on_link(idxs, &transport); free_index diff --git a/zenoh/src/net/routing/hat/router/network.rs b/zenoh/src/net/routing/hat/router/network.rs index ccc8a55850..893ac9848f 100644 --- a/zenoh/src/net/routing/hat/router/network.rs +++ b/zenoh/src/net/routing/hat/router/network.rs @@ -778,15 +778,12 @@ impl Network { let idxs = self .graph .node_indices() - .filter_map(|idx| { - (self.full_linkstate + .filter(|&idx| (self.full_linkstate || self.gossip_multihop || self.links.values().any(|link| link.zid == zid) || (self.router_peers_failover_brokering && idx == self.idx - && whatami == WhatAmI::Router)) - .then(|| { - ( + && whatami == WhatAmI::Router))).map(|idx| ( idx, Details { zid: true, @@ -796,9 +793,7 @@ impl Network { && idx == self.idx && whatami == WhatAmI::Router), }, - ) - }) - }) + )) .collect(); self.send_on_link(idxs, &transport); free_index diff --git a/zenoh/src/session.rs b/zenoh/src/session.rs index 43ef74d58f..b15a2e3602 100644 --- a/zenoh/src/session.rs +++ b/zenoh/src/session.rs @@ -799,7 +799,7 @@ impl Session { } #[allow(clippy::new_ret_no_self)] - pub(super) fn new(config: Config) -> impl Resolve> + Send { + pub(super) fn new(config: Config) -> impl Resolve> { ResolveFuture::new(async move { log::debug!("Config: {:?}", &config); let aggregated_subscribers = config.aggregation().subscribers().clone(); @@ -830,7 +830,7 @@ impl Session { pub(crate) fn declare_prefix<'a>( &'a self, prefix: &'a str, - ) -> impl Resolve + Send + 'a { + ) -> impl Resolve + 'a { ResolveClosure::new(move || { trace!("declare_prefix({:?})", prefix); let mut state = zwrite!(self.state); @@ -888,7 +888,7 @@ impl Session { pub(crate) fn declare_publication_intent<'a>( &'a self, _key_expr: KeyExpr<'a>, - ) -> impl Resolve> + Send + 'a { + ) -> impl Resolve> + 'a { ResolveClosure::new(move || { // log::trace!("declare_publication({:?})", key_expr); // let mut state = zwrite!(self.state); diff --git a/zenoh/tests/matching.rs b/zenoh/tests/matching.rs index 92c4deba57..f36bf5481b 100644 --- a/zenoh/tests/matching.rs +++ b/zenoh/tests/matching.rs @@ -35,7 +35,7 @@ async fn create_session_pair(locator: &str) -> (Session, Session) { config.scouting.multicast.set_enabled(Some(false)).unwrap(); config .listen - .set_endpoints(vec![locator.clone().parse().unwrap()]) + .set_endpoints(vec![locator.parse().unwrap()]) .unwrap(); config };