X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fser_macros.rs;fp=lightning%2Fsrc%2Futil%2Fser_macros.rs;h=255fd3ebc327899c98bc599a4a3213834179bb79;hb=88e1b56d66ff550b36a6d422f47c9b9729406f61;hp=740b7c12561ce8466d1a2e30f56faacc797961ac;hpb=07d991c82fadf10f59ae01b2b5aef6bc8797fd9a;p=rust-lightning diff --git a/lightning/src/util/ser_macros.rs b/lightning/src/util/ser_macros.rs index 740b7c12..255fd3eb 100644 --- a/lightning/src/util/ser_macros.rs +++ b/lightning/src/util/ser_macros.rs @@ -633,7 +633,7 @@ macro_rules! impl_writeable_msg { $($crate::_init_tlv_field_var!($tlvfield, $fieldty);)* $crate::decode_tlv_stream!(r, {$(($type, $tlvfield, $fieldty)),*}); Ok(Self { - $($field),*, + $($field,)* $($tlvfield),* }) } @@ -1531,4 +1531,18 @@ mod tests { fn simple_test_tlv_write() { do_simple_test_tlv_write().unwrap(); } + + #[derive(Debug, Eq, PartialEq)] + struct EmptyMsg {} + impl_writeable_msg!(EmptyMsg, {}, {}); + + #[test] + fn impl_writeable_msg_empty() { + let msg = EmptyMsg {}; + let mut encoded_msg = msg.encode(); + assert!(encoded_msg.is_empty()); + let mut encoded_msg_stream = Cursor::new(&mut encoded_msg); + let decoded_msg: EmptyMsg = Readable::read(&mut encoded_msg_stream).unwrap(); + assert_eq!(msg, decoded_msg); + } }