X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Futil%2Fser_macros.rs;h=48e87b3bc2108a35b97282981b8738b5b87a93fb;hb=efcfb93ebe0ecf0889b0cb3393cbe4d3c1e13ab6;hp=162b18947a37986a0eb53b1c532830dbd297af0a;hpb=712051a9fca1b9b2946e9af395036b904b255d32;p=rust-lightning diff --git a/src/util/ser_macros.rs b/src/util/ser_macros.rs index 162b1894..48e87b3b 100644 --- a/src/util/ser_macros.rs +++ b/src/util/ser_macros.rs @@ -1,17 +1,19 @@ macro_rules! impl_writeable { ($st:ident, $len: expr, {$($field:ident),*}) => { - impl Writeable for $st { - fn write(&self, w: &mut W) -> Result<(), DecodeError> { - w.size_hint($len); + impl ::util::ser::Writeable for $st { + fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { + if $len != 0 { + w.size_hint($len); + } $( self.$field.write(w)?; )* Ok(()) } } - impl Readable for $st { - fn read(r: &mut R) -> Result { + impl ::util::ser::Readable for $st { + fn read(r: &mut R) -> Result { Ok(Self { - $($field: Readable::read(r)?),* + $($field: ::util::ser::Readable::read(r)?),* }) } } @@ -19,8 +21,8 @@ macro_rules! impl_writeable { } macro_rules! impl_writeable_len_match { ($st:ident, {$({$m: pat, $l: expr}),*}, {$($field:ident),*}) => { - impl Writeable for $st { - fn write(&self, w: &mut W) -> Result<(), DecodeError> { + impl Writeable for $st { + fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { w.size_hint(match *self { $($m => $l,)* }); @@ -29,7 +31,7 @@ macro_rules! impl_writeable_len_match { } } - impl Readable for $st { + impl Readable for $st { fn read(r: &mut R) -> Result { Ok(Self { $($field: Readable::read(r)?),*