go-message
go-message copied to clipboard
Add Entity.Reader
Add an Entity.Reader
function which returns an io.Reader
for the entity. This would allow users to read a header, inspect it and then forward the reader to someone else.
Ideally this wouldn't decode and re-encode the body: we'd save the original io.Reader
. That can only work if the headers aren't modified.
Bonus points if message.Read
can be optimized in case it's passed the result of an Entity.Reader
call (just like we have for NewMultipart
and Entity.MultipartReader
).
One open question is how to handle encoding/charset conversions, if at all.
Currently we allow library users to perform encoding/charset conversions by mutating the Entity.Header
and using Entity.WriteTo
. This won't work with Entity.Reader
, because the encoding logic is io.Writer
-based.