StreamingDecoder: `DEC: BorrowMut<FrameDecoder>` isn't very useful
Currently, DEC must return a concrete instance of FrameDecoder for performing the actual decoding process. I couldn't customize its behavior to include functionality such as tracking the number of decoded bytes.
It would be helpful if FrameDecoder implemented a trait that wraps its .read() method. This way, DEC could be bound to that trait, allowing for more flexible and customizable behavior during decoding.
I'm not sure what you are tying to accomplish here. To count the decoded bytes you can customize the source which is already generic over the Read trait. The reason StreamingDecoder takes a generic parameter for the decoder at all is that this allows both an owned version as well as a borrowed version without having separate types for that.