On 06/29/2014 04:22 PM, Ali Çehreli wrote:
On 06/29/2014 04:55 AM, Element 126 wrote:
> I've certainly missed something
formatValue passes your tests:
import std.stdio;
import std.format: formattedWrite, FormatSpec, formatValue;
import std.string: format;
struct wrapper(T) {
private T val;
public this(T newVal) pure { val = newVal; }
public void toString(
scope void delegate(const(char)[]) sink,
FormatSpec!char fmt
) const
{
formatValue(sink, val, fmt); // <-- HERE
}
}
unittest {
immutable uint base = 16;
auto a = wrapper!uint(base);
assert(format("%x", a) == format("%x", base));
assert(format("%08x", a) == format("%08x", base));
}
void main()
{}
Ali
Thanks a lot ! I just checked if it also worked for structs and classes
and it does the job perfectly.
I have used formattedWrite for months without noticing formatValue, even
though it was on the wiki.
Maybe I should add an example to the documentation of std.format.
formatValue is present but without any example, compared to the
extensive documentation of formattedWrite.