return Some(T) and not T in read method Message trait
diff --git a/crates/proc-macro-api/src/legacy_protocol/msg.rs b/crates/proc-macro-api/src/legacy_protocol/msg.rs
index 1c77863..b0e80de 100644
--- a/crates/proc-macro-api/src/legacy_protocol/msg.rs
+++ b/crates/proc-macro-api/src/legacy_protocol/msg.rs
@@ -152,7 +152,7 @@
fn read<R: BufRead, C: Codec>(inp: &mut R, buf: &mut C::Buf) -> io::Result<Option<Self>> {
Ok(match C::read(inp, buf)? {
None => None,
- Some(buf) => C::decode(buf)?,
+ Some(buf) => Some(C::decode(buf)?),
})
}
fn write<W: Write, C: Codec>(self, out: &mut W) -> io::Result<()> {