X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fser.rs;h=14c25775174b19dc50f4dabe5ecb434ce0ea259b;hb=b8bea74d6a7c47c548670a851eb9a798a526daae;hp=5adf5758131bb65e9929042a267162e3665c58e2;hpb=a0c65c32a53077d548935835a8c2d211e91ce2cb;p=rust-lightning diff --git a/lightning/src/util/ser.rs b/lightning/src/util/ser.rs index 5adf5758..14c25775 100644 --- a/lightning/src/util/ser.rs +++ b/lightning/src/util/ser.rs @@ -289,17 +289,23 @@ impl MaybeReadable for T { } /// Wrapper to read a required (non-optional) TLV record. -pub struct RequiredWrapper(pub Option); +pub struct RequiredWrapper(pub Option); impl Readable for RequiredWrapper { #[inline] fn read(reader: &mut R) -> Result { Ok(Self(Some(Readable::read(reader)?))) } } +impl> ReadableArgs for RequiredWrapper { + #[inline] + fn read(reader: &mut R, args: A) -> Result { + Ok(Self(Some(ReadableArgs::read(reader, args)?))) + } +} /// When handling `default_values`, we want to map the default-value T directly /// to a `RequiredWrapper` in a way that works for `field: T = t;` as /// well. Thus, we assume `Into for T` does nothing and use that. -impl From for RequiredWrapper { +impl From for RequiredWrapper { fn from(t: T) -> RequiredWrapper { RequiredWrapper(Some(t)) } }