X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fser.rs;h=b02fef275d2c08d644f1f706c8440f3d688d682c;hb=f4729075cbfef9f99e8316335dd1e8d15671674d;hp=a49b033db3d51010073260f8d0023dac5e6a5c1c;hpb=b385a40e4aadace8bd6646c42c6c662b8f1901e9;p=rust-lightning diff --git a/lightning/src/util/ser.rs b/lightning/src/util/ser.rs index a49b033d..b02fef27 100644 --- a/lightning/src/util/ser.rs +++ b/lightning/src/util/ser.rs @@ -12,7 +12,6 @@ use prelude::*; use std::io::{Read, Write}; -use std::collections::HashMap; use core::hash::Hash; use std::sync::Mutex; use core::cmp; @@ -698,6 +697,18 @@ impl Readable for PaymentSecret { } } +impl Writeable for Box { + fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { + T::write(&**self, w) + } +} + +impl Readable for Box { + fn read(r: &mut R) -> Result { + Ok(Box::new(Readable::read(r)?)) + } +} + impl Writeable for Option { fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { match *self { @@ -824,3 +835,19 @@ impl Writeable for (A, B) { self.1.write(w) } } + +impl Readable for (A, B, C) { + fn read(r: &mut R) -> Result { + let a: A = Readable::read(r)?; + let b: B = Readable::read(r)?; + let c: C = Readable::read(r)?; + Ok((a, b, c)) + } +} +impl Writeable for (A, B, C) { + fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { + self.0.write(w)?; + self.1.write(w)?; + self.2.write(w) + } +}