Skip to content

Commit 66df329

Browse files
ser_macros: support messages with no fields
1 parent 07f3380 commit 66df329

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

lightning/src/util/ser_macros.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,7 @@ macro_rules! impl_writeable_msg {
633633
$($crate::_init_tlv_field_var!($tlvfield, $fieldty);)*
634634
$crate::decode_tlv_stream!(r, {$(($type, $tlvfield, $fieldty)),*});
635635
Ok(Self {
636-
$($field),*,
636+
$($field,)*
637637
$($tlvfield),*
638638
})
639639
}
@@ -1531,4 +1531,18 @@ mod tests {
15311531
fn simple_test_tlv_write() {
15321532
do_simple_test_tlv_write().unwrap();
15331533
}
1534+
1535+
#[derive(Debug, Eq, PartialEq)]
1536+
struct EmptyMsg {}
1537+
impl_writeable_msg!(EmptyMsg, {}, {});
1538+
1539+
#[test]
1540+
fn impl_writeable_msg_empty() {
1541+
let msg = EmptyMsg {};
1542+
let mut encoded_msg = msg.encode();
1543+
assert!(encoded_msg.is_empty());
1544+
let mut encoded_msg_stream = Cursor::new(&mut encoded_msg);
1545+
let decoded_msg: EmptyMsg = Readable::read(&mut encoded_msg_stream).unwrap();
1546+
assert_eq!(msg, decoded_msg);
1547+
}
15341548
}

0 commit comments

Comments
 (0)