Add key_storage selection in ChannelMonitor insert_combine
[rust-lightning] / src / util / ser_macros.rs
index 162b18947a37986a0eb53b1c532830dbd297af0a..48e87b3bc2108a35b97282981b8738b5b87a93fb 100644 (file)
@@ -1,17 +1,19 @@
 macro_rules! impl_writeable {
        ($st:ident, $len: expr, {$($field:ident),*}) => {
-               impl<W: Writer> Writeable<W> for $st {
-                       fn write(&self, w: &mut W) -> Result<(), DecodeError> {
-                               w.size_hint($len);
+               impl ::util::ser::Writeable for $st {
+                       fn write<W: ::util::ser::Writer>(&self, w: &mut W) -> Result<(), ::std::io::Error> {
+                               if $len != 0 {
+                                       w.size_hint($len);
+                               }
                                $( self.$field.write(w)?; )*
                                Ok(())
                        }
                }
 
-               impl<R: Read> Readable<R> for $st {
-                       fn read(r: &mut R) -> Result<Self, DecodeError> {
+               impl<R: ::std::io::Read> ::util::ser::Readable<R> for $st {
+                       fn read(r: &mut R) -> Result<Self, ::ln::msgs::DecodeError> {
                                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<W: Writer> Writeable<W> for $st {
-                       fn write(&self, w: &mut W) -> Result<(), DecodeError> {
+               impl Writeable for $st {
+                       fn write<W: Writer>(&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<R: Read> Readable<R> for $st {
+               impl<R: ::std::io::Read> Readable<R> for $st {
                        fn read(r: &mut R) -> Result<Self, DecodeError> {
                                Ok(Self {
                                        $($field: Readable::read(r)?),*