diff --git a/src/framed.rs b/src/framed.rs index cad524e..bc8c5c0 100644 --- a/src/framed.rs +++ b/src/framed.rs @@ -215,4 +215,19 @@ impl FramedParts { _priv: (), } } + + /// Changes the codec used in this `FramedParts`. + pub fn try_map_codec(self, f: F) -> Result, E> + where + V: Encoder + Decoder, + F: FnOnce(U) -> Result, + { + Ok(FramedParts { + io: self.io, + codec: f(self.codec)?, + read_buffer: self.read_buffer, + write_buffer: self.write_buffer, + _priv: (), + }) + } }