Skip to content

Commit f023be2

Browse files
committed
f - implement CustomMessageHandler in macro lol
1 parent 130921b commit f023be2

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

lightning/src/ln/peer_handler.rs

+29
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,35 @@ macro_rules! composite_custom_message_handler {
8585
)*
8686
}
8787

88+
impl CustomMessageHandler for $handler {
89+
fn handle_custom_message(
90+
&self, msg: Self::CustomMessage, sender_node_id: &PublicKey
91+
) -> Result<(), LightningError> {
92+
match msg {
93+
$(
94+
$message::$variant(message) => {
95+
$crate::ln::peer_handler::CustomMessageHandler::handle_custom_message(
96+
&self.$field, message, sender_node_id
97+
)
98+
},
99+
)*
100+
}
101+
}
102+
103+
fn get_and_clear_pending_msg(&self) -> Vec<(PublicKey, Self::CustomMessage)> {
104+
vec![].into_iter()
105+
$(
106+
.chain(
107+
self.$field
108+
.get_and_clear_pending_msg()
109+
.into_iter()
110+
.map(|(pubkey, message)| (pubkey, $message::$variant(message)))
111+
)
112+
)*
113+
.collect()
114+
}
115+
}
116+
88117
impl wire::CustomMessageReader for $handler {
89118
type CustomMessage = $message;
90119
fn read<R: io::Read>(

0 commit comments

Comments
 (0)