I noticed DecoderReader holds its internal buffer of bytes. This has a number of disadvantages:
Needless copying from in-memory readers (slices)
Double-buffering already-buffered readers
The bytes are lost when dropping or calling into_inner
BUF_SIZE is not configurable
std::io::BufReader has access to some unstable optimizations which this crate cannot use
Reinvents the wheel; there already is std::io::BufReader
Unless I'm missing something this can be easily fixed just by requiring BufRead instead of Read and using it. It's a breaking change so it's better to do it before 1.0.
Related: maybe it itself could provide BufRead but I'm not sure if 3-byte buffer is fine or not.
I noticed
DecoderReader
holds its internal buffer of bytes. This has a number of disadvantages:into_inner
BUF_SIZE
is not configurablestd::io::BufReader
has access to some unstable optimizations which this crate cannot usestd::io::BufReader
Unless I'm missing something this can be easily fixed just by requiring
BufRead
instead ofRead
and using it. It's a breaking change so it's better to do it before 1.0.Related: maybe it itself could provide
BufRead
but I'm not sure if 3-byte buffer is fine or not.