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.