Returning some iterator type instead of the whole Vec directly would allow consumers to have more control over how memory is allocated.
This, however, would be a pretty major breaking change in the public API. If you agree with this change, I can attempt writing a PR.