Skip to content

Commit 93ee743

Browse files
committed
Make the custom message traits cloneable as they're deep in nested structs
1 parent 05f3a63 commit 93ee743

File tree

5 files changed

+11
-11
lines changed

5 files changed

+11
-11
lines changed

fuzz/src/onion_message.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ impl AsyncPaymentsMessageHandler for TestAsyncPaymentsMessageHandler {
164164
fn handle_release_held_htlc(&self, _message: ReleaseHeldHtlc, _context: AsyncPaymentsContext) {}
165165
}
166166

167-
#[derive(Debug)]
167+
#[derive(Clone, Debug)]
168168
struct TestCustomMessage {}
169169

170170
const CUSTOM_MESSAGE_TYPE: u64 = 4242;

lightning/src/ln/wire.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ impl<T> TestEq for T {}
4646
/// A Lightning message returned by [`read`] when decoding bytes received over the wire. Each
4747
/// variant contains a message from [`msgs`] or otherwise the message type if unknown.
4848
#[allow(missing_docs)]
49-
#[derive(Debug)]
49+
#[derive(Clone, Debug)]
5050
#[cfg_attr(any(test, feature = "_test_utils"), derive(PartialEq))]
51-
pub(crate) enum Message<T: core::fmt::Debug + Type + TestEq> {
51+
pub(crate) enum Message<T> where T: Clone + core::fmt::Debug + Type + TestEq {
5252
Init(msgs::Init),
5353
Error(msgs::ErrorMessage),
5454
Warning(msgs::WarningMessage),
@@ -452,13 +452,13 @@ pub(crate) use self::encode::Encode;
452452
/// Defines a type identifier for sending messages over the wire.
453453
///
454454
/// Messages implementing this trait specify a type and must be [`Writeable`].
455-
pub trait Type: core::fmt::Debug + Writeable {
455+
pub trait Type: core::fmt::Debug + Writeable + Clone {
456456
/// Returns the type identifying the message payload.
457457
fn type_id(&self) -> u16;
458458
}
459459

460460
#[cfg(test)]
461-
pub trait Type: core::fmt::Debug + Writeable + PartialEq {
461+
pub trait Type: core::fmt::Debug + Writeable + Clone + PartialEq {
462462
fn type_id(&self) -> u16;
463463
}
464464

@@ -470,14 +470,14 @@ impl Type for () {
470470
}
471471

472472
#[cfg(test)]
473-
impl<T: Encode + Writeable + core::fmt::Debug + PartialEq> Type for T {
473+
impl<T: Encode + Writeable + core::fmt::Debug + Clone + PartialEq> Type for T {
474474
fn type_id(&self) -> u16 {
475475
T::TYPE
476476
}
477477
}
478478

479479
#[cfg(not(test))]
480-
impl<T: Encode + core::fmt::Debug + Writeable> Type for T {
480+
impl<T: Encode + core::fmt::Debug + Writeable + Clone> Type for T {
481481
fn type_id(&self) -> u16 {
482482
T::TYPE
483483
}
@@ -882,7 +882,7 @@ mod tests {
882882
}
883883
}
884884

885-
#[derive(Eq, PartialEq, Debug)]
885+
#[derive(Clone, Eq, PartialEq, Debug)]
886886
struct TestCustomMessage {}
887887

888888
const CUSTOM_MESSAGE_TYPE: u16 = 9000;

lightning/src/onion_message/functional_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -898,7 +898,7 @@ fn reply_path() {
898898
fn invalid_custom_message_type() {
899899
let nodes = create_nodes(2);
900900

901-
#[derive(Debug)]
901+
#[derive(Debug, Clone)]
902902
struct InvalidCustomMessage {}
903903
impl OnionMessageContents for InvalidCustomMessage {
904904
fn tlv_type(&self) -> u64 {

lightning/src/onion_message/messenger.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ where
243243
/// &custom_message_handler,
244244
/// );
245245
///
246-
/// # #[derive(Debug)]
246+
/// # #[derive(Clone, Debug)]
247247
/// # struct YourCustomMessage {}
248248
/// impl Writeable for YourCustomMessage {
249249
/// fn write<W: Writer>(&self, w: &mut W) -> Result<(), io::Error> {

lightning/src/onion_message/packet.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ impl<T: OnionMessageContents> Writeable for ParsedOnionMessageContents<T> {
189189
}
190190

191191
/// The contents of an onion message.
192-
pub trait OnionMessageContents: Writeable + core::fmt::Debug {
192+
pub trait OnionMessageContents: Writeable + core::fmt::Debug + Clone {
193193
/// Returns the TLV type identifying the message contents. MUST be >= 64.
194194
fn tlv_type(&self) -> u64;
195195

0 commit comments

Comments
 (0)