X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Fser.rs;h=c06293269ec0ffc28727a3d2624e92a9f95d1319;hb=34dd7c5cbbfe04a91edacfc995499a40f22e9d7c;hp=a6991c5c3d0d2a953dea4ba11993c446e37385ee;hpb=801d6e5256d6ac91d5d5668da1fa5a2b55303246;p=rust-lightning diff --git a/lightning/src/util/ser.rs b/lightning/src/util/ser.rs index a6991c5c..c0629326 100644 --- a/lightning/src/util/ser.rs +++ b/lightning/src/util/ser.rs @@ -884,3 +884,20 @@ impl Readable for () { Ok(()) } } + +impl Writeable for String { + #[inline] + fn write(&self, w: &mut W) -> Result<(), io::Error> { + (self.len() as u16).write(w)?; + w.write_all(self.as_bytes()) + } +} + +impl Readable for String { + #[inline] + fn read(r: &mut R) -> Result { + let v: Vec = Readable::read(r)?; + let ret = String::from_utf8(v).map_err(|_| DecodeError::InvalidValue)?; + Ok(ret) + } +}