Clearing the buffer is not optimum

If an error occurs in a stream, I may want to figure out what data was read from the source up until the point the error occurred in case the error is some kind of `MalformedInputError`

However we should probably clear the buffer at some point to avoid leaks.

Maybe set the `buffer` on the error object ?

Alternatively people cannot recover the information that was in the unread buffer when an error occurs. This may be acceptable.