Extensible std.format.formattedRead?
H. S. Teoh
hsteoh at quickfur.ath.cx
Tue Apr 24 21:41:42 PDT 2012
Today I was playing around with using std.format to read/write data, and
I discovered that while writing %s works for almost anything (via
.toString for user types), reading %s is not extensible.
I tried overloading parse() and unformatValue, but due to the way D
modules are handled, this doesn't work. It would be nice if reading %s
allowed user-defined types, perhaps via a .fromString method? Something
like:
struct T {
T fromString(R)(R inputRange)
if (is(ElementType!R : dchar))
{
...
}
}
Then std.format.formattedRead, if it fails to find a suitable built-in
convertor for %s, will attempt to call fromString as defined above for
the given type T passed in as argument, which will consume just enough
input to construct an instance of T.
Would this be a worthwhile addition to std.format?
T
--
The irony is that Bill Gates claims to be making a stable operating system and Linus Torvalds claims to be trying to take over the world. -- Anonymous
More information about the Digitalmars-d
mailing list