Merge rust-bitcoin/rust-bitcoin#2839: Add API for extracting the inner payload of `RawNetworkMessage`

ce585dc529 api: Run just check-api (Liu-Cheng Xu)
61565957ad Add API for extracting the inner payload of RawNetworkMessage (Liu-Cheng Xu)

Pull request description:

  I'd like to take out the `payload` of `RawNetworkMessage` and then send it to the actual network message processor, but find there is no way to do it. This commit adds such an API to expose all the inner parts (UPD: so that I don't have to do an unnecessary clone to obtain the owned value of `payload`).

ACKs for top commit:
  apoelstra:
    ACK ce585dc529
  tcharding:
    ACK ce585dc529

Tree-SHA512: 89c5f1361a8c2d0ecf928325e9a37b26d39cf32c3a023b78742555a5a1e59e1579522e942ff6f48b07b2d3b81b48c5e8182fa6e88b57fc9c33ce13e313ba2982
This commit is contained in:
Andrew Poelstra 2024-06-11 03:22:04 +00:00
commit aedb09745a
No known key found for this signature in database
GPG Key ID: C588D63CE41B97C1
3 changed files with 7 additions and 0 deletions

View File

@ -8931,6 +8931,7 @@ pub fn bitcoin::p2p::message::RawNetworkMessage::consensus_decode_from_finite_re
pub fn bitcoin::p2p::message::RawNetworkMessage::consensus_encode<W: bitcoin_io::Write + core::marker::Sized>(&self, w: &mut W) -> core::result::Result<usize, bitcoin_io::error::Error>
pub fn bitcoin::p2p::message::RawNetworkMessage::eq(&self, other: &bitcoin::p2p::message::RawNetworkMessage) -> bool
pub fn bitcoin::p2p::message::RawNetworkMessage::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::p2p::message::RawNetworkMessage::into_payload(self) -> bitcoin::p2p::message::NetworkMessage
pub fn bitcoin::p2p::message::RawNetworkMessage::magic(&self) -> &bitcoin::p2p::Magic
pub fn bitcoin::p2p::message::RawNetworkMessage::new(magic: bitcoin::p2p::Magic, payload: bitcoin::p2p::message::NetworkMessage) -> Self
pub fn bitcoin::p2p::message::RawNetworkMessage::payload(&self) -> &bitcoin::p2p::message::NetworkMessage

View File

@ -8465,6 +8465,7 @@ pub fn bitcoin::p2p::message::RawNetworkMessage::consensus_decode_from_finite_re
pub fn bitcoin::p2p::message::RawNetworkMessage::consensus_encode<W: bitcoin_io::Write + core::marker::Sized>(&self, w: &mut W) -> core::result::Result<usize, bitcoin_io::error::Error>
pub fn bitcoin::p2p::message::RawNetworkMessage::eq(&self, other: &bitcoin::p2p::message::RawNetworkMessage) -> bool
pub fn bitcoin::p2p::message::RawNetworkMessage::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
pub fn bitcoin::p2p::message::RawNetworkMessage::into_payload(self) -> bitcoin::p2p::message::NetworkMessage
pub fn bitcoin::p2p::message::RawNetworkMessage::magic(&self) -> &bitcoin::p2p::Magic
pub fn bitcoin::p2p::message::RawNetworkMessage::new(magic: bitcoin::p2p::Magic, payload: bitcoin::p2p::message::NetworkMessage) -> Self
pub fn bitcoin::p2p::message::RawNetworkMessage::payload(&self) -> &bitcoin::p2p::message::NetworkMessage

View File

@ -310,6 +310,11 @@ impl RawNetworkMessage {
Self { magic, payload, payload_len, checksum }
}
/// Consumes the [RawNetworkMessage] instance and returns the inner payload.
pub fn into_payload(self) -> NetworkMessage {
self.payload
}
/// The actual message data
pub fn payload(&self) -> &NetworkMessage { &self.payload }