Just another example of missing string interpolation

mw m at g.c
Thu Oct 12 17:59:24 UTC 2023


On Thursday, 12 October 2023 at 17:56:29 UTC, mw wrote:
> On Thursday, 12 October 2023 at 13:39:46 UTC, Andrea Fontana 
> wrote:
>> Real life example. Render a string like this:
>>
>> ```
>> \x1b[2K\r\x1b[1mProgress:\x1b[0m 50% \x1b[1m\tSpeed:\x1b[0m 
>> 15.5 KB/s
>> ```
>>
>> now (error prone and difficult to debug, try to code it!):
>>
>>
>> ```
>> stderr.write(format("%s\r%sProgress:%s %5.1f%% %s\tSpeed:%s 
>> %6.1f %s%s", clear, white, clear, progress, white, clear, 
>> curSpeed, unit));
>> ```
>>
>> (or with string concat, good luck!)
>>
>> vs:
>>
>> ```
>> stderr.write("${clear}\r{$white}Progress:${clear}${progress}% 
>> \t${white}Speed:${clear} ${curSpeed} ${unit}");
>> ```
>
>
> There are library solutions, e.g shameless self-plug:
>
> https://code.dlang.org/packages/jdiutil
>
> ```
>         writeln(mixin(_S!"with    var name: {i; d; thePoint}"));
> ```
>
> output:
> ```
> with    var name: i=100 d=1.23457 thePoint=app.Point(_x=3 
> _y=0.456 _label=default value _counter=0)
> ```

The package is called: Just-Do-It

Because things like this have been talked about so long ,and so 
many times (and even so many previous DIPs), but nothing 
materialized.

So, I decided Just-Do-It!


More information about the Digitalmars-d mailing list