On Wednesday, 4 April 2018 at 14:47:03 UTC, Luís Marques wrote:
Regarding the output range replacing toString. That's an obvious improvement. Yet, before that is set in stone, give the following at least some thought.

It's a bit late for that ;) https://github.com/dlang/phobos/pull/5991

For instance, if you want to print an Object to the terminal with some color, you can't use a chain of ranges like `yourObject.toString.colorizer`, you have to output to some intermediary buffer. Just by coincidence, yesterday I was once again wondering about this and I decided to prototype an input-range-based formatter. By restricting the initial version to a compile-time format string it actually made it *very* easy to implement a MVP.

The counter to this is that output ranges are only for finalizing data that you want to buffered. In the example given, yourObject should instead have a range generating function which can be given to colorizer, which is then given to stdout.lockingTextWriter.

Reply via email to