Any idea if this can be done safely returning a mutable reference instead of a read only one as StreamingIterator does? I can't see why not but surely there's a reason if this crate doesn't implement it already
Yes, you could define an analogous trait that returned mutable references instead. Adding a separate trait was suggested here, but nobody has submitted an implementation yet: https://github.com/sfackler/streaming-iterator/issues/21
Constructing a single trait that supports both types of references as well as other reference-like types would require something like Generic Associated Types.