using Cursor instead of draining iterator to avoid data copy on small reads
using Cursor instead of draining iterator to avoid data copy on small reads

inlining position filed into PipeReader struct

arcnmx/pipe-rs