Joseph Rushton Wakeling:
But most likely the best compromise solution is as you suggest a buffer, with the instruction ".dup the result if you want it to be persistent".
In my library code often I do the opposite: I add a template boolean switch named as "doCopy" that defaults to true. If it's true, the function copies the buffer. So if you don't know what you are doing, or you don't care about performance (and this happens often), it's safer. When you know what you are doing or your profiling (or your experience) tells you you want more performance, you call the function with a false doCopy, and it doesn't allocate a new buffer.
This is the design I suggested for File.byLine() but Andrei ha preferred a simpler design that doesn't create a new buffer for each line.
Bye, bearophile
