From 123d31f0ebef1dd7940acd332ff5cabc4ccc6d89 Mon Sep 17 00:00:00 2001
From: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Date: Thu, 20 Mar 2025 21:33:25 +0900
Subject: [PATCH] `bp-runtime`: make macro expansion not rely on `sp-std` in
 scope. (#7978)

make macro in bp-runtime no longer require `sp-std` in scope.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
 bridges/primitives/runtime/src/chain.rs | 8 ++++----
 bridges/primitives/runtime/src/lib.rs   | 9 +++++++++
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/bridges/primitives/runtime/src/chain.rs b/bridges/primitives/runtime/src/chain.rs
index eba3bcadfea..8dc2a5fb4e7 100644
--- a/bridges/primitives/runtime/src/chain.rs
+++ b/bridges/primitives/runtime/src/chain.rs
@@ -351,7 +351,7 @@ macro_rules! decl_bridge_finality_runtime_apis {
 						$(
 							/// Returns the justifications accepted in the current block.
 							fn [<synced_headers_ $consensus:lower _info>](
-							) -> sp_std::vec::Vec<$justification_type>;
+							) -> $crate::private::Vec<$justification_type>;
 						)?
 					}
 				}
@@ -409,7 +409,7 @@ macro_rules! decl_bridge_messages_runtime_apis {
 							lane: $lane_id_type,
 							begin: bp_messages::MessageNonce,
 							end: bp_messages::MessageNonce,
-						) -> sp_std::vec::Vec<bp_messages::OutboundMessageDetails>;
+						) -> $crate::private::Vec<bp_messages::OutboundMessageDetails>;
 					}
 
 					/// Inbound message lane API for messages sent by this chain.
@@ -423,8 +423,8 @@ macro_rules! decl_bridge_messages_runtime_apis {
 						/// Return details of given inbound messages.
 						fn message_details(
 							lane: $lane_id_type,
-							messages: sp_std::vec::Vec<(bp_messages::MessagePayload, bp_messages::OutboundMessageDetails)>,
-						) -> sp_std::vec::Vec<bp_messages::InboundMessageDetails>;
+							messages: $crate::private::Vec<(bp_messages::MessagePayload, bp_messages::OutboundMessageDetails)>,
+						) -> $crate::private::Vec<bp_messages::InboundMessageDetails>;
 					}
 				}
 			}
diff --git a/bridges/primitives/runtime/src/lib.rs b/bridges/primitives/runtime/src/lib.rs
index ca35475f727..fc13870904d 100644
--- a/bridges/primitives/runtime/src/lib.rs
+++ b/bridges/primitives/runtime/src/lib.rs
@@ -52,6 +52,8 @@ pub use storage_proof::{
 };
 pub use storage_types::BoundedStorageValue;
 
+extern crate alloc;
+
 pub mod extensions;
 pub mod messages;
 
@@ -62,6 +64,13 @@ mod storage_types;
 // Re-export macro to avoid include paste dependency everywhere
 pub use sp_runtime::paste;
 
+// Re-export for usage in macro.
+#[doc(hidden)]
+pub mod private {
+	#[doc(hidden)]
+	pub use alloc::vec::Vec;
+}
+
 /// Use this when something must be shared among all instances.
 pub const NO_INSTANCE_ID: ChainId = [0, 0, 0, 0];
 
-- 
GitLab