Use single level of path for internal macros
What changed, and why it matters
This commit is a purely stylistic cleanup inside the rust-bitcoin library. It changes how internal helper macros are referenced from a two-level path like `crate::internal_macros::macro_name!` to a single-level path like `internal_macros::macro_name!` after importing the module once. The commit message explicitly says this is for readability only and does not change any behavior or fix any security issue.
No action required; this is a non-security style refactor.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff replaces repeated crate::internal_macros::... invocations with internal_macros::... and adds a single use crate::internal_macros; import in each affected file. No macro bodies, generated code, public APIs, or logic are altered. This is a refactor with no functional or security impact.
Changed components
bitcoin/src/bip32.rsbitcoin/src/blockdata/block.rsbitcoin/src/blockdata/script/borrowed.rsbitcoin/src/blockdata/script/owned.rsbitcoin/src/blockdata/transaction.rsbitcoin/src/blockdata/witness.rsbitcoin/src/pow.rsInspect captured patch +21 / −20
diff --git a/bitcoin/src/bip32.rs b/bitcoin/src/bip32.rs
index 847335b4..4fdc29b7 100644
--- a/bitcoin/src/bip32.rs
+++ b/bitcoin/src/bip32.rs
@@ -16,9 +16,9 @@ use internals::write_err;
use secp256k1::Secp256k1;
use crate::crypto::key::{CompressedPublicKey, Keypair, PrivateKey, XOnlyPublicKey};
-use crate::internal_macros::{impl_array_newtype, impl_array_newtype_stringify};
use crate::network::NetworkKind;
use crate::prelude::{String, Vec};
+use crate::internal_macros;
/// Version bytes for extended public keys on the Bitcoin network.
const VERSION_BYTES_MAINNET_PUBLIC: [u8; 4] = [0x04, 0x88, 0xB2, 0x1E];
@@ -40,8 +40,8 @@ pub type ExtendedPrivKey = Xpriv;
/// A chain code
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct ChainCode([u8; 32]);
-impl_array_newtype!(ChainCode, u8, 32);
-impl_array_newtype_stringify!(ChainCode, 32);
+internal_macros::impl_array_newtype!(ChainCode, u8, 32);
+internal_macros::impl_array_newtype_stringify!(ChainCode, 32);
impl ChainCode {
fn from_hmac(hmac: Hmac<sha512::Hash>) -> Self {
@@ -52,8 +52,8 @@ impl ChainCode {
/// A fingerprint
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
pub struct Fingerprint([u8; 4]);
-impl_array_newtype!(Fingerprint, u8, 4);
-impl_array_newtype_stringify!(Fingerprint, 4);
+internal_macros::impl_array_newtype!(Fingerprint, u8, 4);
+internal_macros::impl_array_newtype_stringify!(Fingerprint, 4);
hash_newtype! {
/// Extended key identifier as defined in BIP-32.
diff --git a/bitcoin/src/blockdata/block.rs b/bitcoin/src/blockdata/block.rs
index 85ff421f..8d69f6d7 100644
--- a/bitcoin/src/blockdata/block.rs
+++ b/bitcoin/src/blockdata/block.rs
@@ -41,7 +41,7 @@ internal_macros::impl_hashencode!(BlockHash);
internal_macros::impl_consensus_encoding!(Header, version, prev_blockhash, merkle_root, time, bits, nonce);
-crate::internal_macros::define_extension_trait! {
+internal_macros::define_extension_trait! {
/// Extension functionality for the [`Header`] type.
pub trait HeaderExt impl for Header {
/// Computes the target (range [0, T] inclusive) that a blockhash must land in to be valid.
diff --git a/bitcoin/src/blockdata/script/borrowed.rs b/bitcoin/src/blockdata/script/borrowed.rs
index d4352700..61a0b59c 100644
--- a/bitcoin/src/blockdata/script/borrowed.rs
+++ b/bitcoin/src/blockdata/script/borrowed.rs
@@ -20,9 +20,9 @@ use crate::policy::{DUST_RELAY_TX_FEE, MAX_OP_RETURN_RELAY};
use crate::prelude::{sink, String, ToString};
use crate::script::{self, ScriptBufExt as _};
use crate::taproot::{LeafVersion, TapLeafHash, TapNodeHash};
-use crate::{Amount, FeeRate, ScriptBuf};
+use crate::{internal_macros, Amount, FeeRate, ScriptBuf};
-crate::internal_macros::define_extension_trait! {
+internal_macros::define_extension_trait! {
/// Extension functionality for the [`Script`] type.
pub trait ScriptExt impl for Script {
/// Returns an iterator over script bytes.
@@ -459,7 +459,7 @@ mod sealed {
impl Sealed for super::Script {}
}
-crate::internal_macros::define_extension_trait! {
+internal_macros::define_extension_trait! {
pub(crate) trait ScriptExtPriv impl for Script {
/// Returns the bytes of the (possibly invalid) public key if this script is P2PK.
fn p2pk_pubkey_bytes(&self) -> Option<&[u8]> {
diff --git a/bitcoin/src/blockdata/script/owned.rs b/bitcoin/src/blockdata/script/owned.rs
index ec186c9a..818c27f7 100644
--- a/bitcoin/src/blockdata/script/owned.rs
+++ b/bitcoin/src/blockdata/script/owned.rs
@@ -19,8 +19,9 @@ use crate::script::witness_program::{WitnessProgram, P2A_PROGRAM};
use crate::script::witness_version::WitnessVersion;
use crate::script::{self, ScriptHash, WScriptHash};
use crate::taproot::TapNodeHash;
+use crate::internal_macros;
-crate::internal_macros::define_extension_trait! {
+internal_macros::define_extension_trait! {
/// Extension functionality for the [`ScriptBuf`] type.
pub trait ScriptBufExt impl for ScriptBuf {
/// Constructs a new script builder
@@ -195,7 +196,7 @@ mod sealed {
impl Sealed for super::ScriptBuf {}
}
-crate::internal_macros::define_extension_trait! {
+internal_macros::define_extension_trait! {
pub(crate) trait ScriptBufExtPriv impl for ScriptBuf {
/// Pretends to convert `&mut ScriptBuf` to `&mut Vec<u8>` so that it can be modified.
///
diff --git a/bitcoin/src/blockdata/transaction.rs b/bitcoin/src/blockdata/transaction.rs
index 4db61f7a..9b677abe 100644
--- a/bitcoin/src/blockdata/transaction.rs
+++ b/bitcoin/src/blockdata/transaction.rs
@@ -36,7 +36,7 @@ pub use primitives::transaction::{OutPoint, ParseOutPointError, Transaction, Txi
internal_macros::impl_hashencode!(Txid);
internal_macros::impl_hashencode!(Wtxid);
-crate::internal_macros::define_extension_trait! {
+internal_macros::define_extension_trait! {
/// Extension functionality for the [`Txid`] type.
pub trait TxidExt impl for Txid {
/// The "all zeros" TXID.
@@ -45,7 +45,7 @@ crate::internal_macros::define_extension_trait! {
}
}
-crate::internal_macros::define_extension_trait! {
+internal_macros::define_extension_trait! {
/// Extension functionality for the [`Wtxid`] type.
pub trait WtxidExt impl for Wtxid {
/// The "all zeros" wTXID.
@@ -66,7 +66,7 @@ const SEGWIT_MARKER: u8 = 0x00;
/// The flag MUST be a 1-byte non-zero value. Currently, 0x01 MUST be used. (BIP-141)
const SEGWIT_FLAG: u8 = 0x01;
-crate::internal_macros::define_extension_trait! {
+internal_macros::define_extension_trait! {
/// Extension functionality for the [`OutPoint`] type.
pub trait OutPointExt impl for OutPoint {
/// Constructs a new [`OutPoint`].
@@ -89,7 +89,7 @@ crate::internal_macros::define_extension_trait! {
const TX_IN_BASE_WEIGHT: Weight =
Weight::from_vb_unchecked(OutPoint::SIZE as u64 + Sequence::SIZE as u64);
-crate::internal_macros::define_extension_trait! {
+internal_macros::define_extension_trait! {
/// Extension functionality for the [`TxIn`] type.
pub trait TxInExt impl for TxIn {
/// Returns true if this input enables the [`absolute::LockTime`] (aka `nLockTime`) of its
@@ -151,7 +151,7 @@ crate::internal_macros::define_extension_trait! {
}
}
-crate::internal_macros::define_extension_trait! {
+internal_macros::define_extension_trait! {
/// Extension functionality for the [`TxOut`] type.
pub trait TxOutExt impl for TxOut {
/// The weight of this output.
diff --git a/bitcoin/src/blockdata/witness.rs b/bitcoin/src/blockdata/witness.rs
index a4859a02..c6e19c87 100644
--- a/bitcoin/src/blockdata/witness.rs
+++ b/bitcoin/src/blockdata/witness.rs
@@ -15,7 +15,7 @@ use crate::prelude::Vec;
#[cfg(doc)]
use crate::script::ScriptExt as _;
use crate::taproot::{self, ControlBlock, LeafScript, TaprootMerkleBranch, TAPROOT_ANNEX_PREFIX};
-use crate::Script;
+use crate::{internal_macros, Script};
type BorrowedControlBlock<'a> = ControlBlock<&'a TaprootMerkleBranch, &'a SerializedXOnlyPublicKey>;
@@ -112,7 +112,7 @@ impl Encodable for Witness {
}
}
-crate::internal_macros::define_extension_trait! {
+internal_macros::define_extension_trait! {
/// Extension functionality for the [`Witness`] type.
pub trait WitnessExt impl for Witness {
/// Constructs a new witness required to spend a P2WPKH output.
diff --git a/bitcoin/src/pow.rs b/bitcoin/src/pow.rs
index 6aeb3b48..3de3defa 100644
--- a/bitcoin/src/pow.rs
+++ b/bitcoin/src/pow.rs
@@ -14,8 +14,8 @@ use units::parse::{self, ParseIntError, PrefixedHexError, UnprefixedHexError};
use crate::block::{BlockHash, Header};
use crate::consensus::encode::{self, Decodable, Encodable};
-use crate::internal_macros::define_extension_trait;
use crate::network::Params;
+use crate::internal_macros;
#[rustfmt::skip] // Keep public re-exports separate.
#[doc(inline)]
@@ -332,7 +332,7 @@ impl Target {
do_impl!(Target);
impl_to_hex_from_lower_hex!(Target, |_| 64);
-define_extension_trait! {
+internal_macros::define_extension_trait! {
/// Extension functionality for the [`CompactTarget`] type.
pub trait CompactTargetExt impl for CompactTarget {
/// Constructs a new `CompactTarget` from a prefixed hex string.
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.